OSDN Git Service

gcc/ada/
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2007-11-28  Samuel Tardieu  <sam@rfc1149.net>
2
3         PR ada/15803
4         * par-ch3.adb (P_Variant_Part): Signal an error when anything other
5         than an identifier is used after "case" in a variant_part.
6
7         PR ada/17317
8         * par-ch4.adb (Is_Parameterless_Attribute): New map.
9         (P_Name, Scan_Apostrophe block): Parse left parenthesis following
10         attribute name or not depending on the new map.
11
12         * sem-attr.adb (Analyze_Attribute): Parameterless attributes
13         returning a string or a type will not be called with improper
14         arguments.
15
16         * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
17
18         * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
19
20         PR ada/32792
21         * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
22         Signal an error when attribute argument is a fixed-point value of
23         an unknown type.
24
25 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
26
27         PR 34081/C++
28         * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
29         Pass 'false' for the new allocate_struct_function parameter.
30         * utils.c (build_function_stub): Likewise.
31
32 2007-11-25  Richard Guenther  <rguenther@suse.de>
33
34         utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
35         (gnat_poplevel): Likewise.
36
37 2007-11-25  Eric Botcazou  <ebotcazou@adacore.com>
38
39         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
40         strict alignment, no alignment clause and a known static size, cap
41         the type alignment to the greatest power of 2 factor of the size.
42         (gnat_to_gnu_field): If the field has a component clause, is aliased
43         or of a type with strict alignment, require that its size be equal to
44         that of the type.
45         (validate_size): Use the type size as the minimum size for a type with
46         strict alignment.
47
48 2007-11-23  Samuel Tardieu  <sam@rfc1149.net>
49
50         * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
51         s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
52         s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
53         Use 'Access instead of 'Unchecked_Access in second and third
54         arguments of pthread_sigmask.
55
56 2007-11-23  Eric Botcazou  <ebotcazou@adacore.com>
57
58         * decl.c (ceil_alignment): New function.
59         (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
60         (make_packable_type): Likewise.
61
62 2007-11-22  Olivier Hainque  <hainque@adacore.com>
63
64         * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
65         to fit in 80 columns.
66
67 2007-11-21  Aurelien Jarno <aurelien@aurel32.net>
68
69         * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
70         * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
71
72 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
73
74         PR ada/34098
75         * misc.c (gnat_adjust_rli): Delete.
76         (gnat_init): Do not initialize the translation code here.
77         Do not call set_lang_adjust_rli.
78         * trans.c (init_code_table): Make static.
79         (gnat_init_stmt_group): Delete.
80         (gigi): Initialize the translation code entirely here.
81         Emit debug info for the common types here instead of...
82         * utils.c (gnat_init_decl_processing): ...here.
83         * gigi.h (init_code_table): Delete.
84         (gnat_init_stmt_group): Likewise.
85
86 2007-11-16  Olivier Hainque  <hainque@adacore.com>
87
88         * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
89         retrieving an allocator return value from a super-aligned address from
90         here to ...
91         * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
92         expect a super-aligned address for a fat or thin pointer.
93         
94 2007-11-14  Eric Botcazou  <ebotcazou@adacore.com>
95
96         * trans.c (call_to_gnu): Always set the source location on the call
97         expression.  If the function returns-by-target, also set it on the
98         address expression.
99
100 2007-11-14  Samuel Tardieu  <sam@rfc1149.net>
101
102         * adaint.c, init.c, initialize.c, link.c: Remove system-specific
103         sections of non-supported Interix target.
104
105         * s-osinte-interix.ads: Removed.
106
107         * i-cstrin.ads (chars_ptr): Make it a C convention type.
108
109 2007-11-13  Samuel Tardieu  <sam@rfc1149.net>
110
111         * a-tasatt.adb: Add a comment at the beginning of the package
112         explaining why in general 'Unchecked_Access must be used instead
113         of 'Access.
114
115         * sem_prag.adb (Process_Convention): Move the test for the
116         entity on which the Convention pragma applies down to also
117         forbid pragma Convention on enumeration literals reached
118         through renamings.
119
120 2007-11-10  Samuel Tardieu  <sam@rfc1149.net>
121
122         * a-tasatt.adb: Revert previous change for this file as it will
123         generate an error when this package is instantiated from a
124         local context.
125
126 2007-11-07  Samuel Tardieu  <sam@rfc1149.net>
127
128         * a-tasatt.adb: Type Wrapper should be declared in comment instead
129         of already declared type Node_Access.
130         Use 'Access instead of 'Unchecked_Access when applicable. Local
131         lifetime is the one of the package.
132         (Set_Value): W is allocated on the heap.
133
134         * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
135         applicable.
136         (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
137         access type.
138         (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
139         access type.
140
141         * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
142         applicable.
143         (elaboration code): Timer_Queue lifetime is the one of the
144         package.
145
146         * tracebak.c (i386 alternative): Remove useless comparaison
147         which is always false; LOWEST_ADDRESS is 0 and is never greater
148         than an unsigned integer.
149
150         * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
151         embedded check for "Ada_Version >= Ada_05".
152
153 2007-11-07  Olivier Hainque  <hainque@adacore.com>
154
155         * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
156         craft and expand comment.
157
158 2007-11-01  Eric Botcazou  <ebotcazou@adacore.com>
159
160         * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
161
162 2007-10-23  Eric Botcazou  <ebotcazou@adacore.com>
163
164         * misc.c (gnat_handle_option): Replace call to abort with
165         call to gcc_unreachable.
166         (gnat_init): Likewise.
167         (gnat_expand_expr): Likewise.
168         (fp_prec_to_size): Likewise.
169         (fp_size_to_prec): Likewise.
170
171 2007-10-23  Richard Guenther  <rguenther@suse.de>
172
173         PR bootstrap/33608
174         * tracebak.c: #undef abort after including system.h.
175
176 2007-10-20  Danny Smith <dannysmith@users.sourceforge.net>
177
178         * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
179         s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
180         for win32 targets.
181         (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
182
183 2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
184
185         * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
186         Set the protection status of the guard page based on the value of On.
187
188         * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
189
190         * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
191         (Exit_Task): Pass False to Hide_Yellow_Zone.
192
193 2007-10-15  Robert Dewar  <dewar@adacore.com>
194
195         * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
196         s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
197         a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb, 
198         checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb, 
199         freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb, 
200         gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb, 
201         mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb, 
202         prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb, 
203         sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb, 
204         s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
205         uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb, 
206         a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb, 
207         a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb, 
208         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb, 
209         a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb, 
210         a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
211         Minor reformatting.
212         Add Unreferenced and Warnings (Off) pragmas for cases of
213         variables modified calls where they are IN OUT or OUT parameters and
214         the resulting values are not subsequently referenced. In a few cases,
215         we also remove redundant code found by the new warnings.
216
217         * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads, 
218         sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
219         sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
220         sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
221         warning controlled by -gnatw.o that warns on cases of out parameter
222         values being ignored.
223
224 2007-10-15  Geert Bosch  <bosch@adacore.com>
225
226         * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
227
228         * expect.c: Initial port to arm-mentor-nucleus.
229         Use kill for __gnat_kill() on VMS.
230
231 2007-10-15  Emmanuel Briot  <briot@adacore.com>
232
233         * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
234         value.
235         (Xref_Record): Change type for Line, since in the case of a reference to
236         a predefined entity (as happens for array index types), the line is set
237         to 0.
238         Add support for parsing multiple array index types info, or
239         multiple inherited interfaces info. This information cannot be stored
240         in Xref_Entity_Record, which only supports a single instance of Tref_*,
241         and is therefore stored in the list of references instead. It has a
242         special treatement later on in tools that use this information.
243
244 2007-10-15  Tristan Gingold  <gingold@adacore.com>
245
246         * debug.adb: Document use of -gnatd.a and -gnatd.I
247
248         * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
249
250 2007-10-15  Javier Miranda  <miranda@adacore.com>
251
252         * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
253         Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
254         care of access to class-wide interface types plus removal of bizarre
255         conversion of tagged object to access type (reported by Gary
256         Dismukes). After this patch there is no need to perform any
257         additional management on these nodes in Expand_Interface_Actuals.
258
259         * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
260         that handles use of 'Access and 'Unchecked_Access applied to
261         actuals covering interface types. Such code is now
262         centralized in Expand_N_Attribute_Reference.
263
264 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
265
266         * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
267         of tagged types whose ultimate ancestor is a CPP type.
268         (Freeze_Array_Type): For a packed array type, generate an initialization
269         procedure if the type is public, to handle properly a client that
270         specifies Normalize_Scalars.
271
272 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
273
274         * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
275         inside a generic body, retrieve the full view of the entry family
276         discrete subtype if available.
277
278 2007-10-15  Thomas Quinot  <quinot@adacore.com>
279
280         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
281         attempt to generate stubs for hidden primitive operations.
282
283 2007-10-15  Vincent Celier  <celier@adacore.com>
284
285         * mlib-tgt-specific.adb (Support_For_Libraries): New function,
286         returning None, used when there is no platform specific body for
287         MLib.Tgt.Specific.
288
289 2007-10-15  Bob Duff  <duff@adacore.com>
290
291         * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
292         (passing'Unrestricted_Access of nested subprograms to Sort) with use of
293         the generic Heap_Sort_G, in order to avoid trampolines.
294
295 2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
296             Jose Ruiz  <ruiz@adacore.com>
297
298         * vx_stack_info.c: New file.
299
300         * i-forbla-unimplemented.ads: New file.
301
302         * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
303         for unsupported configurations; use it on VMS targets instead of the
304         real one.
305         (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
306         vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
307         used by VxWorks targets to have access to task-specific data and be
308         able to extract the stack boundaries for stack checking.
309         Use system-vms-ia64.ads on ivms.
310
311         * Make-lang.in: Update dependencies.
312
313         * sysdep.c (__gnat_get_stack_info): Move to a standalone file
314         (vx_stack_info.c).
315
316 2007-10-15  Vincent Celier  <celier@adacore.com>
317
318         * snames.adb, snames.ads: Add new standard name runtime_library_dir
319
320         * prj.ads (Language_Config): Add new component Runtime_Library_Dir
321
322         * prj-attr.adb: Add project level attribute Runtime_Library_Dir
323
324         * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
325         the source is unknown.
326
327         * prj-ext.adb: Spelling error fix
328
329         * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
330         95 reserved word in its name.
331         (Process_Project_Level_Array_Attributes): Process new attribute
332         Runtime_Library_Dir.
333
334         * prj-part.adb (Parse_Single_Project): Do not check the name of the
335         config project against the user project names.
336
337         * prj-proc.adb (Expression): In multi-language mode, indexes that do
338         not include a dot are always case insensitive.
339         (Process_Declarative_Items): Ditto
340         (Process_Project_Tree_Phase_1): Set Success to False in case an error is
341         detected.
342
343         * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
344         True, compare both indexes in lower case.
345
346 2007-10-15  Robert Dewar  <dewar@adacore.com>
347
348         * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
349
350 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
351
352         * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
353         association for an access component, add an association with null as
354         the expression. Remove testing for array subtypes and the setting in
355         that case of Ctyp to the array component type, which prevented proper
356         inclusion of an association for null-initialized arrays. Collapse
357         condition that tests for array subtypes into just a test of
358         Is_Partially_Initialized_Type (which already covers arrays anyway).
359
360 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
361
362         * sem_ch12.adb: Minor code reformatting.
363         (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
364         find the parent package which may have been hidden by local
365         declarations.
366
367 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
368
369         * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
370         flag of derived concurrent types, taking into account the flag setting
371         on the parent subtype and any new set of discriminants.
372
373 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
374
375         * sem_ch4.adb: Minor code and comment reformatting.
376         (Analyze_Allocator): When the designated type of an unconstrained
377         allocator is a record with unknown discriminants or an array with
378         unknown range bounds, emit a detailed error message depending on the
379         compilation mode and whether the designated type is limited.
380
381 2007-10-15  Tristan Gingold  <gingold@adacore.com>
382
383         * system-vms-ia64.ads: New file.
384
385         * system-vms_64.ads: Minor comment fix.
386
387 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
388
389         * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
390         body generated for a function with a controlling result that is a null
391         extension, discard the generated body in favor of the current explicit
392         one.
393
394 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
395
396         * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
397         examining its original form, to handle properly operator calls that
398         have been rewritten.
399
400 2007-10-15  Olivier Hainque  <hainque@adacore.com>
401
402         * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
403         instead of a procedure value in each traceback entry.
404
405         * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
406         instead of procedure value to TBK$SYMBOLIZE.
407
408         * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
409         field.
410         (TB_Entry_For): Account for the PV/FP renaming.
411
412         * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
413         add comment.
414         (Null_TB_Entry): Account for change of component name.
415         (PV_For): Rename as FP_For.
416
417 2007-10-15  Tristan Gingold  <gingold@adacore.com>
418
419         * trans.c (gnat_to_gnu): Remove the padding structure more often.
420         This optimize assignment to over-aligned record.
421
422 2007-10-15  Emmanuel Briot  <briot@adacore.com>
423
424         * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
425         interfaces.
426
427         * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
428         type, for dispatching calls.
429
430 2007-10-15  Vincent Celier  <celier@adacore.com>
431             Robert Dewar  <dewar@adacore.com>
432
433         * gnat_ugn.texi: Add documentation for switches --version and --help
434         for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
435         gnatxref, gnatfind, gnatls, and gnatclean.
436         Document -gnatw.o.
437         Mention attribute Excluded_Source_Dirs
438         Replace obsolescent attribute Locally_Removed_Files with attribute
439         Excluded_Source_Files.
440         Improve documentation of -u (gnatbind)
441         Document how to do reliable stack checking for the environmental task
442         on iVMS.
443
444         * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
445         Document attribute Excluded_Source_Files and indicate that attribute
446         Locally_Removed_Files is obsolescent.
447
448 2007-10-15  Thomas Quinot  <quinot@adacore.com>
449
450         * g-soccon-vms.ads: Fix value of MSG_WAITALL.
451
452         * gen-soccon.c: 
453         Update documentation to note that OpenVMS 8.3 or later must be used
454         to generate g-soccon-vms.ads.
455
456         * atree.adb: Add ??? comment
457
458         * exp_util.adb: Minor reformatting.
459         Add ??? comment in Kill_Dead_Code.
460
461 2007-10-15  Robert Dewar  <dewar@adacore.com>
462
463         * errout.ads: Comment clarification
464
465         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
466         (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
467
468         * lib.ads: Comment update
469
470         * init.c: Minor reformatting.
471
472         * sem_attr.adb: Minor formatting
473
474         * osint-b.ads: Minor reformatting
475
476         * sem_ch9.adb: Implement -gnatd.I switch
477
478         * g-comlin.adb: (Start): Fix handling of empty command line.
479
480         * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
481         even when -rules follows the -cargs section.
482
483 2007-10-08  Ollie Wild  <aaw@google.com>
484
485         * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
486         gnat_return_tree.
487         (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
488         gnat_return_tree.
489         (gnat_eh_runtime_type): Removed.
490         (gnat_return_tree): New function.
491
492 2007-10-08  Ben Elliston  <bje@au.ibm.com>
493
494         PR ada/33454
495         Revert:
496         2007-08-31  Ben Elliston  <bje@au.ibm.com>
497
498         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
499         when compiling for powerpc64-*-linux.
500         * system-linux-ppc64.ads: New file.
501
502 2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
503
504         Mapped location support
505         * back_end.adb (Call_Back_End): Pass information about source
506         files instead of units to gigi.
507         * gigi.h (struct File_Info_Type): New.
508         (gigi): Rename and change type of number_units parameter, change
509         type of file_info_ptr parameter.
510         * trans.c (number_files): New global variable.
511         (gigi): Rename and change type of number_units parameter, change
512         type of file_info_ptr parameter.
513         If mapped location support is enabled, create the isomorphic mapping
514         between source files and line maps.
515         (Sloc_to_locus): If mapped location support is enabled, translate
516         source location into mapped location.
517         (annotate_with_node): Rename into set_expr_location_from_node.
518         Call set_expr_location instead of annotate_with_locus.
519         (Pragma_to_gnu): Adjust for above change.
520         (Loop_Statement_to_gnu): Likewise.
521         (call_to_gnu): Likewise.
522         (Handled_Sequence_Of_Statements_to_gnu): Likewise.
523         (gnat_to_gnu): Likewise.
524         (add_stmt_with_node): Likewise.
525         (add_cleanup): Likewise.
526         * utils.c (gnat_init_decl_processing): Do not set input_line.
527
528 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
529
530         * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
531         (Applicable_Use): Emit a warning when a package tries to use itself.
532         (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
533         is already in use or the package where it is declared is in use or is
534         declared in the current package.
535         (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
536
537         * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
538         s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
539         s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
540
541 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
542
543         * a-calend-vms.adb, a-calend.adb: 
544         Add a section on leap seconds control along with two entities used to
545         enable and disable leap seconds support. The array Leap_Second_Times is
546         now constant and contains hard time values pre-generated. Remove
547         all elaboration code used to populate the table of leap seconds.
548
549         * bindgen.adb: 
550         Add entity Leap_Seconds_Support to the list of global run-time variables
551         along with a comment on its usage and values.
552         (Gen_Adainit_Ada): Add code to generate the declaration and import of
553         Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
554         or one (enabled) depending on the presence of binder switch "-y".
555         (Gen_Adainit_C): Add code to generate the declaration of external int
556         __gl_leap_seconds_support. Set is value to zero (disabled) or one
557         (enabled) depending on the presence of binder switch "-y".
558
559         * init.c: Add __gl_leap_seconds_support to the list of global values
560         computed by the binder.
561
562 2007-09-26  Jerome Guitton  <guitton@adacore.com>
563
564         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
565         s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
566          s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
567         s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
568
569         * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
570
571         * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
572         function which can be called by the debugger to interrupt the tasks of
573         an Ada application asynchronously, as needed on VxWorks.
574         (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
575
576         * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
577         renamed from Stop_All_Tasks. Update comments.
578         (Stop_All_tasks): New function declaration.
579
580 2007-09-26  Olivier Hainque  <hainque@adacore.com>
581
582         * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
583         #include <utime.h> and #define GCC_RESOURCE_H before
584         #include <sys/wait.h>.
585         Add more protections in __gnat_translate_vms.
586
587         * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
588         #include <sys/wait.h>.
589
590 2007-09-26  Thomas Quinot  <quinot@adacore.com>
591             Sergey Rybin  <rybin@adacore.com>
592
593         * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
594
595         * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
596         where it belongs.
597
598         * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
599
600         * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
601         where it belongs.
602
603         * sem_dist.ads: Minor comment fix
604
605         * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
606
607 2007-09-26  Javier Miranda  <miranda@adacore.com>
608             Eric Botcazou  <ebotcazou@adacore.com>
609
610         * a-tags.adb: 
611         (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
612          indirection added to the HT_Link component of the TSD. This is required
613          to statically allocate the TSD.
614
615         * a-tags.ads: 
616         Minor reordering of the declarations in the private part. Required to
617         add a level of indirection to the contents of the TSD component HT_Link.
618         This is required to statically allocate the TSD.
619
620         * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
621         Is_Statically_Allocated set from constant objects.
622         Do not make exported constants created by the compiler volatile.
623         (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
624         as read-only.
625
626         * trans.c (Identifier_to_gnu): For constants, unshare initializers
627         before returning them.
628
629         * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
630         public part of the package.
631         (Make_DT): Move HT_Link component out of the TSD record. For this
632         purpose Make_DT now declares a separate object that stores the
633         HT_Link value, and initializes the TSD component with the address
634         of this new object. The addition of this level of indirection is
635         required to statically allocate the TSD because the TSD cannot
636         have variable components.
637         (Expand_Interface_Conversion): Improve the expanded code.
638         (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
639
640         * sem_disp.adb (Check_Dispatching_Operation): In case of a body
641         declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
642         if we are building static dispatch tables then we must not generate
643         extra code to register the primitive because the dispatch table will
644         be built at the end of the library package; otherwise we notify that
645         we cannot build the static dispatch table.
646
647 2007-09-26  Robert Dewar  <dewar@adacore.com>
648
649         * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
650         overlays.
651
652         * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
653         (Analyze_Record_Representation_Clause): Suppress junk warning for
654         missing component clause.
655         (Analyze_Attribute_Definition_Clause, case Address): Apply the special
656         tests for controlled type overlay to composites with controlled
657         components.
658         (Analyze_Record_Representation_Clause): Add reference for component name
659
660 2007-09-26  Javier Miranda  <miranda@adacore.com>
661             Gary Dismukes  <dismukes@adacore.com>
662
663         * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
664         for thunks associated with interface types.
665
666         * einfo.ads: Improve documentatation of Is_Internal
667         (Is_Thunk): New attribute applicable to subprograms. True for thunks
668         associated with interface types.
669         Extensive comment fixes regarding flags that appear in all entities. The
670         documentation is now consistent for all such flags (there were a number
671         of errors in the documentation in this regard).
672
673         * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
674
675         * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
676         of these procedures are passed a function call that already has
677         build-in-place actuals (testing new flag
678         Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
679         the case where processing continues.
680         (Expand_Call): If the call is generated from a thunk body then we
681         propagate the extra actuals associated with the accessibility
682         level of the access type actuals.
683
684         * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
685         of each extra formal of a protected operation to reference the
686         corresponding extra formal of the subprogram denoted by the
687         operation's Protected_Body_Subprogram.
688         
689         * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
690         N_Function_Call nodes.
691
692 2007-09-26  Robert Dewar  <dewar@adacore.com>
693
694         * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
695
696         * debug.adb: Add d.s flag.
697
698 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
699
700         * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
701         debug variable so that it won't be initialized when pragma
702         Initialize_Scalars is in effect.
703
704 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
705
706         * freeze.adb (Freeze_Entity): Remove check for preelaborable
707         initialization of a full view. This is moved to
708         Analyze_Package_Specification.
709
710         * sem_ch7.adb (Analyze_Package_Specification): Add check for
711         preelaborable initialization of a full view in entity loop.
712         (Uninstall_Declarations): If entity is a use-visible compilation unit,
713         its child units are use-visible only if they are visible child units.
714
715         * sem_util.adb (Is_Preelaborable_Expression): New function to determine
716         whether an expression can be used within a type declaration that
717         requires preelaborable init.
718         (Check_Components): Replace inline code that does partial checking for
719         preelaborable default expressions with call to
720         Is_Preelaborable_Expression.
721         (Has_Preelaborable_Initialization): In the case of a generic actual
722         subtype, (that is, Is_Generic_Actual is True), return the result of
723         applying Has_Preelaborable_Initialization to the generic actual's base
724         type.
725
726 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
727
728         * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
729         call to Jan_1_Day _Of_Week to optimize its performance.
730         (Is_Leap): Move the routine to the scope of Week_In_Year.
731         (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
732         weekday on which January 1 falls of Year - 1 and Year + 1. This function
733         avoids calling Time_Of and Split, thus making it more efficent.
734         (Week_In_Year): Reimplemented in oder to follow ISO 8601.
735
736         * g-calend.ads (Week_In_Year): Change comment to reflect new
737         implementation.
738
739 2007-09-26  Emmanuel Briot  <briot@adacore.com>
740
741         * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
742         Command_Line): New types
743         (Define_Alias, Define_Prefix, Free): New subprograms. These provide
744         support for defining how switches can be grouped on a command line (as
745         is the case for -gnatw... for GNAT), and how simple switches can be
746         used as aliases for more complex switches (-gnatwa is same as
747         -gnatwbcef...)
748         (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
749         (Start, Current_*): New subprograms
750         Added support for parsing an array of strings in addition to the real
751         command line.
752         (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
753          be moved from the body to the private part of the spec.
754         (*): All subprograms now have an extra parameter with default value to
755         specify which parser should be used. For backward compatibility, it
756         defaults to parsing the command line of the application. They were also
757         modified to properly handle cases where each of the argument does not
758         start at index 1 (which is always true for Ada.Command_Line, but not
759         when processing any Argument_List).
760         (Free): New subprogram
761         (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
762         Argument): New subprograms
763         (Switch_Parameter_Type): New enum, which clarifies the code. The extra
764         special characters like ':', '=',... are now handled in a single place,
765         which makes the code more extensible eventually.
766         (Getopt, Full_Switch): When the switch was returned as part of the
767         special character '*', make sure it is prepended by the switch character
768         ('-' in general), so that the application knows whether "foo" or "-foo"
769         was specified on the command line.
770
771 2007-09-26  Florian Villoing  <villoing@adacore.com>
772
773         * g-dirope.adb (Remove_Dir): In case we are removing directories
774         recursively, make sure that if an exception is raised during the
775         processing, the current working directory is reset to its initial
776         value before propagating the exception.
777
778 2007-09-26  Vincent Celier  <celier@adacore.com>
779
780         * gnatbind.adb: If there are several ALI files specified and there is
781         a main program to bind, the first ALI is expected to contain the main
782         subprogram and the names of the binder generated files will be derived
783         from the first ALI file name.
784         (Gnatbind): Fix insertion character in invocation of Error_Msg
785
786 2007-09-26  Vincent Celier  <celier@adacore.com>
787
788         * gnatcmd.adb (Check_Files): Do not include sources that have been
789         removed by attributes Exclude_Source_Files or Locally_Removed_Files.
790
791 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
792
793         * lib-xref.ads, lib-xref.adb: The entry for array types now carries
794         information about each of its index types, following the type
795         reference for its component type.
796
797 2007-09-26  Vincent Celier  <celier@adacore.com>
798
799         * make.adb: (Kill): New procedure (__gnat_kill imported)
800         (Running_Compile, Outstanding_Compiles): Global variables that
801         were previously local to procedure Compile_Sources.
802         (Sigint_Intercepted): Send signal SIGINT to all outstanding
803         compilation processes.
804
805         (Gnatmake): If project files are used, create the mapping of all the
806         sources, so that the correct paths will be found.
807
808         * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
809
810 2007-09-26  Vincent Celier  <celier@adacore.com>
811
812         * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
813
814         * prj.ads, prj.adb (Default_Language): Remove function, no longer used
815         Replace components Compiler_Min_Options and Binder_Min_Options with
816         Compiler_Required_Switches and Binder_Required_Switches in record
817         Language_Config.
818         Remove components Default_Language and Config in Project_Tree_Data,
819         no longer used.
820
821         * prj-attr.adb: New attributes Required_Switches (<language>) in
822         packages Compiler and Binder.
823
824         * prj-nmsc.adb: Major rewrite of the processing of configuration
825         attributes for gprbuild. No impact on GNAT tools.
826
827         * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
828         process configuration attributes: this is done in Prj.Nmsc.Check.
829         (Recursive_Process): Make a full copy of packages inherited from project
830         being extended, instead of a shallow copy.
831         (Process_Project_Tree_Phase_1): New procedure
832         (Process_Project_Tree_Phase_1): New procedure
833         (Process): Implementation now uses the two new procedures
834
835         * prj-util.adb (Executable_Of): Get the suffix and the default suffix
836         from the project config, not the tree config that no longer exists.
837
838 2007-09-26  Vincent Celier  <celier@adacore.com>
839
840         * Make-lang.in: Update dependencies..
841
842 2007-09-26  Vincent Celier  <celier@adacore.com>
843
844         * osint.adb, osint.ads: Minor reformatting
845
846         * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
847
848 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
849
850         * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
851         message to cite use of <> in aggregate component associations rather
852         than wrongly indicating use of limited aggregates.
853
854 2007-09-26  Robert Dewar  <dewar@adacore.com>
855
856         * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
857         Address_Taken.
858
859 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
860
861         * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
862         ancestor of the derived type, the operations are inherited from the
863         primary dispatch table of the parent.
864         (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
865         when the context is an explicit type conversion.
866
867 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
868
869         * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
870         rule for qualified expressions properly, to detect improper conversions
871         and resolve some cases of overloading.
872
873 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
874
875         * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
876         proper kind of reference to the primitive operation, for better source
877         navigation.
878         (Valid_Conversion): A tagged conversion is legal if both operands are
879         tagged.
880
881 2007-09-26  Robert Dewar  <dewar@adacore.com>
882
883         * sem_warn.adb (Check_References): Catch more cases of unreferenced
884         packages.
885
886 2007-09-26  Vincent Celier  <celier@adacore.com>
887
888         * snames.adb, snames.ads: Change Include_Option to Include_Switches
889
890 2007-09-26  Robert Dewar  <dewar@adacore.com>
891
892         * s-wchstw.adb: provide messages for run time unit exceptions
893
894         * a-witeio.adb: Minor reformatting
895
896         * exp_ch13.adb: Minor reformatting
897
898 2007-09-26  Sergey Rybin  <rybin@adacore.com>
899
900         * vms_data.ads: Revise gnatmetric qualifiers.
901         Add qualified for the new gnatbind option '-y'
902
903         * gnat_ugn.texi: Revise the gnatmetric section.
904         Add entry for new gnatbind option '-y'.
905
906         * gnat_rm.texi: Minor spelling correction.
907         Document restriction on overlaying controlled types
908
909 2007-09-26  Vincent Celier  <celier@adacore.com>
910
911         * makegpr.adb (Link_Executables): Do not fail when the root project has
912         no sources, but is an extending project.
913
914 2007-09-25  Eric Botcazou  <ebotcazou@adacore.com>
915
916         * trans.c: Fix misplaced #define.
917
918 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
919
920         * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
921         the TYPE_REF_CAN_ALIAS_ALL flag to the result.
922
923 2007-09-21  Olivier Hainque  <hainque@adacore.com>
924
925         * utils.c (type_for_nonaliased_component_p): Return false for
926         all AGGREGATE_TYPEs.
927
928 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
929
930         * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
931         object covered by 13.3(19) volatile.
932
933 2007-09-12  Eric Botcazou  <ebotcazou@adacore.com>
934
935         PR ada/26797
936         PR ada/32407
937         * utils.c (unchecked_convert): Use a subtype as the intermediate type
938         in the special VIEW_CONVERT_EXPR case.
939
940 2007-09-12  Robert Dewar  <dewar@adacore.com>
941
942         * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
943
944         * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
945         lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
946         s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
947         s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
948         s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
949         s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
950         s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
951         s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
952         a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads, 
953         g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads, 
954         s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb, 
955         s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb, 
956         snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads, 
957         s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads, 
958         s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads, 
959         s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads, 
960         s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
961         pragma Compiler_Unit and adds it to relevant library units.
962
963 2007-09-12  Ed Schonberg  <schonberg@adacore.com>
964
965         * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
966         a box need not correspond to any component.
967
968 2007-09-12  Robert Dewar  <dewar@adacore.com>
969
970         * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
971         the tasking version of the Ada run time when foreign threads are
972         present and there are no explicit Ada tasks or tasking constructs.
973
974         * gnat_rm.texi: Clarify documentation of GNAT.Threads.
975
976 2007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>
977
978         * bindusg.adb (Display): Correct comment for switch -X. Add a line for
979         the usage of switch -y.
980
981         * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
982         when switch -y is present.
983
984         * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
985         leap seconds in Ada.Calendar and its children.
986
987 2007-09-12  Jose Ruiz  <ruiz@adacore.com>
988
989         * a-extiti.ads (Timer): The discriminant is a "not null access
990         constant" in the Reference Manual.
991         (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
992
993 2007-09-12  Robert Dewar  <dewar@adacore.com>
994
995         * a-swuwha.adb: Remove junk RM header
996
997 2007-09-12  Vincent Celier  <celier@adacore.com>
998
999         * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
1000         indicator
1001
1002         * g-bytswa.ads: Minor reformatting
1003
1004 2007-09-12  Thomas Quinot  <quinot@adacore.com>
1005
1006         * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads: 
1007         Add new constant Thread_Blocking_IO, always True by default, set False
1008         on a per-runtime basis.
1009         (Need_Netdb_Buffer): New constant.
1010
1011 2007-09-12  Arnaud Charlet  <charlet@adacore.com>
1012
1013         * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
1014         Added renames for corresponding functions in System.Partition_Interface.
1015
1016 2007-09-12  Doug Rupp  <rupp@adacore.com>
1017
1018         * Makefile.in: Remove VMS specific System.CRTL packages which are no
1019         longer needed.
1020
1021         * s-crtl-vms64.ads: Removed.
1022
1023 2007-09-12  Olivier Hainque  <hainque@adacore.com>
1024
1025         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
1026         with discriminant constraints, generalize the code for BIT_FIELDs
1027         to PACKED fields of constant size and propagate DECL_PACKED.
1028
1029 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
1030
1031         * decl.c (array_type_has_nonaliased_component): New predicate.
1032         (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
1033         set the TYPE_NONALIASED_COMPONENT flag on the type.
1034         <E_Array_Subtype>: Likewise.
1035         * gigi.h (type_for_nonaliased_component_p): Declare.
1036         * utils.c (type_for_nonaliased_component_p): New predicate.
1037         (create_field_decl): Invoke the above predicate to set the
1038         DECL_NONADDRESSABLE_P flag on the field.
1039
1040 2007-09-11  Javier Miranda  <miranda@adacore.com>
1041
1042         * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
1043         in library level record type entities if we are generating statically
1044         allocated dispatch tables.
1045
1046         * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
1047         importing/exporting the _tag declaration by new code
1048         importing/exporting the dispatch table wrapper. This change allows us
1049         to statically allocate of the TSD.
1050         (Make_DT.Export_DT): New procedure.
1051         (Build_Static_DT): New function.
1052         (Has_DT): New function.
1053
1054         * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
1055         True_Constant and Current_Value. Required to statically
1056         allocate the dispatch tables.
1057         (Check_Allocator): Make function iterative instead of recursive.
1058         Also return inner allocator node, when present, so that we do not have
1059         to look for that node again in the caller.
1060
1061 2007-09-11  Jan Hubicka <jh@suse.cz>
1062
1063         * misc.c (gnat_expand_body): Kill.
1064         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
1065
1066 2007-09-10  Robert Dewar  <dewar@adacore.com>
1067
1068         * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
1069         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
1070         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
1071         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
1072         ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
1073         bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
1074         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
1075         butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
1076         comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
1077         elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
1078         err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
1079         exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
1080         exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
1081         exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
1082         exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
1083         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
1084         exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
1085         exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
1086         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
1087         exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
1088         exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
1089         exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
1090         fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
1091         get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
1092         gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
1093         gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
1094         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
1095         gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
1096         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
1097         gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
1098         inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
1099         lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
1100         lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
1101         make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
1102         mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
1103         mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
1104         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
1105         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
1106         osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
1107         osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
1108         par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
1109         par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
1110         par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
1111         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
1112         par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
1113         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
1114         prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
1115         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
1116         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
1117         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
1118         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
1119         prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
1120         rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
1121         scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
1122         sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
1123         sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
1124         sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
1125         sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
1126         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
1127         sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
1128         sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
1129         sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
1130         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
1131         sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
1132         sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
1133         sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
1134         sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
1135         sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
1136         stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
1137         styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
1138         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
1139         switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
1140         tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
1141         treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
1142         types.h, uintp.h, urealp.h, usage.adb, usage.ads,
1143         validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
1144         xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
1145         xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
1146         gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
1147         mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
1148         symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
1149         mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
1150         mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
1151
1152 2007-09-10  Emmanuel Briot  <briot@adacore.com>
1153
1154         * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
1155         classes ("[]").
1156
1157 2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>
1158
1159         * adaint.c (__gnat_translate_vms): new function.
1160
1161 2007-09-10  Gary Dismukes  <dismukes@adacore.com>
1162             Thomas Quinot  <quinot@adacore.com>
1163
1164         * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
1165         create an abstract subprogram in the case of 'Input. For 'Output we now
1166         create a real spec/body when the type is abstract, since it can
1167         potentially be called.
1168         (Predefined_Primitive_Bodies): Now allow the creation of a predefined
1169         body for 'Output when the type is abstract (only the creation of the
1170         body for 'Input is excluded when the type is abstract).
1171         (Stream_Operation_OK): Add an additional condition in the return
1172         statement, so that False will be returned for TTS_Stream_Input if the
1173         associated tagged type is an abstract extension. Add comments for
1174         return statement.
1175         (Expand_N_Object_Declaration): For the case of a shared passive
1176         variable, insert init proc call only after the shared variable
1177         procedures have been processed, because the IP call needs to undergo
1178         shared passive variable reference expansion, which requires these
1179         procedures to be available (and elaborated).
1180
1181 2007-09-10  Vincent Celier  <celier@adacore.com>
1182
1183         * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
1184         parameter Runtime_Project.
1185
1186 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
1187
1188         * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
1189         given a box association, the type of the component is discriminated,
1190         and the value of the discriminant is the discriminant of the enclosing
1191         type, retrieve its value from the aggregate itself, where it must have
1192         been supplied.
1193
1194         * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
1195         to remove other spurious ambiguities on arithmetic operations involving
1196         literals and addresses, on systems where Address is a visible integer
1197         type, when the operator is called in functional notation.
1198         (Try_Primitive_Operation): Within an instance, a call in prefixed form
1199         is legal when the types match, even if the operation is currently
1200         hidden.
1201
1202 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
1203
1204         * sem_ch12.adb (Build_Local_Package): A formal package with no
1205         associations is legal if all formals have defaults. It is not
1206         equivalent to a formal declared with a box.
1207
1208 2007-09-10  Sergey Rybin  <rybin@adacore.com>
1209
1210         * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
1211
1212 2007-09-10  Sergey Rybin  <rybin@adacore.com>
1213
1214         * gnat_ugn.texi: Add description of the new '-lratio' option
1215         Update 7.3.1 section about availability of the feature.
1216
1217 2007-09-10  Thomas Quinot  <quinot@adacore.com>
1218
1219         * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
1220         inserted node.
1221
1222 2007-09-10  Olivier Hainque  <hainque@adacore.com>
1223
1224         * Makefile.in: (mips-irix section): Activate build of libgmem.
1225
1226 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
1227
1228         * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
1229         x87 registers.
1230
1231 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
1232
1233         * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
1234         a debug renaming declaration specially.
1235
1236 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
1237
1238         * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
1239         which a constant renaming is treated as a normal object declaration.
1240         * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
1241         the N_Indexed_Component case.
1242         <N_Indexed_Component>: Fall through to above case.
1243         <N_Object_Renaming_Declaration>: Return true for all composite types.
1244
1245 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
1246
1247         * decl.c (make_packable_type): If the new type has been given BLKmode,
1248         try again to get an integral mode for it.
1249
1250 2007-09-07  Eric Botcazou  <ebotcazou@adacore.com>
1251
1252         Re-apply accidentally reverted change:
1253
1254         2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
1255
1256         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
1257         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
1258         and _Unwind_SWord with _sleb128_t.
1259
1260 2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>
1261
1262         * trans.c (convert_with_check): Update call to real_2expN.
1263
1264 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
1265
1266         * trans.c (Compilation_unit_to_gnu): Use set_cfun.
1267         * utils.c (end_subprog_body): Likewise.
1268
1269 2007-09-03  Nick Clifton  <nickc@redhat.com>
1270
1271         * Make-lang.in: Change copyright header to refer to version 3 of
1272         the GNU General Public License and to point readers at the
1273         COPYING3 file and the FSF's license web page.
1274         * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
1275         Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
1276         namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
1277         treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
1278         Likewise.
1279
1280 2007-08-31  Vincent Celier  <celier@adacore.com>
1281
1282         PR ada/4720
1283
1284         * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb, 
1285         gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
1286         (Check_Version_And_Help): New procedure in package Switch to process
1287         switches --version and --help.
1288         Use Check_Version_And_Help in GNAT tools
1289
1290         * make.adb:  Ditto.
1291         (Compile_Sources): Make sure that sources that are "excluded" are not
1292         compiled.
1293         (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
1294         project file is used.
1295         (Version_Switch): Remove, moved to Switch
1296         (Help_Switch): Remove, moved to Switch
1297         (Display_Version): Remove, moved to Switch
1298
1299         * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
1300         package Switch to process switches --version and --help.
1301         (Display_Version): New procedure
1302
1303         * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
1304
1305 2007-08-31  Javier Miranda  <miranda@adacore.com>
1306
1307         * a-tags.adb (Internal_Tag): Protect the run-time against wrong
1308         internal tags.
1309
1310 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
1311
1312         * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
1313         (Mark_Non_Null): If the node for which we just generated an access check
1314         is a reference to an *in* parameter and the reference appears in the
1315         declarative part of a subprogram body, mark the node as known non null.
1316
1317 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
1318
1319         * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
1320         structure of E_Exception to reflect the new flag.
1321         (Is_Raised, Set_Is_Raised): New inlined routines.
1322         Update the usage of available flag to reflect the addition of Is_Raised.
1323         (Is_Raised, Set_Is_Raised): Bodies of new routines.
1324         (Write_Entity_Flags): Write the status of flag Is_Raised.
1325         (Is_Descendent_Of_Address): New entity flag, to simplify handling of
1326         spurious ambiguities when integer literals appear in the context of an
1327         address type that is a visible integer type.
1328
1329         * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
1330         exceptions never being raised.
1331         (Analyze_Raise_Statement): When analyzing an exception, mark it as being
1332         explicitly raised.
1333
1334 2007-08-31  Javier Miranda  <miranda@adacore.com>
1335
1336         * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
1337         statement when compiling under restriction No_Exceptions_Proparation.
1338
1339 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
1340
1341         * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
1342         initialization aggregate for the type, generate itype references for
1343         thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
1344
1345 2007-08-31  Gary Dismukes  <dismukes@adacore.com>
1346
1347         * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
1348         library-level package renaming, pass the declaration associated with
1349         the renaming's special debug variable to Qualify_Entity_Names to ensure
1350         that its encoded name is properly qualified.
1351
1352         * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
1353         occurring in the list of entities to qualify, and do not attempt to
1354         traverse an entity list in that case. Variables associated with
1355 `       library-level package renamings can now occur in the table.
1356
1357         * exp_dbug.ads: Revise documentation of the encoding for renaming
1358         declarations.
1359
1360 2007-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1361
1362         * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
1363         access type points to an unconstrained array.
1364
1365 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
1366
1367         * restrict.adb, namet.adb, par-util.adb: Remove redundant type
1368         conversion.
1369
1370         * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
1371         simple redundant qualifications. The check is performed whenever the
1372         expression is a non-overloaded identifier.
1373         (Resolve_Type_Conversion): Enchance the redundant type conversion check
1374         to include loop parameters.
1375         (Valid_Conversion): Avoid generation of spurious error message.
1376
1377 2007-08-31  Bob Duff  <duff@adacore.com>
1378
1379         * par-ch4.adb (P_Simple_Expression): Fold long sequences of
1380         concatenations of string literals into a single literal, in order to
1381         avoid very deep recursion in the front end, which was causing stack
1382         overflow.
1383
1384         * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
1385         string, and the right operand is a string literal (the case of "" &
1386         "..."), optimize by avoiding copying the right operand -- just use the
1387         value of the right operand directly.
1388
1389         * stringt.adb (Store_String_Chars): Optimize by growing the
1390         String_Chars table all at once, rather than appending characters one by
1391         one.
1392         (Write_String_Table_Entry): If the string to be printed is very long,
1393         just print the first few characters, followed by the length. Otherwise,
1394         doing "pn(n)" in the debugger can take an extremely long time.
1395
1396         * sem_prag.adb (Process_Interface_Name): Replace loop doing
1397         Store_String_Char with Store_String_Chars.
1398
1399 2007-08-31  Vincent Celier  <celier@adacore.com>
1400
1401         * prj-attr.adb: Add new attribute Excluded_Source_Files
1402
1403         * prj-nmsc.adb: Use attribute Excluded_Source_Files before
1404         Locally_Removed_Files.
1405
1406         * snames.ads, snames.adb: New standard name Excluded_Source_Files
1407
1408 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
1409
1410         * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
1411         clauses of subunits, ignore limited_with_clauses that are illegal and
1412         have not been fully analyzed.
1413
1414 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
1415
1416         * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
1417         flag, for effiency. It is called when analyzing arithmetic operators
1418         and also for actuals in calls that are universal_integers. The flag is
1419         set for the predefined type address, and for any type or subtype
1420         derived from it.
1421
1422         * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
1423         Universal_Integer, when the formal is a descendent of address and the
1424         call appears in user code.
1425         (Analyze_Selected_Component): if the prefix is a private extension, the
1426         tag component is visible.
1427
1428         * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
1429         entity flag.
1430
1431 2007-08-31  Robert Dewar  <dewar@adacore.com>
1432
1433         * s-fileio.adb (Open): Normalize file name to lower case in non-case
1434         sensitive file name systems to avoid unexpected mismatch in Vista.
1435
1436 2007-08-31  Vincent Celier  <celier@adacore.com>
1437
1438         * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
1439
1440 2007-08-31  Vincent Celier  <celier@adacore.com>
1441
1442         * symbols-vms.adb (Initialize): Read symbol files with continuation
1443         lines
1444         (Finalize): If symbol is long, split the line
1445
1446 2007-08-31  Vincent Celier  <celier@adacore.com>
1447
1448         * fmap.ads: Minor comment updates
1449
1450 2007-08-31  GNAT Script  <nobody@adacore.com>
1451
1452         * Make-lang.in: Makefile automatically updated
1453
1454 2007-08-31  Bob Duff  <duff@adacore.com>
1455
1456         * sinfo.ads: Minor comment fix.
1457
1458 2007-08-31  Thomas Quinot  <quinot@adacore.com>
1459
1460         * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
1461         with implementation.
1462         Documentation cleanup only.
1463
1464 2007-08-31  Sergey Rybin  <rybin@adacore.com>
1465
1466         * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
1467         gnatpp '--separate-stmt-name' option.
1468         Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
1469         option.
1470
1471         * gnat_ugn.texi: Add description for the new gnatpp
1472         '--separate-stmt-name' and '--use-on-new-line' options.
1473
1474 2007-08-31  Ben Elliston  <bje@au.ibm.com>
1475
1476         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
1477         when compiling for powerpc64-*-linux.
1478         * system-linux-ppc64.ads: New file.
1479
1480 2007-08-22  Krister Walfridsson  <cato@df.lth.se>
1481
1482         * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
1483         NetBSD.
1484
1485 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1486
1487         * misc.c (gnat_type_max_size): Constify.
1488
1489 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
1490
1491         * cstand.adb (Create_Standard): Create an entity for a zero-sized type
1492         associated with Standard_Debug_Renaming_Type, to be used as the type of
1493         the special variables whose names provide debugger encodings for
1494         renaming declarations.
1495
1496         * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
1497         (Set_Debug_Renaming_Link): Change to set Node25.
1498         (Write_Field13_Name): Remove case for E_Enumeration_Literal.
1499         (Write_Field25_Name): Add case for E_Variable to output
1500         "Debug_Renaming_Link".
1501         (Write_Field23_Name): Correct the output string for "Limited_View".
1502
1503         * exp_dbug.adb: Add with and use of Tbuild.
1504         (Debug_Renaming_Declaration): Replace creation of an enumeration type
1505         and literal with creation of a variable of type
1506         Standard_Debug_Renaming_Type whose name encodes both the renamed object
1507         and the entity of the renaming declaration.
1508         (Qualify_Entity_Name): Add the delayed qualification of the entity name
1509         part of the name of a variable that has a Debug_Renaming_Link.
1510
1511         * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
1512         special type to be associated with variables that provide debugger
1513         encodings for renaming declarations.
1514
1515 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
1516             Ed Schonberg  <schonberg@adacore.com>
1517             Javier Miranda  <miranda@adacore.com>
1518
1519         * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
1520         ancestor part given by an aggregate to test for an unchecked conversion,
1521         since this can occur in some cases when the ancestor part is a function
1522         call, and we don't want to fall into the recursive call to this
1523         procedure in that case.
1524
1525         * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
1526         stream attributes on limited types to account for user-specified
1527         attributes as well as whether Input (resp. Output) becomes available
1528         due to Read (resp. Write) being available for the type. Change Boolean
1529         variable to the more accurate name
1530         Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
1531         double-"not" predicate at beginning of return statement to more
1532         understandable form.
1533
1534         * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
1535         return has an associated N_Handled_Sequence_Of_Statements, then wrap it
1536         in a block statement and use that as the first statement of the
1537         expanded return rather than incorrectly using the handled sequence as
1538         the first statement.
1539
1540         * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
1541         operation, generate an explicit freeze node for it rather than
1542         generating extra formals, to ensure that gigi has the proper order of
1543         elaboration for anonymous subtypes in the signature of the subprograms.
1544         (Build_In_Place_Formal): Move assertion to beginning of loop.
1545         (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
1546         applied to a function call (occurs for some cases of 'Input).
1547         (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
1548         applied to a function call (occurs for some cases of 'Input).
1549
1550         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
1551         2005, generate an extended return statement enclosing the result object
1552         and 'Read call.
1553
1554         * freeze.adb (Freeze_Record_Type): Extend the current management of
1555         components that are access type with an allocator as default value: add
1556         missing support to the use of qualified expressions of the
1557         allocator (which also cause freezing of the designated type!)
1558         (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
1559         dispatching operation, since extra formals may be needed by calls to
1560         build-in-place functions (such as stream 'Input).
1561
1562         * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
1563         formals for 'Constrained and accessibility level in the case of a
1564         predefined dispatching operation.
1565
1566         * exp_util.adb (Insert_Actions): A protected body is a valid insertion
1567         point, no need to find the parent node.
1568
1569 2007-08-16  Javier Miranda  <miranda@adacore.com>
1570
1571         * exp_attr.adb (Attribute_Priority): Add missing support for entries
1572         and entry barriers.
1573
1574 2007-08-16  Javier Miranda  <miranda@adacore.com>
1575
1576         * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
1577         is not really required and can introduce regression with the debugger.
1578         The original problem is fixed with the patch written for checks.adb.
1579
1580 2007-08-16  Thomas Quinot  <quinot@adacore.com>
1581
1582         * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
1583         Range_Check on Allocated_Table.
1584
1585 2007-08-16  Vincent Celier  <celier@adacore.com>
1586
1587         * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
1588         Including_Non_Switch set to False.
1589         (Gnatmake): For the compiler, call Test_If_Relative_Path with
1590         Including_Non_Switch set to False.
1591
1592         * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
1593         parameter Including_Non_Switch, defaulted to True. When
1594         Including_Non_Switch is False, options that are not switches and
1595         appear as relative path are not converted to absolute paths.
1596
1597 2007-08-16  Nicolas Roche  <roche@adacore.com>
1598
1599         * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
1600         makefiles
1601
1602         * Make-lang.in: Update dependencies
1603
1604 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
1605
1606         * sem_ch10.adb (Has_With_Clause): If the name of the with clause
1607         currently inspected is a selected component, retrieve the entity of
1608         its selector.
1609         (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
1610         from the immediate ancestor of Main_Unit_Entity.
1611         (Install_Limited_Withed_Unit): Do not install the limited view of
1612         package P if P is reachable through an ancestor chain from package C
1613         and C also has a with clause for P in its body.
1614         (Has_Limited_With_Clause): New routine.
1615         (Has_With_Clause): New routine.
1616
1617 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
1618
1619         * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
1620         generic for an enclosing instance is a global reference, even though
1621         its scope is the enclosing instance.
1622
1623 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
1624             Javier Miranda  <miranda@adacore.com>
1625
1626         * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
1627         initialize a limited object.
1628         (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
1629         13/2 and 14/2.
1630         Make sure Has_Complex_Representation is inherited by derived type.
1631
1632 2007-08-16  Robert Dewar  <dewar@adacore.com>
1633
1634         * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
1635         exception case
1636
1637 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
1638
1639         * sem_disp.adb (Check_Dispatching_Operation): If the operation
1640         implements an operation inherited from a progenitor interface, verify
1641         that they are subtype-conformant.
1642
1643 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
1644             Bob Duff  <duff@adacore.com>
1645             Nicolas Setton  <setton@adacore.com>
1646
1647         * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
1648         (Resolve): Alphabetize local variables. Add new variable From_Lib. When
1649         the statement which is being resolved comes from a predefined library
1650         unit, all non-predefined library interpretations are skipped.
1651         (Resolve_Op_Concat): If string concatenation was folded in the parser,
1652         but the "&" is user defined, give an error, because the folding would
1653         be wrong.
1654
1655         * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
1656         the parser has folded a long sequence of concatenations of string
1657         literals.
1658
1659         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
1660         and "JMP_BUF" variables as artificial.
1661         (N_String_Literal): Do not use alloca for very long string literals. Use
1662         xmalloc/free instead. Otherwise the stack might overflow.
1663
1664         * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
1665         compiler.
1666
1667 2007-08-16  Vincent Celier  <celier@adacore.com>
1668
1669         * vms_conv.adb (Process_Argument): Ensure that project related options
1670         are not put in the -cargs section when using GNAT COMPILE.
1671
1672 2007-08-16  Robert Dewar  <dewar@adacore.com>
1673
1674         * gnat_ugn.texi: Add note on preprocessing (output file not written)
1675
1676 2007-08-16  Thomas Quinot  <quinot@adacore.com>
1677
1678         * a-tags.adb: Minor reformatting.
1679
1680 2007-08-16  Bob Duff  <duff@adacore.com>
1681
1682         * sem_type.ads, sem_ch4.adb: Minor reformatting.
1683
1684 2007-08-14  Thomas Quinot  <quinot@adacore.com>
1685
1686         * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads, 
1687         s-osinte-interix.ads, system-interix.ads: Removed.
1688
1689 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
1690
1691         * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
1692         calls to Check_Within_Time_Bounds.
1693         ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
1694         (Difference): Account for possible rounding of the resulting difference
1695
1696 2007-08-14  Robert Dewar  <dewar@adacore.com>
1697
1698         * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
1699         par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
1700         s-osinte-solaris.adb, s-osinte-solaris.ads,
1701         s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
1702
1703         * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
1704         switch -gnatyS. Enable -gnatyS in GNAT style check mode
1705
1706 2007-08-14  Robert Dewar  <dewar@adacore.com>
1707             Ed Schonberg  <schonberg@adacore.com>
1708
1709         * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads: 
1710         Suppress unmodified in-out parameter warning in some cases
1711         This patch is a also fairly significant change to the way suppressible
1712         checks are handled.
1713
1714         * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
1715         needed for access to concurrent record types generated by the expander.
1716         (Generate_Range_Check): When generating a temporary to capture the
1717         value of a conversion that requires a range check, set the type of the
1718         temporary before rewriting the node, so that the type is always
1719         properly placed for back-end use.
1720         (Apply_Float_Conversion_Check): Handle case where the conversion is
1721         truncating.
1722         (Get_Discriminal): Code reformatting. Climb the scope stack looking
1723         for a protected type in order to examine its discriminants.
1724
1725 2007-08-14  Robert Dewar  <dewar@adacore.com>
1726             Gary Dismukes  <dismukes@adacore.com>
1727             Ed Schonberg  <schonberg@adacore.com>
1728             Thomas Quinot  <quinot@adacore.com>
1729
1730         * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb, 
1731         a-stwisu.adb, a-strsup.adb: Fix warnings for range
1732         tests optimized out.
1733
1734         * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
1735         (Get_Allocator_Final_List): For the case of an anonymous access type
1736         that has a specified Associated_Final_Chain, do not go up to the
1737         enclosing scope.
1738         (Expand_N_Type_Conversion): Test for the case of renamings of access
1739         parameters when deciding whether to apply a run-time accessibility
1740         check.
1741         (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
1742         aggregate code before allocator, and ahead of declaration for
1743         temporary, to prevent access before elaboration when the allocator is
1744         an actual for an access parameter.
1745         (Expand_N_Type_Conversion): On an access type conversion involving an
1746         access parameter, do not apply an accessibility check when the
1747         operand's original node was an attribute other than 'Access. We now
1748         create access conversions for the expansion of 'Unchecked_Access and
1749         'Unrestricted_Access in certain cases and clearly accessibility should
1750         not be checked for those.
1751
1752         * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
1753         includes a type conversion of a packed component that has been expanded,
1754         recover the original expression for the object, and use this expression
1755         in the post-call assignment statement, so that the assignment is made
1756         to the object and not to a back-end temporary.
1757         (Freeze_Subprogram): In case of primitives of tagged types not defined
1758         at the library level force generation of code to register the primitive
1759         in the dispatch table. In addition some code reorganization has been
1760         done to leave the implementation clear.
1761         (Expand_Call): When expanding an inherited implicit conversion,
1762         preserve the type of the inherited function after the intrinsic
1763         operation has been expanded.
1764
1765         * exp_ch2.ads, exp_ch2.adb
1766         (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
1767         of an entry formal appearing in an assignment statement does not assign
1768         to the formal.
1769         (Expand_Current_Value): Instead of calling a routine to determine
1770         whether the prefix of an attribute reference should be optimized or
1771         not, prevent the optimization of such prefixes all together.
1772
1773         * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
1774         component whose prefix is known to be of an access type is an implicit
1775         dereference and does not assign to the prefix.
1776
1777 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
1778             Robert Dewar  <dewar@adacore.com>
1779
1780         * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
1781         itype is visited, make an entry into table to link associated node and
1782         new itype.
1783         Add comments and correct harmless error in Build_NCT_Hash_Tables
1784         (Array_Aggr_Subtype): Associate each itype created for an index type to
1785         the corresponding range construct, and not to the aggregate itself. to
1786         maintain a one-to-one correspondence between itype and its associated
1787         node, to prevent errors when complex expression is copied.
1788         Fix mishandling of multiple levels of parens
1789
1790         * sem_aggr.adb: Create a limited view of an incomplete type, to make
1791         treatment of limited views uniform for all visible declarations in a
1792         limited_withed package.
1793         (New_Copy_Tree): If hash table is being used and itype is visited,
1794         make an entry into table to link associated node and new itype.
1795         (Resolve_Record_Aggregate): Do not add an others box association for a
1796         discriminated record component that has only discriminants, when there
1797         is a box association for the component itself.
1798
1799         * par-ch4.adb: Fix mishandling of multiple levels of parens
1800
1801 2007-08-14  Robert Dewar  <dewar@adacore.com>
1802
1803         * comperr.adb: Fix problem with suppressing warning messages from gigi
1804
1805         * erroutc.ads, erroutc.adb, errout.ads, 
1806         errout.adb (Write_Eol): Remove trailing spaces before writing the line
1807         (Write_Eol_Keep_Blanks): New procedure to write a line, including
1808         possible trailing spaces.
1809         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
1810         Fix problem with suppressing warning messages from back end
1811         Improve handling of deleted warnings
1812
1813         * gnat1drv.adb: 
1814         Fix problem with suppressing warning messages from back end
1815         Handle setting of Static_Dispatch_Tables flag.
1816
1817         * prepcomp.adb: 
1818         Fix problem with suppressing warning messages from back end
1819
1820         * exp_intr.adb: Improve handling of deleted warnings
1821
1822 2007-08-14  Robert Dewar  <dewar@adacore.com>
1823
1824         * debug.adb: Improve -gnatdI to cover all cases of serialization
1825         Add documentation of dZ, d.t
1826
1827         * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
1828         serialization.
1829         (Sprint_Node_Actual): Generate new output associated with implicit
1830         importation and implicit exportation of object declarations.
1831
1832 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
1833             Robert Dewar  <dewar@adacore.com>
1834             Javier Miranda  <miranda@adacore.com>
1835             Gary Dismukes  <dismukes@adacore.com>
1836
1837         * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
1838         to make treatment of limited views uniform for all visible declarations
1839         in a limited_withed package.
1840         Improve warnings for in out parameters
1841         (Set_Related_Interaface/Related_Interface): Allow the use of this
1842         attribute with constants.
1843         (Write_Field26_Name): Handle attribute Related_Interface in constants.
1844         Warn on duplicate pragma Preelaborable_Initialialization
1845
1846         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
1847         generation of a freezing node to ensure proper management of null
1848         excluding access types in the backend.
1849         (Create_Extra_Formals): Test base type of the formal when checking for
1850         the need to add an extra accessibility-level formal. Pass the entity E
1851         on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
1852         originally being done in a couple of cases), to ensure that the
1853         Extra_Formals list gets set on the entity E when the first entity is
1854         added.
1855         (Conforming_Types): Add missing calls to Base_Type to the code that
1856         handles anonymous access types. This is required to handle the
1857         general case because Process_Formals builds internal subtype entities
1858         to handle null-excluding access types.
1859         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
1860         functions that need it, even when not marked Requires_Overriding.
1861         Improve warnings for in out parameters
1862         (Analyze_Function_Return): Warn for disallowed null return
1863         Warn on return from procedure with unset out parameter
1864         Ensure consistent use of # in error messages
1865         (Check_Overriding_Indicator): Add in parameter Is_Primitive.
1866         (Analyze_Function_Return): Move call to Apply_Constraint_Check before
1867         the implicit conversion of the expression done for anonymous access
1868         types. This is required to generate the code of the null excluding
1869         check (if required).
1870
1871         * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
1872         A formal parameter is never publicly referenceable outside of its body.
1873         (Check_References): For an unreferenced formal parameter in an accept
1874         statement, use the same warning circuitry as for subprogram formal
1875         parameters.
1876         (Warn_On_Unreferenced_Entity): New subprogram, taken from
1877         Output_Unreferenced_Messages, containing the part of that routine that
1878         is now reused for entry formals as described above.
1879         (Goto_Spec_Entity): New function
1880         (Check_References): Do not give IN OUT warning for dispatching operation
1881         Improve warnings for in out parameters
1882         (Test_Ref): Check that the entity is not undefinite before calling
1883         Scope_Within, in order to avoid infinite loops.
1884         Warn on return from procedure with unset out parameter
1885         Improved warnings for unused variables
1886
1887 2007-08-14  Robert Dewar  <dewar@adacore.com>
1888             Javier Miranda  <miranda@adacore.com>
1889             Gary Dismukes  <dismukes@adacore.com>
1890
1891         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
1892         (Expand_N_Attribute_Reference): Further unify the handling of the
1893         three forms of access attributes, using common code now for all three
1894         cases. Add a test for the case of applying an access attribute to
1895         an explicit dereference when the context is an access-to-interface
1896         type. In that case we need to apply the conversion to the prefix
1897         of the explicit dereference rather than the prefix of the attribute.
1898         (Attribute_Version, UET_Address): Set entity as internal to ensure
1899         proper dg output of implicit importation.
1900         (Expand_Access_To_Type): Removed.
1901         (Expand_N_Attribute_Reference): Merge the code from the three cases
1902         of access attributes, since the processing is largely identical for
1903         these cases. The substantive fix here is to process the case of a
1904         type name prefix (current instance case) before handling the case
1905         of interface prefixes.
1906
1907 2007-08-14  Thomas Quinot  <quinot@adacore.com>
1908             Ed Schonberg  <schonberg@adacore.com>
1909             Javier Miranda  <miranda@adacore.com>
1910             Robert Dewar  <dewar@adacore.com>
1911
1912         * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
1913         (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
1914         type that is an anonymous access to controlled object, establish
1915         an associated finalization chain to avoid corrupting the global
1916         finalization list when a dynamically allocated object designated
1917         by such a component is deallocated.
1918         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
1919         functions that need it, even when not marked Requires_Overriding.
1920         (Initialize_Tag): Replace call to has_discriminants by call to
1921         Is_Variable_Size_Record in the circuitry that handles the
1922         initialization of secondary tags.
1923         (Is_Variable_Size_Record): New implementation.
1924         (Expand_N_Object_Declaration): Suppress call to init proc if there is a
1925         Suppress_Initialization pragma for a derived type.
1926         (Is_Variable_Size_Record): New subprogram.
1927         (Build_Offset_To_Top_Functions): New implementation that simplifies the
1928         initial version of this routine and also fixes problems causing
1929         incomplete initialization of the table of interfaces.
1930         (Build_Init_Procedure): Improve the generation of code to initialize the
1931         the tag components of secondary dispatch tables.
1932         (Init_Secondary_Tags): New implementation that simplifies the previous
1933         version of this routine.
1934         (Make_DT): Add parameter to indicate when type has been frozen by an
1935         object declaration, for diagnostic purposes.
1936         (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
1937         diagnose attemps to freeze a subprogram when some untagged type of its
1938         profile is a private type whose full view has not been analyzed yet.
1939         (Freeze_Array_Type): Generate init proc for packed array if either
1940         Initialize or Normalize_Scalars is set.
1941         (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
1942         constructing the new profile, copy the null_exclusion indicator for each
1943         parameter, to ensure full conformance of the new body with the spec.
1944
1945         * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
1946         Create wrappers for constructor functions that need it, even when not
1947         marked Requires_Overriding.
1948         (Covers): Handle properly designated types of anonymous access types,
1949         whose non-limited views are themselves incomplete types.
1950         (Add_Entry): Use an entity to store the abstract operation which hides
1951         an interpretation.
1952         (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
1953         (Collect_Interps): Use Empty as an actual for Abstract_Op in the
1954         initialization aggregate.
1955         (Function_Interp_May_Be_Hidden): Rename to
1956         Function_Interp_Has_Abstract_Op.
1957         (Has_Compatible_Type): Remove machinery that skips interpretations if
1958         they are labeled as potentially hidden by an abstract operator.
1959         (Has_Hidden_Interp): Rename to Has_Abstract_Op.
1960         (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
1961         (Write_Overloads): Output the abstract operator if present.
1962         (Add_Entry): Before inserting a new entry into the interpretation table
1963         for a node, determine whether the entry will be disabled by an abstract
1964         operator.
1965         (Binary_Op_Interp_May_Be_Hidden): New routine.
1966         (Collect_Interps): Add value for flag May_Be_Hidden in initialization
1967         aggregate.
1968         (Function_Interp_May_Be_Hidden): New routine.
1969         (Has_Compatible_Type): Do not consider interpretations hidden by
1970         abstract operators when trying to determine whether two types are
1971         compatible.
1972         (Has_Hidden_Interp): New routine.
1973         (Set_May_Be_Hidden_Interp): New routine.
1974         (Write_Overloads): Write the status of flag May_Be_Hidden.
1975
1976 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
1977             Javier Miranda  <miranda@adacore.com>
1978
1979         * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
1980         types declared in the declarative part of a nested package body or in
1981         the proper body of a stub.
1982         (Set_All_DT_Position): Add missing check to avoid wrong assignation
1983         of the same dispatch table slot to renamed primitives.
1984         (Make_Select_Specific_Data_Table): Handle private types.
1985         (Tagged_Kind): Handle private types.
1986         (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
1987         output of implicit importation and exportation.
1988         (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
1989         first formal of the thunk is always associated with the controlling
1990         type. In addition perform the following code cleanup: remove formal
1991         Thunk_Alias which is no longer required, cleanup evaluation of the
1992         the controlling type, and update the documentation.
1993         Replace occurrence of Default_Prim_Op_Count by
1994         Max_Predef_Prims. Addition of compile-time check to verify
1995         that the value of Max_Predef_Prims is correct.
1996         (Check_Premature_Freezing): Apply check in Ada95 mode as well.
1997         (Make_DT): Add parameter to indicate when type has been frozen by an
1998         object declaration, for diagnostic purposes.
1999         (Build_Static_Dispatch_Tables): New subprogram that takes care of the
2000         construction of statically allocated dispatch tables.
2001         (Make_DT): In case of library-level tagged types export the declaration
2002         of the primary tag. Remove generation of tags (now done by Make_Tags).
2003         Additional modifications to handle non-static generation of dispatch
2004         tables. Take care of building tables for asynchronous interface types
2005         (Make_Tags): New subprogram that generates the entities associated with
2006         the primary and secondary tags of Typ and fills the contents of Access_
2007         Disp_Table. In case of library-level tagged types imports the forward
2008         declaration of the primary tag that will be declared later by Make_DT.
2009         (Expand_Interface_Conversion): In case of access types to interfaces
2010         replace an itype declaration by an explicit type declaration to avoid
2011         problems associated with the scope of such itype in transient blocks.
2012
2013 2007-08-14  Robert Dewar  <dewar@adacore.com>
2014             Ed Schonberg  <schonberg@adacore.com>
2015             Javier Miranda  <miranda@adacore.com>
2016
2017         * exp_util.ads, exp_util.adb: 
2018         This patch replaces a number of occurrences of explicit tests for N_Null
2019         with calls to Known_Null. This improves tracking of null values, since
2020         Known_Null also catches null constants, and variables currently known to
2021         be null, so we get better tracking.
2022         (Ensure_Defined): create an itype reference only in the scope of the
2023         itype.
2024         (Side_Effect_Free): A selected component of an access type that
2025         denotes a component with a rep clause must be treated as not
2026         side-effect free, because if it is part of a linked structure its
2027         value may be affected by a renaming.
2028         (Expand_Subtype_From_Expr): For limited objects initialized with build
2029         in place function calls, do nothing; otherwise we prematurely introduce
2030         an N_Reference node in the expression initializing the object, which
2031         breaks the circuitry that detects and adds the additional arguments to
2032         the called function. Bug found working in the new patch for statically
2033         allocated dispatch tables.
2034         (Is_Library_Level_Tagged_Type): New subprogram.
2035         (Remove_Side_Effects): If the expression of an elementary type is an
2036         operator treat as a function call.
2037         (Make_Literal_Range): If the index type of the array is not integer, use
2038         attributes properly to compute the constraint on the resulting aggregate
2039         which is a string.
2040
2041         * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
2042         class-wide type whose base type is an incomplete private type, leave
2043         class-wide type unfrozen so that freeze nodes can be generated
2044         properly at a later point.
2045         (Freeze_Entity, array case): Handle case of pragma Pack and component
2046         size attributre clause for same array.
2047
2048 2007-08-14  Vincent Celier  <celier@adacore.com>
2049
2050         * prj.ads, prj.adb: Update Project Manager to new attribute names for
2051         gprbuild.
2052         Allow all valid declarations in configuration project files
2053         (Reset): Initialize all tables and hash tables in the project tree data
2054         Major update of the Project Manager and of the project aware tools,
2055         including gprmake, so that the same sources in the GNAT repository
2056         can be used by gprbuild.
2057         (Slash_Id): Change type to be Path_Name_Type
2058         (Slash): Return a Path_Name_Type instead of a File_Name_Type
2059
2060         * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
2061         gprbuild.
2062         Update Project Manager to new attribute names for ghprbuild
2063         Allow all valid declarations in configuration project files
2064         Major update of the Project Manager and of the project aware tools,
2065         including gprmake, so that the same sources in the GNAT repository
2066         can be used by gprbuild.
2067
2068         * prj-com.ads: 
2069         Major update of the Project Manager and of the project aware tools,
2070         including gprmake, so that the same sources in the GNAT repository
2071         can be used by gprbuild.
2072
2073         * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
2074         insensitive flag for attributes with optional index.
2075         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
2076         array attribute, put the index in lower case.
2077         Update Project Manager to new attribute names for ghprbuild
2078         Allow all valid declarations in configuration project files
2079         Major update of the Project Manager and of the project aware tools,
2080         including gprmake, so that the same sources in the GNAT repository
2081         can be used by gprbuild.
2082
2083         * prj-env.ads, prj-env.adb: 
2084         Major update of the Project Manager and of the project aware tools,
2085         including gprmake, so that the same sources in the GNAT repository
2086         can be used by gprbuild.
2087         (Get_Reference): Change type of parameter Path to Path_Name_Type
2088
2089         * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
2090         removing '-' from the path to start with the first character of the
2091         next directory.
2092         Major update of the Project Manager and of the project aware tools,
2093         including gprmake, so that the same sources in the GNAT repository
2094         can be used by gprbuild.
2095         Major update of the Project Manager and of the project aware tools,
2096         including gprmake, so that the same sources in the GNAT repository
2097         can be used by gprbuild.
2098
2099         * prj-nmsc.ads, prj-nmsc.adb: 
2100         Update Project Manager to new attribute names for ghprbuild
2101         Allow all valid declarations in configuration project files
2102         (Search_Directories): Detect subunits that are specified with an
2103         attribute Body in package Naming. Do not replace a source/unit in the
2104         same project when the order of the source dirs are known. Detect
2105         duplicate sources/units in the same project when the order of the
2106         source dirs are not known.
2107         (Check_Ada_Name): Allow all identifiers that are not reserved words
2108         in Ada 95.
2109         Major update of the Project Manager and of the project aware tools,
2110         including gprmake, so that the same sources in the GNAT repository
2111         can be used by gprbuild.
2112         (Look_For_Sources): If the list of sources is empty, set the object
2113         directory of non extending project to nil.
2114         Change type of path name variables to be Path_Name_Type
2115         (Locate_Directory): Make sure that on Windows '/' is converted to '\',
2116         otherwise creating missing directories will fail.
2117
2118         * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb, 
2119         prj-part.ads, prj-part.adb:
2120         Major update of the Project Manager and of the project aware tools,
2121         including gprmake, so that the same sources in the GNAT repository
2122         can be used by gprbuild.
2123
2124         * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
2125         insensitive flag for attributes with optional index.
2126         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
2127         array attribute, put the index in lower case.
2128         (Parse_Variable_Reference): Allow the current project name to be used in
2129         the prefix of an attribute reference.
2130
2131         * prj-util.ads, prj-util.adb
2132         (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
2133         defaulted to False. When True, always check against indexes in lower
2134         case.
2135
2136         * snames.ads, snames.h, snames.adb: 
2137         Update Project Manager to new attribute names for gprbuild
2138         Allow all valid declarations in configuration project files
2139
2140 2007-08-14  Robert Dewar  <dewar@adacore.com>
2141             Ed Schonberg  <schonberg@adacore.com>
2142
2143         * opt.ads: Warning for non-local exception propagation now off by
2144         default
2145         New switch -gnatI to disable representation clauses
2146         Implement new pragma Implicit_Packing
2147
2148         * usage.adb: 
2149         Warning for non-local exception propagation now off by default
2150         Add warning for unchecked conversion of pointers wi different
2151         conventions.
2152         New switch -gnatI to disable representation clauses
2153
2154         * usage.adb: new switch -gnatyS
2155
2156         * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
2157         note that aggregates of anonymous array types are not flagged.
2158         -gnatwc now includes membership tests optimized away
2159         -gnatw.x warnings are now off by default
2160         Added conditional compilation Appendix
2161         Add documentation of -gnatI
2162         Add documentation for new -gnatyS style check
2163         Update documentation about SAL and auto-init on Windows.
2164
2165         * gnat_rm.texi: 
2166         Add documentation for pragma Check_Name and 'Enabled attribute
2167         Document that Eliminate on dispatching operation is ignored
2168         Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
2169         Document pragma Main
2170         Document pragma Implicit_Packing
2171
2172         * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
2173         different conventions
2174         New switch -gnatI to disable representation clauses
2175
2176         * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
2177         recognized, report the invalid characters including "-gnat" instead of
2178         just the first character in the switch.
2179         New switch -gnatI to disable representation clauses
2180         Set Warn_On_Object_Renames_Function true for -gnatg
2181
2182         * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
2183         Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
2184         Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
2185         to switch -aP (add directory to project search dir).
2186
2187         * par-prag.adb: Implement new pragma Implicit_Packing
2188
2189         * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
2190         type as having a non-standard representation, to force expansion on
2191         conversion to related types.
2192         (Analyze_Pragma): Warn on misspelled pragma
2193         (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
2194         Ensure consistent use of # in error messages
2195         Implement pragma Implicit_Packing
2196
2197 2007-08-14  Olivier Hainque  <hainque@adacore.com>
2198             Eric Botcazou  <ebotcazou@adacore.com>
2199
2200         * targtyps.c (get_target_maximum_default_alignment): New function.
2201         Maximum alignment
2202         that the compiler might choose by default for a type or object.
2203         (get_target_default_allocator_alignment): New function. Alignment known
2204         to be honored by the target default allocator.
2205         (get_target_maximum_allowed_alignment): New function. Maximum alignment
2206         we might accept for any type or object on the target.
2207         (get_target_maximum_alignment): Now synonym of maximum_default_alignment
2208
2209         * gigi.h (get_target_maximum_default_alignment): Declare new function.
2210         (get_target_default_allocator_alignment): Likewise.
2211         (get_target_maximum_allowed_alignment): Likewise.
2212
2213         PR ada/19037
2214         * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
2215         result of a function call, first try to use a stabilized reference for
2216         a constant renaming too.
2217         (validate_alignment): Use target_maximum_allowed_alignment instead of
2218         MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
2219         (gnat_to_gnu_entity): Use common nodes directly.
2220         (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
2221         alignment and size for the object.
2222         (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
2223         and N_Procedure_Call_Statement.
2224         (takes_address): Rename to lvalue_required_p, add third parameter
2225         'aliased' and adjust recursive calls.
2226         <N_Indexed_Component>: Update 'aliased' from the array type.
2227         <N_Selected_Component>: New case.
2228         <N_Object_Renaming_Declaration>: New Likewise.
2229         (Identifier_to_gnu): Adjust for above changes.
2230         (maybe_stabilize_reference) <CONST_DECL>: New case.
2231
2232         * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
2233         between type variants.
2234         (build_simple_component_ref): Likewise.
2235         (build_call_alloc_dealloc): Use target_default_allocator_alignment
2236         instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
2237         aligning type circuitry for allocations from the default storage pool.
2238         (build_allocator): Likewise.
2239         (build_simple_component_ref): Manually fold the reference for a
2240         constructor if the record type contains a template.
2241
2242         * utils.c (value_zerop): Delete.
2243         (gnat_init_decl_processing): Emit debug info for common types.
2244         (rest_of_record_type_compilation): If a union contains a field
2245         with a non-constant qualifier, treat it as variable-sized.
2246         (finish_record_type): Give the stub TYPE_DECL a name.
2247         (rest_of_record_type_compilation): Likewise.
2248         (convert) <CONSTRUCTOR>: New case.  Build a new constructor if
2249         types are equivalent array types.
2250         (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
2251         even if the type is not passed by reference.
2252         (static_ctors, static_dtors): Delete.
2253         (end_subprog_body): Do not record constructors and destructors.
2254         (build_global_cdtor): Delete.
2255         (gnat_write_global_declarations): Do not call build_global_cdtor.
2256
2257         * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
2258         -fRTS=rtp is specified.
2259         If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
2260         specified.
2261
2262         * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
2263         of the personality function with SJLJ exceptions.
2264
2265         * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
2266         the name of the personality function with SJLJ exceptions.
2267
2268 2007-08-14  Robert Dewar  <dewar@adacore.com>
2269             Ed Schonberg  <schonberg@adacore.com>
2270
2271         * par.ads, par.adb: Improve handling of extra right parens.
2272         (Par): Remove flag From_Limited_With_Clause.
2273
2274         * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
2275         Improve handling of extra right parens.
2276
2277 2007-08-14  Robert Dewar  <dewar@adacore.com>
2278
2279         * par-tchk.adb (TF_Semicolon): Improve error recovery
2280
2281 2007-08-14  Robert Dewar  <dewar@adacore.com>
2282             Ed Schonberg  <schonberg@adacore.com>
2283
2284         * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
2285         enumeration type, mark all literals as referenced.
2286         (Eval_Attribute, case 'Image): If the argument is an enumeration
2287         literal and names are available, constant-fold but mark nevertheless as
2288         non-static.
2289         Clean up function names.
2290         (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
2291         comment.
2292         (Requires_Simple_Name_Prefix): Removed.
2293
2294 2007-08-14  Robert Dewar  <dewar@adacore.com>
2295             Ed Schonberg  <schonberg@adacore.com>
2296
2297         * sem_ch11.adb: Improved warnings for unused variables
2298
2299         * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
2300         is a synchronized interface, the derived type is limited.
2301         (Analyze_Object_Declaration): Mark the potential coextensions in the
2302         definition and expression of an object declaration node.
2303         (Build_Derived_Type): For the completion of a private type declaration
2304         with a derived type declaration, chain the parent type's representation
2305         items to the last representation item of the derived type (not the
2306         first one) if they are not present already.
2307         (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
2308         object declaration of forward references to tags.
2309         (Access_Subprogram_Declaration): In Ada2005, anonymous access to
2310         subprogram types can appear as access discriminants of synchronized
2311         types.
2312         (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
2313         given in prefixed form as a selected component.
2314         (Process_Discriminants): If not all discriminants have defaults, place
2315         error message on a default that is present.
2316         (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
2317         extend a synchronized tagged type.
2318         Improved warnings for unused variables
2319         (Is_Visible_Component): Fix a visibility hole on a component inherited
2320         by a private extension when parent is itself declared as a private
2321         extension, and the derivation is in a child unit.
2322         (Find_Hidden_Interface): Move spec from the package body.
2323
2324 2007-08-14  Robert Dewar  <dewar@adacore.com>
2325             Ed Schonberg  <schonberg@adacore.com>
2326
2327         * sem_ch5.adb: Improve warnings on redundant assignments
2328
2329         * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
2330         parameter
2331         (Is_Synchronized_Tagged_Type): New subprogram that returns true
2332         in case of synchronized tagged types (AARM 3.9.4 (6/2)).
2333         (Safe_To_Capture_Value): Can now return True for constants, even if Cond
2334         is set to False. Improves handling of Known_[Not_]Null.
2335         (Wrong_Type): Special case address arithmetic attempt
2336         (Collect_Abstract_Interfaces): Add new formal to allow collecting
2337         abstract interfaces just using the partial view of private types.
2338         (Has_Abstract_Interfaces): Add new formal to allow checking types
2339         covering interfaces using the partial view of private types.
2340         (Is_Fully_Initialized_Type): Special VM case for uTag component. This
2341         component still needs to be defined in this case, but is never
2342         initialized as VMs are using other dispatching mechanisms.
2343         (Abstract_Interface_List): For a protected type, use base type to get
2344         proper declaration.
2345         Improve warnings on redundant assignments
2346         (Is_Variable): Handle properly an implicit dereference of a prefixed
2347         function call.
2348         (Build_Actual_Subtype): If this is an actual subtype for an
2349         unconstrained formal parameter, use the sloc of the body for the new
2350         declaration, to prevent anomalises in the debugger.
2351
2352 2007-08-14  Robert Dewar  <dewar@adacore.com>
2353
2354         * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
2355         dispatching operation
2356
2357 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2358             Gary Dismukes  <dismukes@adacore.com>
2359
2360         * exp_aggr.ads, 
2361         exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
2362         expanded aggregate code before allocator, and ahead of declaration for
2363         temporary, to prevent access before elaboration when the allocator is
2364         an actual for an access parameter.
2365         (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
2366         the TSD and the table of interfaces.
2367         (Convert_To_Assignments): Augment the test for delaying aggregate
2368         expansion for limited return statements to include the case of extended
2369         returns, to prevent creation of an unwanted transient scope.
2370         (Is_Static_Dispatch_Table_Aggregate): New subprogram.
2371         (Expand_Array_Aggregate): Handle aggregates associated with
2372         statically allocated dispatch tables.
2373         (Expand_Record_Aggregate): Handle aggregates associated with
2374         statically allocated dispatch tables.
2375         (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
2376         of anonymous access type.
2377
2378 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2379
2380         * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
2381         is a variable that renames a slice, use the variable itself in the
2382         expannsion when the renamed expression itself may be modified between
2383         the declaration of the renaming and the array assignment.
2384
2385 2007-08-14  Jerome Guitton  <guitton@adacore.com>
2386
2387         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, 
2388         s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, 
2389         s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
2390         New functions; dummy implementations.
2391
2392         * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
2393         functions, used to implement the multi-tasks mode routines on VxWorks.
2394
2395         * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
2396         New functions, thin
2397         binding to the VxWorks routines which have changed between VxWorks 5
2398         and 6.
2399         (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
2400         which are not callable from a RTP.
2401
2402         * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
2403         implemented for the multi-tasks mode on VxWorks 5 and 6.
2404
2405         * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
2406
2407         * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
2408         functions.
2409
2410 2007-08-14  Vincent Celier  <celier@adacore.com>
2411
2412         * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb, 
2413         gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
2414         mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb, 
2415         mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb, 
2416         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, 
2417         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
2418         mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
2419         procedure.
2420         (Major_Id_Name): New function.
2421         mlib-tgt.ads/mlib.tgt.adb:
2422         (Library_Major_Minor_Id_Supported): New function, default returns True
2423         Most mlib-tgt-*.adb that support shared libraries and symbolic links:
2424         (Build_Dynamic_Library): Add support for major/minor ids for shared libs
2425         Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
2426         Implementation of Library_Major_Minor_Id_Supported returns False
2427         clean.adb:
2428         (Clean_Library_Directory): If major/minor ids are supported, clean all
2429         library files.
2430         Major update of the Project Manager and of the project aware tools,
2431         including gprmake, so that the same sources in the GNAT repository
2432         can be used by gprbuild.
2433
2434 2007-08-14  Olivier Hainque  <hainque@adacore.com>
2435
2436         * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
2437         (GCC_ZCX_Support): Switch to True.
2438         
2439         * s-intman-solaris.adb (Notify_Exception): Call
2440         Adjust_Context_For_Raise before raising, as expected for signal
2441         handlers in general.
2442         
2443         * s-intman-posix.adb (Notify_Exception): Remove declaration of
2444         Adjust_Context_For_Raise, moved to the spec of this unit to be visible
2445         to other implementation bodies.
2446         
2447         * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
2448         be visible by multiple implementation bodies.
2449         
2450         * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
2451         only for conditions coming from hardware.
2452         [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
2453         adjustments to signal context prior to exception raise from signal
2454         handler.
2455         (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
2456         mode.
2457         Solaris section: (__gnat_adjust_context_for_raise): New function.
2458         Implementation of the machine context adjustments to perform prior to
2459         raise from a signal handler. Version for both sparc and x86.
2460         (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
2461         (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
2462         prior to raising as expected for any handler, before possible nested
2463         faults to make sure all the contexts in a chain have been adjusted by
2464         the time we propagate.
2465
2466 2007-08-14  Pascal Obry  <obry@adacore.com>
2467
2468         * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
2469         (SYSTEM_INFO): New record.
2470         (SetThreadIdealProcessor): New imported routine needed for supporting
2471         task_info pragma on Windows.
2472
2473         * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
2474         info can be applied to the current host.
2475         (Create_Task): Set the ideal processor if information is present.
2476
2477         * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
2478         a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
2479
2480 2007-08-14  Olivier Hainque  <hainque@adacore.com>
2481
2482         * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
2483         stack size and initial stack pointer value for a given task.
2484         (Enter_Task): Get the stack attributes of the task we are entering and
2485         let the stack checking engine know about them.
2486
2487         * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
2488         Let the stack-checking engine know about the initial sp value and stack
2489         size associated with the current task.
2490         (Set_Stack_Info): If a stack base has been notified for the current
2491         task, honor it. Fallback to the previous less accurate method otherwise.
2492
2493         * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
2494
2495 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2496
2497         * sem_ch10.adb: Create a limited view of an incomplete type, to make
2498         treatment of limited views uniform for all visible declarations in a
2499         limited_withed package.
2500         Set flag indicating that a subprogram body for a child unit has a
2501         generated spec.
2502         (Analyze_Compilation_Unit): If unit is a subprogram body that has no
2503         separate declaration, remove the unit name from visibility after
2504         compilation, so that environment is clean for subsequent compilations.
2505         (Install_Limited_Context_Clauses): Do not install a
2506         limited_private_with_clause unless the current unit is a body or a
2507         private child unit.
2508         (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
2509         in the same fashion.
2510         (Install_Limited_Withed_Unit): Do not install a limited with clause if
2511         it applies to the declaration of the current package body.
2512         (Remove_Private_With_Clauses): If there is a regular with_clause for
2513         the unit, delete Private_With_Clause from context, to prevent improper
2514         hiding when processing subsequent nested packages and instantiations.
2515
2516 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
2517
2518         * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
2519         dir/file, device:/dir/file, and device:drive_letter:/dir/file as
2520         representing absolute path names.
2521         __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
2522
2523         * cstreams.c (__gnat_full_name for VxWorks): Use
2524         __gnat_is_absolute_path to detect whether we need to add the current
2525         directory to normalize the path.
2526
2527 2007-08-14  Javier Miranda  <miranda@adacore.com>
2528
2529         * a-tags.ads, 
2530         a-tags.adb (Displace): Associate a message with the raised CE
2531         exception.
2532         (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
2533         To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
2534         To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
2535         spec.
2536         (Default_Prim_Op_Count): Removed.
2537         (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
2538         Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
2539         Remove pragma Inline_Always.
2540
2541         * rtsfind.ads (Default_Prim_Op_Count): Removed
2542         (Max_Predef_Prims): New entity
2543         (RE_Expanded_Name): Removed
2544         (RE_HT_Link): Removed
2545         (RE_Iface_Tag): Remmoved
2546         (RE_Ifaces_Table): Removed
2547         (RE_Interfaces_Array): Removed
2548         (RE_Interface_Data_Element): Removed
2549         (RE_Nb_Ifaces): Removed
2550         (RE_RC_Offset): Removed
2551         (RE_Static_Offset_To_Top): Removed
2552
2553         * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
2554         formal.
2555         (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
2556         Prim_Op_Count by Max_Predef_Prims.
2557
2558 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2559             Vincent Celier  <celier@adacore.com>
2560
2561         * binde.adb (Elab_All_Links): Remove unnecessary call to
2562         Generic_Separately_Compiled (if a unit satisfies this predicate, there
2563         won't be an associated Afile).
2564         (Elab_All_Links): Fail if a referenced unit cannot be found
2565
2566         * bindgen.adb: 
2567         Fix comments in bindgen regarding consistency checks done in Bcheck:
2568         the checks are made across units within a partition, not across several
2569         partitions.
2570         Fix generation of C binder file for VxWorks.
2571
2572         * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
2573         Generic_May_Lack_ALI, more descriptive of the current use of the
2574         predicate, and update documentation.
2575
2576         * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
2577         reorganization and documentation update for the case of predefined
2578         library generics (for which we do not reference an Afile).
2579
2580 2007-08-14  Robert Dewar  <dewar@adacore.com>
2581
2582         * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
2583         s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
2584         s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
2585         s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
2586         s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
2587         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
2588         s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
2589         s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
2590         exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
2591         s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
2592         s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
2593         a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
2594         s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
2595         g-altcon.adb: Minor reformatting
2596
2597         ada-tree.h: Delete empty line.
2598
2599         ali.ads: Minor reformatting
2600         Clarification of comments.
2601         Minor spelling correction
2602
2603         * exp_dbug.adb: Add Warnings Off to suppress new warning
2604
2605         * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
2606         formal
2607
2608         * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
2609         value
2610
2611         * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
2612
2613         * a-textio.ads: Reorder the standard input/output/error declarations
2614         for consistency.
2615
2616         * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
2617
2618         * par-ch2.adb: Recognize RM specially in errout
2619         Change 'R'M to RM in all error messages
2620
2621         * scng.adb: Recognize RM specially in errout
2622
2623         * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
2624         N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
2625
2626         * s-direio.adb: Add missing routine header box.
2627
2628         * sem_attr.ads: Add ??? comments
2629
2630         * sem_eval.adb: Recognize RM specially in errout
2631         Change 'R'M to RM in all error messages
2632
2633         * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
2634
2635         * s-tasinf.ads: Fix minor comment typo.
2636
2637         * a-cihama.adb: Minor comment addition
2638
2639         * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
2640         formal
2641
2642         * s-tasinf-tru64.ads: Fix minor comment typo.
2643
2644         * itypes.ads: Comment update.
2645
2646         * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
2647         anymore.
2648
2649         * argv.c: Added protection against null gnat_argv and gnat_envp.
2650
2651         * bcheck.adb (Check_Consistency): Use correct markup character ({) in
2652         warning message when Tolerate_Consistency_Errors is True.
2653
2654         * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
2655         Any_Id, as this subprogram is only applicable to *type* entities (it
2656         sets RM_Size). Instead initialize just Esize and Alignment.
2657
2658 2007-08-14  Bob Duff  <duff@adacore.com>
2659
2660         * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, 
2661         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
2662         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads, 
2663         a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
2664         a-coorse.ads (Next): Applied pragma Inline.
2665         Make all Containers packages Remote_Types (unless they are already
2666         Pure).
2667         (Previous): applied pragma Inline
2668         (Elements_Type): is now a record instead of an array
2669
2670 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2671
2672         * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
2673         of Set_Item.
2674         (Set_Item): When the new item is an element of the currently allocated
2675         table passed by reference, save a copy on the stack if we're going
2676         to reallocate. Also, in Table.Set_Item, make sure we test the proper
2677         variable to determine whether to call Set_Last.
2678
2679         * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
2680         symbols-vms.adb, symbols-processing-vms-alpha.adb,
2681         symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
2682         some occurrences of the pattern
2683            T.Increment_Last;
2684            T.Table (T.Last) := Value;
2685         with a cleaner call to
2686            T.Append (Value);
2687
2688 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2689             Gary Dismukes  <dismukes@adacore.com>
2690             Thomas Quinot  <quinot@adacore.com>
2691
2692         * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
2693         derived type with interface progenitors use the analyzed formal as the
2694         parent of the actual, to create renamings for all the inherited
2695         operations in Derive_Subprograms.
2696         (Collect_Previous_Instances): new procedure within of
2697         Load_Parent_Of_Generic, to instantiate all bodies in the compilation
2698         unit being loaded, to ensure that the generation of global symbols is
2699         consistent in different compilation modes.
2700         (Is_Tagged_Ancestor): New function testing the ancestor relation that
2701         takes progenitor types into account.
2702         (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
2703         traversing over the primitives of the formal and actual types to locate
2704         any abstract subprograms of the actual type that correspond to a
2705         nonabstract subprogram of the formal type's ancestor type(s), and issue
2706         an error if such is found.
2707         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
2708         Instantiate_Package_Body, Instantiate_Subprogram_Body):
2709         Remove bogus guard around calls to Inherit_Context.
2710         (Reset_Entity): If the entity is the selector of a selected component
2711         that denotes a named number, propagate constant-folding to the generic
2712         template only if the named number is global to the generic unit.
2713         (Set_Instance_Env): Only reset the compilation switches when compiling
2714         a predefined or internal unit.
2715
2716 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2717
2718         * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
2719         parameter to determine whether operation applies to the prefix.
2720         (Complete_Object_Operation): If actual has an access type and
2721         controlling formal is not an in_parameter, reject the actual if it is
2722         an access_to_constant type.
2723         (Try_Primitive_Operation): If the type of the prefix is a formal tagged
2724         type, the candidate operations are found in the scope of declaration of
2725         the type, because the type has no primitive subprograms.
2726         (Analyze_Selected_Component): If prefix is class-wide, and root type is
2727         a private extension, only examine visible components before trying to
2728         analyze as a prefixed call.
2729         Change Entity_List to Type_To_Use, for better readability.
2730         (Has_Fixed_Op): Use base type when checking whether the type of an
2731         operator has a user-defined multiplication/division
2732         (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
2733         user-defined operators are available for fixed-point types.
2734
2735 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2736             Ed Schonberg  <schonberg@adacore.com>
2737
2738         * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
2739         formal At_Any_Place indicating, when True, that we want to test for
2740         availability of the stream attribute at any place (as opposed to the
2741         current visibility context only).
2742         (Missing_Read_Write_Attributes): A stream attribute is missing for the
2743         purpose of enforcing E.2.2(8) only if it is not available at any place.
2744         Take into account the Ada2005 pragma Has_Preelaborable_Initialization
2745         when checking the legality of an extension aggregate in a preelaborable
2746         package. Treat the literal null as a valid default expression in a
2747         component declaration for a type with preelaborable initialization.
2748         A limited interface is a legal progenitor for the designated type of a
2749         remote access to class-wide type.
2750
2751 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2752             Ed Schonberg  <schonberg@adacore.com>
2753
2754         * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
2755         reference): Use correct entity as denoted entity for the selector of
2756         the rewritten node.
2757         (Find_Direct_Name): Add comment about Generate_Reference incorrectly
2758         setting the Referenced_As_LHS flag for entities that are implicitly
2759         dereferenced.
2760         (Find_Type): If the type is an internally generated incomplete type,
2761         mark the full view as referenced, to prevent spurious warnings.
2762         (Find_Selected_Component, Has_Components): Handle properly non-limited
2763         views that are themselves incomplete types.
2764         Handle interfaces visible through limited-with clauses.
2765         (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
2766         subprogram generic actual for which we have generated a renaming.
2767         Warn when the renaming introduces a homonym of
2768         the renamed entity, and the renamed entity is directly visible.
2769
2770 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2771             Hristian Kirtchev  <kirtchev@adacore.com>
2772
2773         * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
2774         appear in the subtree to the current allocator if it is not a static
2775         coextension.
2776         (Resolve_Allocator): Perform cleanup if resolution has determined that
2777         the allocator is not a coextension.
2778         (Resolve): Skip an interpretation hidden by an abstract operator only
2779         when the type of the interpretation matches that of the context.
2780         (Resolve): When looping through all possible interpretations of a node,
2781         do not consider those that are hidden by abstract operators.
2782         (Resolve_Actuals): When verifying that an access to class-wide object
2783         is an actual  for a controlling formal, ignore anonymous access to
2784         subprograms whose return type is an access to class_wide type.
2785         (Resolve_Slice): If the prefix of the slice is a selected component
2786         whose type depends on discriminants, build its actual subtype before
2787         applying range checks on the bounds of the slice.
2788         (Valid_Conversion): In an instance or inlined body, compare root types,
2789         to prevent anomalies between private and public views.
2790         (Resolve): Improve error message for ambiguous fixed multiplication
2791         expressions that involve universal_fixed multiplying operations.
2792
2793 2007-08-14  Javier Miranda  <miranda@adacore.com>
2794             Hristian Kirtchev  <kirtchev@adacore.com>
2795
2796         * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
2797         location to allow the correct generation of errors in case of
2798         restrictions applied to the expanded code.
2799         (Expand_Entry_Barrier): Remove all generated renamings for a barrier
2800         function if the condition does not reference them.
2801         (Expand_Entry_Body_Declarations): Mark the index constant as having a
2802         valid value.
2803
2804 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2805
2806         * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
2807         typecode parameters for a union (in a variant record), remove
2808         extraneous layer of Any wrapping for member label.
2809         (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
2810         elabration statements, register the package with the name server
2811         at the beginning, not at the end, of the elaboration statements so
2812         that they can create remote access to subprogram values that designate
2813         remote subprograms from the package.
2814
2815 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
2816
2817         * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
2818         values to compute the number of seconds since the Unix Epoc in order to
2819         account for Daylight Savings Time. Perform special processing for dates
2820         that are earlier than the Unix Epoc to obtain a negative number.
2821
2822 2007-08-14  Emmanuel Briot  <briot@adacore.com>
2823
2824         * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
2825         switches.
2826
2827 2007-08-14  Eric Botcazou  <ebotcazou@adacore.com>
2828
2829         * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
2830         binder-generated file is not in Ada.
2831         Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
2832         recorded in the ALI file.
2833         Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
2834
2835 2007-08-14  Vincent Celier  <celier@adacore.com>
2836
2837         * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
2838         (Output_Source): Do nothing if parameter is No_Sdep_Id
2839
2840         * make.adb (Gnatmake): Do not rebuild an archive simply because a
2841         shared library it imports has a later time stamp.
2842         (Check): Resolve the symbolic links in the path name of the object
2843         directory.
2844         Check that the ALI file is in the correct object directory
2845         Check if a file name does not correspond to the mapping of units
2846         to file names.
2847         (Display_Version): New procedure
2848         (Initialize): Process switches --version and --help
2849         Use type Path_Name_Type for path name
2850
2851 2007-08-14  Paul Hilfinger  <hilfinger@adacore.com>
2852
2853         * impunit.adb: Re-organize System.Random_Numbers and
2854         GNAT.Random_Numbers and add to builds.
2855
2856         * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
2857
2858         * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
2859
2860         * a-assert.ads, a-assert.adb: New files.
2861
2862 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
2863
2864         * layout.adb (Layout_Type): In the case of access-to-subprogram types,
2865         if AAMP_On_Target is True, then the size of the type encompasses two
2866         addresses (a static link and a subprogram address), except in the case
2867         of library-level access types.
2868
2869 2007-08-14  Vincent Celier  <celier@adacore.com>
2870
2871         * output.ads, output.adb (Write_Eol): Remove trailing spaces before
2872         writing the line.
2873         (Write_Eol_Keep_Blanks): New procedure to write a line, including
2874         possible trailing spaces.
2875         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
2876
2877 2007-08-14  Javier Miranda  <miranda@adacore.com>
2878
2879         * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
2880         null-excluding access types.
2881
2882 2007-08-14  Javier Miranda  <miranda@adacore.com>
2883
2884         * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
2885         that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
2886         of private types add missing check on matching interfaces in the
2887         partial and full declarations.
2888         (Analyze_Protected_Type): Code cleanup.
2889         (Analyze_Task_Type): Code cleanup.
2890
2891 2007-08-14  Javier Miranda  <miranda@adacore.com>
2892
2893         * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
2894         generated interface thunk.
2895
2896 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2897
2898         * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
2899         obsolescent warning on application of 'Class to an incomplete type.
2900
2901         * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
2902         prevent obsolescent warning on application of 'Class to an incomplete
2903         type.
2904
2905 2007-08-14  Pascal Obry  <obry@adacore.com>
2906
2907         * s-fileio.adb (Is_Open): Add check for usability of the underlying
2908         file stream.
2909
2910 2007-08-14  Cyrille Comar  <comar@adacore.com>
2911
2912         * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
2913         since it is potentially used in cases implying double finalization of
2914         the same object.
2915
2916 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
2917
2918         * s-tasini.adb (Get_Stack_Info): Move this function to
2919         System.Soft_Links.Tasking because it is common to the full and the
2920         restricted run times.
2921         (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
2922         in SSL.Tasking.Init_Tasking_Soft_Links.
2923
2924         * s-solita.adb (Get_Stack_Info): Function moved from
2925         System.Tasking.Initialization because it is common to the full and the
2926         restricted run times.
2927         (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
2928
2929 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
2930
2931         * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
2932         s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
2933         (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
2934         parameter.
2935
2936         * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
2937         guard to 12K.
2938
2939 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
2940
2941         * s-veboop.adb (SU): New named number initialized to
2942         System.Storage_Unit.
2943         (True_Val): The initialization expression is revised to use SU (=
2944         Storage_Unit) rather than assuming 8 for the component size of an
2945         unpacked Boolean array.
2946
2947 2007-08-14  Tristan Gingold  <gingold@adacore.com>
2948
2949         * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
2950
2951         * tb-ivms.c: New file.
2952
2953         * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
2954
2955 2007-08-14  Geert Bosch  <bosch@adacore.com>
2956
2957         * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
2958         s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
2959         Add required linker pragmas for automatically linking with the gnalasup
2960         linear algebra support library, and the systems math library.
2961         Rename cdot to cdotu and zdot to zdotu.
2962         Update header comment to describe purpose of package.
2963
2964 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2965
2966         * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
2967         an explicitly specified Associated_Final_Chain, use that list.
2968         (Expand_N_Package_Body): Build dispatch tables of library level tagged
2969         types.
2970         (Expand_N_Package_Declaration): Build dispatch tables of library level
2971         tagged types. Minor code cleanup.
2972
2973 2007-08-14  Vincent Celier  <celier@adacore.com>
2974
2975         * gnatchop.adb (Terminate_Program): Remove exception and use
2976         Types.Terminate_Program instead.
2977
2978         * osint.ads, osint.adb (Current_Exit_Status): New global variable
2979         (Find_Program_Name): Added protection against empty name.
2980         (OS_Exit_Through_Exception): New procedure
2981
2982         * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
2983         (OS_Exit_Default): New procedure that contains the previous
2984         implementation of procedure OS_Exit.
2985         (Final_Value): Remove obsolete Interix stuff.
2986
2987 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2988
2989         * g-socket.ads: Reorganize example code so that it also works on
2990         Windows XP.
2991
2992 2007-08-14  Tristan Gingold  <gingold@adacore.com>
2993
2994         * g-trasym.ads: AIX now supports symbolic backtraces.
2995
2996 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2997
2998         * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
2999         units being loaded to detect circularities. A circularity may be
3000         present even if the current chain of pending units to load starts from
3001         a limited_with_clause.
3002
3003         * lib-load.ads: Change profile of Load_Unit to use a with_clause
3004         rather than a boolean flag, in order to detect circularities in
3005         with_clauses.
3006
3007         * par-load.adb: Use current with_clause in calls to Load_Unit, rather
3008         than propagating the From_Limited_With flag, in order to handle
3009         properly circularities involving with_clauses.
3010
3011 2007-08-14  Nicolas Setton  <setton@adacore.com>
3012
3013         * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
3014         warnings.
3015
3016 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
3017
3018         * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
3019         to build for libgnala.
3020         libgnat: Add rules to build libgnala.a
3021         (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
3022         target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
3023         Add s-osinte-vxworks-kernel.adb to the target pairs of the
3024         kernel run-time lib for VxWorks 6, which would provide a different
3025         implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
3026         x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
3027         running ZCX by default.
3028         Add g-sttsne-locking to LynxOS version.
3029         Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
3030         On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
3031
3032         * system-darwin-x86.ads: New file.
3033
3034         * Make-lang.in: Delete files before copying onto them, so if they are
3035         read-only, the copy won't fail.
3036         Update dependencies
3037
3038 2007-08-14  Pascal Obry  <obry@adacore.com>
3039
3040         * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
3041         naming scheme.
3042
3043 2007-08-14  Vincent Celier  <celier@adacore.com>
3044
3045         * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
3046         (Gcc): Initialize Gcc_Name at the first call
3047
3048 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
3049
3050         * sem_ch7.adb (Analyze_Package_Specification): Do not install private
3051         with_clauses of the enclosing unit when analyzing the package
3052         specification of a nested instance.
3053
3054 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
3055
3056         * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
3057         (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
3058         Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
3059         layout of N_Allocator.
3060
3061 2007-08-14  Thomas Quinot  <quinot@adacore.com>
3062
3063         * rtsfind.adb (Check_RPC): Add PCS version check.
3064
3065         * gnatvsn.ads, gnatvsn.adb: Add PCS version.
3066         (Gnat_Free_Software): New function.
3067
3068         * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
3069         the PCS_Version value from s-parint, used to check that it is consistent
3070         with what exp_dist expects.
3071
3072         * s-parint.ads (PCS_Version): New entity for checking consistency
3073         between exp_dist and PCS.
3074
3075         * gen-soccon.c: (SO_REUSEPORT): New constant.
3076
3077 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
3078
3079         * a-calfor.adb (Image (Duration; Boolean)): Change type of local
3080         variable Sub_Second to Duration in order to accomodate a larger range
3081         of arithmetic operations.
3082
3083 2007-08-14  Bob Duff  <duff@adacore.com>
3084
3085         * g-sttsne-locking.ads: Move comments from spec to body.
3086         * g-sttsne-locking.adb: Move comments from spec to body.
3087         * g-sttsne-vxworks.ads: Removed.
3088         * g-sttsne-vxworks.adb: Removed.
3089
3090 2007-08-11  Ian Lance Taylor  <iant@google.com>
3091
3092         * misc.c (gnat_get_alias_set): Change return type to
3093         alias_set_type.
3094
3095 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3096
3097         * decl.c, utils2.c: Fix whitespace in last change.
3098
3099 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3100
3101         * decl.c (compare_field_bitpos): Constify.
3102         * utils2.c (compare_elmt_bitpos): Likewise.
3103
3104 2007-07-27  Aurelien Jarno  <aurelien@aurel32.net>
3105
3106         * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by 
3107         anonymous access type.
3108         (pthread_sigmask): Now take an access sigset_t.
3109
3110 2007-07-05  Joel Sherrill <joel.sherrill@oarcorp.com>
3111
3112         * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
3113         
3114 2007-06-21  Eric Botcazou  <ebotcazou@adacore.com>
3115
3116         PR tree-optimization/25737
3117         * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
3118
3119 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3120
3121         * trans.c (Attribute_to_gnu): When subtracting an
3122         offset from a pointer, use POINTER_PLUS_EXPR with
3123         NEGATE_EXPR instead of MINUS_EXPR.
3124         (gnat_to_gnu): Likewise.
3125         * utils.c (convert): When converting between
3126         thin pointers, use POINTER_PLUS_EXPR and sizetype
3127         for the offset.
3128         * utils2.c (known_alignment): POINTER_PLUS_EXPR
3129         have the same semantics as PLUS_EXPR for alignment.
3130         (build_binary_op): Add support for the semantics of
3131         POINTER_PLUS_EXPR's operands.
3132         When adding an offset to a pointer, use POINTER_PLUS_EXPR.
3133
3134 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
3135
3136         * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
3137         of get_signed_or_unsigned_type.
3138         * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
3139
3140 2007-06-11  Bob Duff  <duff@adacore.com>
3141             Thomas Quinot  <quinot@adacore.com>
3142
3143         * g-stsifd-sockets.adb (Create): Work around strange behavior of
3144         'bind' on windows that causes 'connect' to fail intermittently, by
3145         retrying the 'bind'.
3146         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3147
3148 2007-06-10  Duncan Sands  <baldrick@free.fr>
3149
3150         * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
3151         than to void, for the fields when making a new fat pointer type.
3152         (gnat_substitute_in_type): Now substitute_in_type.
3153         * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
3154         * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
3155         * utils.c (update_pointer_to): Update fat pointers by updating the
3156         dummy node pointers used for the fields.
3157
3158 2007-06-06  Thomas Quinot  <quinot@adacore.com>
3159             Bob Duff  <duff@adacore.com>
3160
3161         * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
3162         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, 
3163         g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
3164         constant Thread_Blocking_IO, always True by default, set False
3165         on a per-runtime basis.
3166         (Need_Netdb_Buffer): New constant.
3167
3168         * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
3169         g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
3170         files.
3171
3172         * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
3173         g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
3174         Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
3175         child package Task_Safe_NetDB
3176         (Host_Error_Messages): Add stub body.
3177         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3178
3179         * g-soccon-mingw.ads: Add Windows-specific constants.
3180         (Need_Netdb_Buffer): New constant.
3181         (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
3182         wrapper and import inet_addr(3) from the standard sockets library
3183         directly instead.
3184         (In_Addr): Add alignment clause.
3185         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3186
3187 2007-06-06  Robert Dewar  <dewar@adacore.com>
3188
3189         * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
3190         s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
3191         s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
3192         s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
3193         s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
3194         s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
3195         a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
3196         a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
3197         a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
3198         g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
3199         g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
3200         i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
3201         s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
3202         s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
3203         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
3204         s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
3205         s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
3206         s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
3207         s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
3208         s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
3209         s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
3210         s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
3211         s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
3212         s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
3213         s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
3214         s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
3215         s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
3216         s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
3217         s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
3218         s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
3219         s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
3220         a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
3221         Unchecked_* by Ada.Unchecked_*
3222
3223 2007-06-06  Robert Dewar  <dewar@adacore.com>
3224
3225         * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
3226         s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
3227         g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
3228         output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
3229         g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
3230         a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
3231
3232         * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
3233         s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
3234         s-tasloc.adb, s-tasloc.ads: New files.
3235
3236 2007-06-06  Bob Duff  <duff@adacore.com>
3237
3238         * g-expect-vms.adb: 
3239         (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
3240         * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
3241         (Send_Signal, Close): Raise Invalid_Process if the process id is
3242         invalid.
3243         (Pattern_Matcher_Access): Is now a general access type to be able to
3244         use aliased string.
3245
3246 2007-06-06  Thomas Quinot  <quinot@adacore.com>
3247             Arnaud Charlet  <charlet@adacore.com>
3248
3249         * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
3250         (SIGEMT is now used instead of SIGTERM on AIX).
3251
3252         * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
3253         (Time_Slice_Supported): Set to True.
3254         Use SIGEMT instead of SIGTERM as SIGADAABORT.
3255
3256 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
3257
3258         * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
3259         (Time, Time)): Use To_Relative_Time rather than manual calculation to
3260         express the bounds of Duration as Time. Raise Time_Error when the
3261         result is greater or equal to the higher bound of Duration (on the
3262         margin case).
3263         ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
3264         Ada_High_And_Leaps.
3265         ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
3266         Ada_High_And_Leaps.
3267         ("-" (Time, Time)): Reorder code.
3268         (All_Leap_Seconds): Removed.
3269         (Arithmetic_Operations.Add): Remove sign related kludge.
3270         (Arithmetic_Operations.Difference): Control the leaps seconds processing
3271         with flag Leap_Support.
3272         (Arithmetic_Operations.Subtract): Remove sign related kludge.
3273         (Check_Within_Time_Bounds): New procedure.
3274         (Clock): Control the leap seconds processing with flag Leap_Support.
3275         (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
3276         (Formatting_Operations.Split): Control the leap seconds processing with
3277         flag Leap_Support.
3278         (Formatting_Operations.Time_Of): Control the leaps seconds processing
3279         with flag Leap_Support. Adjust the year, month and day (if applicable)
3280         when the value of day seconds designates a new day.
3281         (Split): Use parameter associations for better readability. Integrate
3282         flag Is_Ada_05.
3283         (Time_Of): Use parameter associations for better readability. Integrate
3284         flag Is_Ada_05.
3285
3286         * a-calfor.adb (Split): Use parameter associations for better
3287         readability. Integrate flag Is_Ada_05.
3288         (Time_Of): Remove flag Leap_Checks. Use parameter associations for
3289         better readability. Integrate flag Is_Ada_05.
3290
3291 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
3292
3293         * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb, 
3294         s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb, 
3295         s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb, 
3296         s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads, 
3297         s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb, 
3298         s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb, 
3299         s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads, 
3300         s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads, 
3301         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads, 
3302         s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
3303         s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
3304         time when entering this routine to detect a backward clock setting
3305         (manual setting or DST adjustment), to avoid waiting for a longer delay
3306         than needed.
3307         (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
3308         Remove handling of deferred priority change, and replace by setting the
3309         task priority directly, as required by AI-188.
3310         Update comments.
3311         (Max_Task_Image_Length): New constant.
3312         Replace Warnings (Off) by Unreferenced pragma, cleaner.
3313         (Dynamic_Priority_Support): Removed, no longer needed.
3314         (Poll_Base_Priority_Change): Ditto.
3315         (Set_Ceiling): Add this procedure to change the ceiling priority
3316         associated to a lock. This is a dummy implementation because dynamic
3317         priority ceilings are not supported by the underlying system.
3318
3319         * a-dynpri.adb (Set_Priority): Take into account case where Target is
3320         accepting a RV with its priority boosted.
3321         Remove handling of deferred priority change, and replace by setting the
3322         task priority directly, as required by AI-188.
3323
3324         * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
3325         Succeeded = True.
3326         Remove handling of deferred priority change, and replace by setting the
3327         task priority directly, as required by AI-188.
3328         (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
3329         of Self_Id earlier.
3330
3331         * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
3332         (Poll_Base_Priority_Change): Removed.
3333         Code clean up: use SSL.Current_Target_Exception.
3334
3335         * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
3336         to run as this is a potentially dispatching point.
3337         (Call_Synchronous): Use Local_Defer_Abort.
3338         (Callable): Relax assertion.
3339         (Selective_Wait): Relax assertion in case abort is not allowed.
3340         Remove handling of deferred priority change, and replace by setting the
3341         task priority directly, as required by AI-188.
3342
3343         * s-tasuti.adb (Make_Passive): Adjust assertions.
3344         Remove handling of deferred priority change, and replace by setting the
3345         task priority directly, as required by AI-188.
3346
3347 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
3348
3349         * system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
3350         system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
3351         system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads, 
3352         system-vxworks-mips.ads, system-vxworks-alpha.ads, 
3353         system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads, 
3354         system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads, 
3355         system-interix.ads, system-linux-hppa.ads, system-tru64.ads, 
3356         system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads, 
3357         system-solaris-sparcv9.ads, system-vms.ads, system.ads,
3358         system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
3359         system-linux-ia64.ads: Document mapping between Ada and OS priorities.
3360         This patch changes the largest non-binary modulus from 2**31-1 to
3361         2**32-1.
3362         (Compiler_System_Version): Removed, no longer used.
3363         Clean up system files by removing flags only used on a single target.
3364         Also remove obsolete flags, only used during bootstrap from system.ads
3365         (Address): Add a pragma Preelaborable_Initialization.
3366
3367         * system-aix.ads:  Ditto.
3368         (GCC_ZCX_Support): Set to true.
3369         Update priority range on AIX and map Ada priorities to target
3370         priorities appropriately for different scheduling policies.
3371
3372         * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
3373
3374 2007-06-06  Vincent Celier  <celier@adacore.com>
3375
3376         * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
3377         mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
3378
3379         * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb, 
3380         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb, 
3381         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, 
3382         mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, 
3383         mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
3384         MLib.Tgt, containing the default versions of the exported subprograms.
3385         For each platform, create a specific version of the body of new child
3386         package MLib.Tgt.Specific that contains only the body of subprograms
3387         that are different from the default.
3388         (Archive_Builder_Append_Options): New function.
3389
3390 2007-06-06  Matthew Gingell  <gingell@adacore.com>
3391
3392         * s-osinte-aix.adb: Map Ada priorities to target priorities
3393         appropriately for different scheduling policies.
3394
3395 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
3396
3397         * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
3398         its C counterpart.
3399         Remove references to Unchecked_Conversion, and use Ada.xxx instead.
3400         Replace Unchecked_Conversion by Ada.Unchecked_Conversion. 
3401
3402 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
3403
3404         * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
3405         Noop on VMS, added for interface commonality.
3406
3407 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
3408             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3409             Olivier Hainque  <hainque@adacore.com>
3410
3411         * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
3412         renamed expression of a full renaming at toplevel.
3413         (gnat_to_gnu_entity, case object): If not defining, do not look inside
3414         the values the constant is initialized to if it is an N_Allocator.
3415         (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
3416         TYPE_SIZE_UNIT of inner types after the stride is elaborated.
3417         (make_aligning_type): Accept an extra ROOM argument for storage to be
3418         made available before the aligned field, and an extra BASE_ALIGN
3419         argument for callers to pass the alignment guaranteed to be honored for
3420         the whole aligning object. Avoid call to finish_record_type, which only
3421         interferes with the sizes we want to set.
3422         (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
3423         make_aligning_type for super-aligned objects on stack.
3424         (components_to_record): Pass the adjusted size of the type when creating
3425         fields in the qualified union for the variant part.
3426         (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
3427         (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
3428         packed array type.
3429         (maybe_pad_type): Set TYPE_USER_ALIGN.
3430         (make_aligning_type): Likewise.
3431         ALIGN argument is unsigned int.
3432         (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
3433         (gnat_to_gnu_param): Likewise, for parameters.
3434         (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
3435         if it is constant and stems from a function call.
3436         (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
3437         of the record is specified.  Adjust accordingly.
3438         (adjust_packed): New static function.
3439         (gnat_to_gnu_field): Use it to adjust the packedness setting.
3440         (components_to_record): Likewise.
3441         (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
3442         side-effects if the object is deemed constant.
3443         (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
3444         type instead of merely finalizing it.  Tidy.
3445         <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
3446         <E_Access_Type>: Likewise.
3447         (defer_debug_incomplete_list): Rename to defer_finalize_list.
3448         (defer_debug_level): Delete.
3449         (gnat_to_gnu_entity) <debug_deferred>: Likewise
3450         <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
3451         type.
3452         <E_Record_Type>: Do not explicitly defer finalizing the type.
3453         Adjust for write_record_type_debug_info renaming.
3454         <E_Subprogram_Type>: Likewise.
3455         Finalize deferred types right after deferred incomplete types are
3456         expanded.
3457         (rest_of_type_decl_compilation): New global function.
3458         (components_to_record): Rename defer_debug parameter to do_not_finalize.
3459         (components_to_record): Propagate the packedness to the fields of the
3460         qualified union type if there is a variant part.
3461         (gnat_to_gnu_entity) <E_Array_Type>: Use new function
3462         instead of inline code to adjust the XUT field offsets.
3463         (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
3464         <E_Record_Subtype>: Do not let finish_record_type compute the sizes
3465         and write the debug info if the type derives from a discriminated one.
3466         (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
3467         <E_Array_Subtype>: Likewise.
3468         <E_String_Literal_Subtype>: Likewise.
3469         (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
3470         an alignment clause.
3471         (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
3472         before giving warning.
3473         (prepend_one_attribute_to): New function, helper to prepend an attribute
3474         to an attribute list.
3475         (gnat_to_gnu_entity) <E_Procedure>: Use it.
3476         (prepend_attributes): Likewise.
3477         (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
3478         <E_Array_Type>: Declare the padding type for the element type, if any.
3479         <E_Array_Subtype>: Likewise.
3480         (defer_limited_with): New variable.
3481         (Gigi_Equivalent_Type): New function.
3482         (gnat_to_gnu_entity): Use it at start and use result throughout.
3483         (gnat_to_gnu_entity, case E_Access_Type): Rework to use
3484         Gigi_Equivalent_Type, support Limited_With, allow two levels of
3485         indirection, precompute if unconstrained array to simplify logic, and
3486         use defer_limited_with to defer elaboration of some types from limited
3487         with.
3488         (finalize_from_with_types): New function.
3489
3490 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
3491             Eric Botcazou  <ebotcazou@adacore.com>
3492             Tristan Gingold  <gingold@adacore.com>
3493             Olivier Hainque  <hainque@adacore.com>
3494
3495         * trans.c (Identifier_to_gnu): Change test for deferred constant by
3496         adding guard that the entity is an E_Constant before testing presence
3497         of Full_view (and remove unnecessary test that entity is not a type).
3498         For a CONST_DECL used by reference, manually retrieve
3499         the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
3500         (struct language_function): Move from utils.c to here.
3501         (struct parm_attr): New structure.
3502         (parm_attr, parm_attr vector, parm_attr GC vector): New types.
3503         (f_parm_attr_cache): New macro.
3504         (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
3505         expressions for the 'First, 'Last and 'Length attributes of the
3506         unconstrained array IN parameters.
3507         (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
3508         Allocate the information structure for the function earlier, as well
3509         as the language-specific part.
3510         If the parameter attributes cache has been populated, evaluate the
3511         cached expressions on entry.
3512         (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
3513         N_Procedure_Call_Statement and N_Indexed_Component.
3514         (Pragma_to_gnu): Translate inspection_point to an asm statement
3515         containaing a comment and a reference to the object (either its address
3516         for BLKmode or its value).
3517         (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
3518         to go to DECL_INITIAL. Together with the size constraint relaxation
3519         in create_var_decl, enlarges the set of situations in which an
3520         identifier may be used as an initializer without implying elaboration
3521         code.
3522         (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
3523         DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
3524         node.
3525         (maybe_stabilize_reference): Remove lvalues_only parameter.
3526         (gnat_stabilize_reference): Adjust for above change.
3527         (gnat_to_gnu): Do not set location information on the result
3528         if it is a reference.
3529         (add_cleanup): Add gnat_node parameter and set the location of the
3530         cleanup to it.
3531         (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
3532         (Exception_Handler_to_gnu_zcx): Likewise.
3533         (gigi): Remove the cgraph node if the elaboration procedure is empty.
3534         (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
3535         the former right after the latter.
3536         (start_stmt_group): Make global.
3537         (end_stmt_group): Likewise.
3538         (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
3539         vars.
3540         (gnu_program_error_label_stack): Likewise.
3541         (gigi): Initialize them.
3542         (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
3543         (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
3544         New cases.
3545         (push_exception_label_stack): New function.
3546         (takes_address): New function.
3547
3548         * utils.c (struct language_function): Move to trans.c from here.
3549         (unchecked_convert): Do not wrap up integer constants in
3550         VIEW_CONVERT_EXPRs.
3551         (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
3552         the latter for aggregate types, unexpected by later passes, and relax an
3553         arbitrary size constraint on the former.
3554         (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
3555         to compare the sizes.
3556         (convert_vms_descriptor): When converting to a fat pointer type, be
3557         prepared for a S descriptor at runtime in spite of a SB specification.
3558         (shift_unc_components_for_thin_pointers): New function.
3559         (write_record_type_debug_info): For variable-sized fields, cap the
3560         alignment of the pointer to the computed alignment.
3561         (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
3562         If REP_LEVEL is 2, do not compute the sizes.
3563         (build_vms_descriptor): Adjust for new prototype of finish_record_type.
3564         (build_unc_object_type): Likewise.
3565         (declare_debug_type): New function.
3566
3567         * ada-tree.def: USE_STMT: removed (not emitted anymore).
3568
3569         * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
3570         no statement is expandable anymore.
3571         (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
3572         (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
3573         when the user requested it explicitely.
3574         (gnat_post_options): By default, set flag_eliminate_unused_debug_types
3575         to 0 for Ada.
3576         (get_alias_set): Return alias set 0 for a type if
3577         TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
3578
3579         * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
3580         (DECL_FUNCTION_STUB): New accessor macro.
3581         (SET_DECL_FUNCTION_STUB): New setter macro.
3582
3583         * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
3584
3585         * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
3586         declarations.
3587
3588 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
3589
3590         * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
3591         Rename to Abort_Task_Interrupt to be able to keep the same interface
3592         as the rest of the targets.
3593
3594         * s-osinte-vxworks.ads s-osinte-vxworks.adb
3595         (To_VxWorks_Priority): Remove explicit "in" mode indicator
3596
3597         * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
3598         New files.
3599
3600 2007-06-06  Robert Dewar  <dewar@adacore.com>
3601
3602         * a-chahan.ads: Remove obsolescent pragmas
3603
3604         * a-chlat1.ads: Minor reformatting
3605
3606 2007-06-06  Robert Dewar  <dewar@adacore.com>
3607
3608         * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
3609         for Errout
3610
3611         * errout.adb: New Finalize/Compilation_Errors/Output_Messages
3612         implementation
3613
3614         * errout.ads (Finalize): Changed interface
3615         (Output_Messages): New procedure
3616         (Compilation_Errors): New Interface
3617
3618         * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
3619         Finalize/Output_Messages interface for Errout
3620         (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
3621         Errout.
3622
3623 2007-06-06  Thomas Quinot  <quinot@adacore.com>
3624             Olivier Hainque  <hainque@adacore.com>
3625             Robert Dewar  <dewar@adacore.com>
3626
3627         * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
3628         check.
3629         (Raise_Current_Excep): Call Debug_Raise_Exception just before
3630         propagation starts, to let debuggers know about the event in a reliable
3631         fashion.
3632         (Local_Raise): Moved to System.Exceptions
3633         More convenient to have this as a separate unit
3634
3635         * s-except.adb, s-except.ads: New files.
3636
3637         * a-exextr.adb (Unhandled_Exception): Delete - replaced by
3638         Debug_Unhandled_Exception in System.Exceptions where it belongs
3639         together with a couple of other debug helpers.
3640         (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
3641         the former Unhandled_Exception.
3642
3643         * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
3644         (Warn_No_Exception_Propagation): New procedure
3645         (Warn_If_No_Propagation): Rewritten for new warning generation
3646         (Expand_Exception_Handlers): New warning generation
3647         (Expand_N_Raise_xxx_Error): Rewritten for new warnings
3648         (Add_Exception_Label): Use Special_Exception_Package_Used for test
3649         instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
3650         (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
3651         even if restriction is set (makes life easier in Check_Returns)
3652         (Expand_Local_Exception_Handlers): Follow renamed entity chain when
3653         checking exception identities.
3654         (Expand_Local_Exception_Handlers): Do not optimize when all others case
3655         (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
3656         block for handler (used by Check_Returns)
3657         (Expand_Local_Exception_Handlers): Local_Raise now takes an address
3658         (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
3659         remove all exception handlers when optimizing local raise statements.
3660         (Find_Local_Handler): Use Get_Renamed_Entity
3661         (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
3662         marked analyzed after expanding exception handlers, do not generate
3663         redundant cleanup actions, because they have been constructed already.
3664
3665 2007-06-06  Thomas Quinot  <quinot@adacore.com>
3666
3667         * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
3668         presence of this categorization pragma is mandated by the language.
3669         (Limited_Controlled): Add missing pragma Preelaborable_Initialization
3670         for this type.
3671
3672 2007-06-06  Vincent Celier  <celier@adacore.com>
3673             Robert Dewar  <dewar@adacore.com>
3674
3675         * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb, 
3676         butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, 
3677         err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads, 
3678         fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads, 
3679         lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads, 
3680         makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb, 
3681         par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb, 
3682         prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads, 
3683         prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb, 
3684         sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb, 
3685         uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
3686         ali.ads, ali.adb: 
3687         Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
3688         package Namet. Make File_Name_Type and Unit_Name_Type types derived from
3689         Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
3690         Use variables of types File_Name_Type and Unit_Name_Type in error
3691         messages.
3692         (Get_Name): Add parameter Ignore_Special, and set it reading file name
3693         (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
3694         here.
3695         Define flags Flag217-Flag230 with associated subprograms
3696         (Flag_Word5): New record type.
3697         (Flag_Word5_Ptr): New access type.
3698         (To_Flag_Word5): New unchecked conversion.
3699         (To_Flag_Word5_Ptr): Likewise.
3700         (Flag216): New function.
3701         (Set_Flag216): New procedure.
3702
3703 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
3704
3705         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
3706         instead of 'Size.
3707
3708         * a-stwifi.ads, a-stzfix.ads: Minor reformatting
3709
3710 2007-06-06  Javier Miranda  <miranda@adacore.com>
3711
3712         * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
3713         the package.
3714         (Object_Specific_Data_Array): This is now internal to the package.
3715         (Object_Specific_Data): This is now internal to the package.
3716         (Select_Specific_Data_Element): This is now internal to the package.
3717         (Select_Specific_Data_Array): This is now internal to the package.
3718         (Select_Specific_Data): This is now internal to the package.
3719         (Offset_To_Top_Function_Ptr): This is now public.
3720         (To_Offset_To_Top_Function_Ptr): Removed.
3721         (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
3722          local to subprogram Offset_To_Top.
3723         (Predefined_DT): Removed.
3724         (Typeinfo_Ptr): Removed.
3725         (OSD): This function is now internal to this package.
3726         (SSD): This function is now internal to this package.
3727         (DT): New function that displaces the pointer to the table of primitives
3728          to get access to the enclosing wrapper record.
3729         (IW_Membership): Code cleanup.
3730         (Offset_To_Top): Code cleanup.
3731         (Predefined_DT): Removed.
3732         (Register_Interface_Tag): Removed.
3733         (Set_Interface_Table): Removed.
3734         (Set_Offset_Index): Removed.
3735         (Set_Offset_To_Top): Code cleanup.
3736         (Set_OSD): Removed.
3737         (Set_Signature): Removed.
3738         (Set_SSD): Removed.
3739         (Set_Tagged_Kind): Removed.
3740         (Typeinfo_Ptr): Removed.
3741         (TSD): Removed.
3742         (Displace): Add missing check on null actual.
3743
3744         * exp_disp.ads, exp_disp.adb
3745         (Select_Expansion_Utilities): Removed.
3746         (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
3747         (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
3748         the interface requires a new parameter.
3749         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
3750         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
3751         calls to subprograms Build_T, Build_S, etc. by the corresponding code.
3752         Done to remove package Select_Expansion_Utilities.
3753         (Make_DT): New implementation for statically allocated dispatch tables.
3754         (Make_Secondary_DT): Moved to the scope of Make_DT.
3755         (Register_Primitive): Code cleanup plus incoporate the use of the new
3756         function DT_Address_Attribute.
3757         (Expand_Interface_Thunk): The profile of this subprogram has been
3758         changed to return the Thunk_Id and the corresponding code.
3759         (Fill_DT_Entry): Removed. Its functionality is now provided by
3760         subprogram Register_Primitive.
3761         (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
3762         subprogram Register_Primitive.
3763         (Register_Primitive): New subprogram that incorporates the previous
3764         functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
3765         (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
3766         was only required to call Make_DT_Access_Action, which is now removed.
3767         (Ada_Actions): Removed
3768         (Action_Is_Proc): Removed
3769         (Action_Nb_Arg): Removed
3770         Replace all the calls to Make_DT_Access_Action by direct calls to
3771         Make_Procedure_Call_Statement or Make_Function_Call.
3772         (Set_DTC_Entity_Value): New subprogram.
3773         (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
3774         (Expand_Interface_Thunk): Add missing support for primitives that are
3775         functions with a controlling result (case in which there is no need
3776         to generate the thunk).
3777
3778         * exp_atag.ads, exp_atag.adb
3779         (Build_DT): New subprogram that displaces the pointer to reference the
3780         base of the wrapper record.
3781         (Build_Typeinfo_Offset): Removed.
3782         (RTE_Tag_Node): Removed.
3783         (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
3784         (Build_Get_RC_Offset): Removed.
3785         (Build_Inherit_Predefined_Prims): Removed.
3786         (Build_Inherit_TSD: Removed.
3787         (Build_New_TSD): Removed.
3788         (Build_Set_External_Tag): Removed.
3789         (Build_Set_Predefined_Prim_Op_Address): Add documentation.
3790         (Build_Set_Prim_Op_Address): Add documentation.
3791         (Build_Set_TSD): Removed.
3792
3793         * rtsfind.ads, rtsfind.adb
3794         (Load_Fail): If load fails and we are not in configurable run-time
3795         mode, then raise Unrecoverable_Error.
3796         (Text_IO_Kludge): Generate an error message if a run-time library is
3797         not available in a given run-time (ie. zfp run-time).
3798         (RTE_Record_Component): Add code to check that the component we search
3799         for is not found in two records in the given run-time package.
3800         (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
3801         (RE_DT_Predef_Prims_Offset): New entity
3802         (RE_Static_Offset_To_Top): New entity
3803         (RE_HT_Link): New entity.
3804         (System_Address_Image): Addition of this run-time package.
3805         (RE_Address_Image): New entity.
3806         (RE_Abstract_Interface): Removed.
3807         (RE_Default_Prim_Op_Count): Removed.
3808         (RE_DT_Entry_Size): Removed.
3809         (RE_DT_Min_Prologue_Size): Removed.
3810         (RE_DT_Prologue_Size): Removed.
3811         (RE_Ifaces_Table_Ptr): Removed.
3812         (RE_Interface_Data_Ptr): Removed.
3813         (RE_Type_Specific_Data): Removed.
3814         (RE_Primary_DT): Removed.
3815         (RE_Register_Interface_Tag): Removed.
3816         (RE_Set_Offset_Index): Removed.
3817         (RE_Set_OSD): Removed.
3818         (RE_Set_SSD): Removed.
3819         (RE_Set_Signature): Removed.
3820         (RE_Set_Tagged_Kind): Removed.
3821         (RE_Address_Array): New entity.
3822         (RE_DT): New entity.
3823         (RE_Iface_Tag): New entity.
3824         (RE_Interfaces_Table): New entity.
3825         (RE_No_Dispatch_Table): New entity.
3826         (RE_NDT_Prims_Ptr): New entity.
3827         (RE_NDT_TSD): New entity.
3828         (RE_Num_Prims): New entity.
3829         (RE_Offset_To_Top_Function_Ptr): New entity.
3830         (RE_OSD_Table): New entity.
3831         (RE_OSD_Num_Prims): New entity.
3832         (RE_Predef_Prims): New entity
3833         (RE_Predef_Prims_Table_Ptr): New entity.
3834         (RE_Primary_DT): New entity.
3835         (RE_Signature): New entity.
3836         (RE_SSD): New entity.
3837         (RE_TSD): New entity.
3838         (RE_Type_Specific_Data): New entity.
3839         (RE_Tag_Kind): New entity.
3840
3841 2007-06-06  Thomas Quinot  <quinot@adacore.com>
3842
3843         * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
3844         C imported variable.
3845         (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
3846         on entry.
3847
3848 2007-06-06  Robert Dewar  <dewar@adacore.com>
3849
3850         * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
3851         character
3852
3853 2007-06-06  Vincent Celier  <celier@adacore.com>
3854
3855         * a-tifiio.adb (Put, internal): For negative numbers, check that there
3856         is room for at least one digit and the minus sign.
3857         (Put.Put_Character): Never put a character outside of the range of
3858         string To.
3859
3860 2007-06-06  Olivier Hainque  <hainque@adacore.com>
3861             Eric Botcazou  <ebotcazou@adacore.com>
3862
3863         * utils2.c (build_allocator): Provide the extra arguments to
3864         make_aligning_type for super-aligned objects allocated from the default
3865         pool. Leave enough room for a pointer before the aligning field, and
3866         store the system's allocator return value there.
3867         (build_call_alloc_dealloc): When releasing a super-aligned object,
3868         retrieve the system's allocator return value from where build_allocator
3869         has stored it, just ahead of the adjusted address we are passed.
3870         (build_call_raise): Handle properly the generation of line numbers when
3871         the node is marked No_Location.
3872         (compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
3873         by using DECL_UID on ties.
3874         (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
3875         main variant.
3876         (build_call_raise): Handle converting exception into goto; support new
3877         argument KIND.
3878         (build_component_ref): Add new arg to build_call_raise.
3879
3880 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
3881
3882         * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
3883         "." in the case of nnn.xxx when nnn terminates with an underscore.
3884         Parse the remaining "#" or ":" in the case of nnn#.xxx#
3885
3886 2007-06-06  Robert Dewar  <dewar@adacore.com>
3887
3888         * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
3889
3890 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
3891             Vincent Celier  <celier@adacore.com>
3892             Robert Dewar  <dewar@adacore.com>
3893
3894         * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
3895         needed.
3896         (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
3897         ((destructor)) for adafinal, even when switch -a is used.
3898         Do not issue pragma Linker_Destructor for adafinal when switch -a is
3899         used.
3900         (Gen_Object_Files_Options): Add formatting of Linker Options, when
3901         Output_Linker_Option_List is set. Suppress this formatting when
3902         Zero_Formatting is set.
3903         Add case for CLI_Target.
3904         (System_Restrictions_Used): New flag, used to avoid generating with of
3905         System_Restrictions and initialization of the data unless there is
3906         some use of System.Restrictions in the partition.
3907         (Check_System_Restrictions_Used): New procedure
3908
3909         * s-stalib.adb: Remove with of System.Restrictions. No longer needed
3910         since we only with this unit in the binder file if it is used elsewhere
3911         in the partition.
3912
3913 2007-06-06  Vincent Celier  <celier@adacore.com>
3914
3915         * bindusg.adb: Add line for @<response file>
3916         Add lines for new switches -R and -Z
3917
3918         * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
3919         hierarchy in the list of files of the closure when -R is used
3920         (Gnatbind): Accept arguments starting with '@' to indicate response
3921         files and take the arguments from the response files.
3922         If List_Closure is set, display the referenced files
3923
3924 2007-06-06  Javier Miranda  <miranda@adacore.com>
3925             Robert Dewar  <dewar@adacore.com>
3926             Ed Schonberg  <schonberg@adacore.com>
3927
3928         * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
3929         which the address-clause is applied to in-mode actuals (allowed by
3930         13.1(22)).
3931         (Apply_Discriminant_Check): Do not generate a check if the type is
3932         constrained by a current instance.
3933         (Activate_Division_Check): New procedure
3934         (Activate_Overflow_Check): New procedure
3935         (Activate_Range_Check): New procedure
3936         Call these new Activate procedures instead of setting flags directly
3937         (Apply_Array_Size_Check): Removed, no longer needed.
3938         Code clean up: remove obsolete code related to GCC 2.
3939         (Get_E_Length): Protect against bomb in case scope is standard
3940         (Selected_Range_Checks): If the node to be checked is a conversion to
3941         an unconstrained array type, and the expression is a slice, use the
3942         bounds of the slice to construct the required constraint checks.
3943         Improve NOT NULL error messages
3944         (Apply_Constraint_Check): If the context is a null-excluding access
3945         type, diagnose properly the literal null.
3946
3947 2007-06-06  Pascal Obry  <obry@adacore.com>
3948
3949         * clean.adb (Clean_Archive): Use untouched casing for the archive name
3950         and the corresponding .deps file.
3951         (Clean_Interface_Copy_Directory): Use untouched casing for the library
3952         src directory. Minor code-clean-up. Use untouched casing for files
3953         read into the library src dir.
3954         (Clean_Library_Directory): Idem.
3955         (Parse_Cmd_Line): Accept new switch -aP
3956
3957 2007-06-06  Javier Miranda  <miranda@adacore.com>
3958             Ed Schonberg  <schonberg@adacore.com>
3959             Robert Dewar  <dewar@adacore.com>
3960             Eric Botcazou  <ebotcazou@adacore.com>
3961             Arnaud Charlet  <charlet@adacore.com>
3962
3963         * einfo.ads, einfo.adb (Available_View): New synthesized attribute
3964         applicable to types that have the With_Type flag set. Returns the
3965         non-limited view of the type, if available, otherwise the type itself.
3966         For class-wide types, there is no direct link in the tree, so we have
3967         to retrieve the class-wide type of the non-limited view of the Etype.
3968         New attributes Static_Initialization and Static_Elaboration_Desired.
3969         Remove the pragma Thread_Body, and the associated flag
3970         Is_Thread_Body in entities, and all related code.
3971         (Suppress_Value_Tracking_On_Call): New flag
3972         E_Exception has Esize and Alignment fields
3973         (Universal_Aliasing): New function.
3974         (Set_Universal_Aliasing): New procedure.
3975         (Write_Entity_Flags): Deal with Universal_Aliasing flag.
3976         (Check_Nested_Access): New procedure.
3977         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
3978         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
3979         (Related_Interface): New attribute. Present in dispatch table pointer
3980         components of records. Set to point to the entity of the corresponding
3981         interface type.
3982         (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
3983         (Original_Access_Type): Remove, not needed.
3984         (Root_Type): Handle properly subtypes of class-wide-types.
3985         Update comments.
3986
3987         * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
3988         class-wide types visible through limited-with clauses.
3989         (Try_Primitive_Operation): When examining all primitive operations of a
3990         tagged type, do not consider subprograms labeled as hidden unless they
3991         belong to a private generic type with a tagged parent.
3992         (Try_Object_Operation): Extensive rewriting, to handle properly various
3993         overloading cases, when several ancestors may have class-wide operations
3994         that are possible candidates, and when the overloaded functions return
3995         array types and have defaulted parameters so that the call may be
3996         interpreted as an indexing.
3997         (Analyze_Allocator): Remove Mark_Allocator and its invocation.
3998         (Process_Function_Call): use Next, rather than Next_Actual, to analyze
3999         successive actuals before analyzing the call itself.
4000         (Try_Primitive_Operation): A primitive operation is compatible with the
4001         prefix if the prefix has a synchronized type and the type of the formal
4002         is its corresponding record, as can be the case when the primitive
4003         operation is declared outside of the body of the type.
4004         (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
4005         perform homonym traversal, looking for class-wide operation matches
4006         (formerly done in statements of Try_Class_Wide_Operation). Matches on
4007         access parameters are now restricted to anonymous access types.
4008         (Mark_Allocator): An allocator with a discriminant association parent is
4009         a coextension.
4010         (Try_One_Prefix_Interpretation): If the type of the object is
4011         incomplete, as can be happen when it is a limited view obtained through
4012         a limited_with_clause, the selected component is not part of a prefixed
4013         call.
4014         (Complete_Object_Operation): Diagnose properly an object that is not
4015         aliased when the corresponding controlling formal is an access
4016         parameter.
4017         (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
4018         ambiguous calls in prefixed notation, where two primitives differ only
4019         in that the controlling argument of one is an access parameter.
4020
4021         * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
4022         whether a function that returns an unconstrained type can be inlined.
4023         (Process_Formals): Diagnose properly the illegal use of an incomplete
4024         type in the profile of an access_to_subprogram declaration.
4025         (Check_Synchronized_Overriding): Nothing check for concurrent types, the
4026         operations are attached to the corresponding record.
4027         (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
4028         When processing a primitive of a concurrent type which implements an
4029         interface change the type of all controlling formals to that of the
4030         corresponding record type.
4031         (Check_Synchronized_Overriding): Relax the conditional logic when trying
4032         to determine the tagged type to which a primitive belongs.
4033         (Check_Conventions): Capture condition to ignore a primitive operation
4034         (which is shared between the loop in Check_Conventions and the one in
4035         Check_Convention) in a new local function Skip_Check.
4036         (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
4037         confusion with Check_Conventions' own Prim_Op local variable.
4038         (Create_Extra_Formals): Test for a tagged result type rather than a
4039         controlling result when determining whether to add a BIP_Alloc_Form
4040         formal and a BIP_Final_List formal to the function.
4041         (Check_Conformance); For parameters that are anonymous access types,
4042         subtype conformance requires that the not null and the constant
4043         indicators must match
4044         (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
4045         to retrieve the appropriate type when processing a concurrent type
4046         declared within a generic. Minor comment reformatting. Change invocation
4047         of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
4048         mitive.
4049         (Analyze_Subprogram_Body): If the return type of a function is an
4050         anonymous access to the limited view of a class-wide type, and the
4051         non-limited view of the type is available, update the type of the
4052         function so that code can be generated.
4053         (Process_Formals): In case of access-subtype itype whose designated
4054         type is also an itype (situation that happens now with access to
4055         subprograms) we mark the access-type itype with the Has_Delayed_Freeze
4056         attribute to avoid backend problems.
4057         (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
4058         init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
4059         anonymous types' designated types are same before testing
4060         Subtypes_Statically_Match.
4061         (Create_Extra_Formals): Test for a named access parameter that is a
4062         controlling formal as an additional condition for adding an
4063         accessibility level formal. This can occur in the subp type created for
4064         dispatching calls in Expand_Dispatching_Call, and allows calling
4065         Create_Extra_Formals from that procedure rather than special-casing the
4066         extra formals there.
4067         (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
4068         when the function has a controlling result.
4069         (Check_Returns): Add much more knowledge of the optimization of local
4070         raise statements to gotos, to retain proper warnings in this case.
4071         (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
4072         nodes when looking for last statement.
4073
4074         * sem_type.ads, sem_type.adb (Specific_Type): Add support for
4075         class-wide types visible through limited with clauses.
4076         (Add_One_Interp): If the operands are anonymous access types, the
4077         predefined operator on universal_access is immediately visibles
4078         (Find_Unique_Type): Handle anonymous access to subprogram types just as
4079         other anonymous access types.
4080         (Disambiguate): Take into account CIL convention.
4081         (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
4082
4083 2007-06-06  Robert Dewar  <dewar@adacore.com>
4084
4085         * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
4086         sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
4087         elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
4088         Fix lower bound of tables.
4089         Add rep clauses.
4090
4091         * nlists.adb: Ditto.
4092         (Prev_Node, Next_Node): Change index type to Int so that it properly
4093         covers the range First_Node_Id - 1 up.
4094
4095 2007-06-06  Javier Miranda  <miranda@adacore.com>
4096             Ed Schonberg  <schonberg@adacore.com>
4097             Bob Duff  <duff@adacore.com>
4098             Hristian Kirtchev  <kirtchev@adacore.com>
4099
4100         * exp_aggr.ads, exp_aggr.adb: 
4101         (Build_Record_Aggr_Code): Add missing initialization of secondary tags
4102         in extension aggregates.
4103         (Flatten): Other conditions being met, an aggregate is static if the
4104         low bound given by component associations is different from the low
4105         bound of the base index type.
4106         (Packed_Array_Aggregate_Handled): If the component type is itself a
4107         packed array or record, the front-end must expand into assignments.
4108         (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
4109         Init_Pr, instead of Ancestor_Is_Expression.
4110         (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
4111         coextension chain root, either generate a list controller or use the
4112         already existing one.
4113         (Static_Array_Aggregate): New procedure to construct a positional
4114         aggregate that can be handled by the backend, when all bounds and
4115         components are compile-time known constants.
4116         (Expand_Record_Aggregate): Force conversion of aggregates of tagged
4117         types covering interface types into assignments.
4118         (Replace_Type): move to Build_Record_Aggr_Code.
4119         (Expand_Record_Aggr_Code): if the target of the aggregate is an
4120         interface type, convert to the definite type of the aggregate itself,
4121         so that needed components are visible.
4122         (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
4123         components and the context is an extended return statement do not
4124         create a transient block for it, to prevent premature finalization
4125         before the return is executed.
4126         (Gen_Assign): Do not generate a call to deep adjust routine if the
4127         component type is itself an array of controlled (sub)-components
4128         initialized with an inner aggregate.
4129         (Component_Check): New name for Static_Check. This name is now more
4130         appropriate, and documentation is added which was missing.
4131         (Component_Check): Add test for bit aligned component value
4132         (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
4133         Tagged_Comps, name is more appropriate given added function below.
4134         (Component_Not_OK_For_Backend): Check for bit aligned component ref.
4135
4136 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
4137             Javier Miranda  <miranda@adacore.com>
4138             Robert Dewar  <dewar@adacore.com>
4139
4140         * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
4141         Terminated: Add unchecked type conversion from System.Address to
4142         System.Tasking.Task_Id when calling the predefined primitive
4143         _disp_get_task_id.
4144         Disable new Ada 05 accessibility check for JVM.NET targets, which
4145         cannot be implemented in a practical way.
4146         (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
4147         the sources always references the tag of the actual object. Therefore,
4148         if 'Tag is applied in the sources to class-wide interface objects we
4149         generate code that displaces "this" to reference the base of the object.
4150         (Expand_N_Attribute_Reference, case Size): Return specified size if
4151         known to front end.
4152         (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
4153         has code that displaces the pointer of the object to manage interface
4154         types. However this code must not be executed when the prefix is a
4155         subprogram. This bug caused the wrong expansion of the internally
4156         generated assignment that fills the dispatch table when the primitive
4157         is a function returning a class-wide interface type.
4158         (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
4159         Set_Attribute_Name for Name_Unaligned_Valid.
4160
4161 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4162             Gary Dismukes  <dismukes@adacore.com>
4163
4164         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
4165         If the initialization is the equivalent aggregate of the initialization
4166         procedure of the type, do not remove it.
4167         (Expand_N_Attribute_Definition_Clause): Exclude access variables
4168         initialized to null from having their expression reset to empty and
4169         note this exception in the comment.
4170
4171 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
4172             Robert Dewar  <dewar@adacore.com>
4173             Ed Schonberg  <schonberg@adacore.com>
4174             Gary Dismukes  <dismukes@adacore.com>
4175
4176         * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
4177         Add "with" and "use" clauses for Sem_Attr.
4178         (Expand_Current_Value): Do not replace occurences of attribute
4179         references where the prefix must be a simple name.
4180
4181         * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
4182         Namet. Add new arrays Attribute_Name_Modifies_Prefix and
4183         Attribute_Requires_Simple_Name_Prefix.
4184         (Name_Modifies_Prefix): Body of new function.
4185         (Requires_Simple_Name_Prefix): Body of new function.
4186         (Resolve_Attribute, case Access): Improve error message for case of
4187         mismatched conventions.
4188         (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
4189         incomplete type.
4190         (Analyze_Attribute, case 'Access): If the type of the prefix is a
4191         constrained subtype for a nominal unconstrained type, use its base type
4192         to check for conformance with the context.
4193         (Resolve_Attribute): Remove test of the access type being associated
4194         with a return statement from condition for performing accessibility
4195         checks on access attributes, since this case is now captured by
4196         Is_Local_Anonymous_Access.
4197         (Analyze_Access_Attribute): Set Address_Taken on entity
4198         (Analyze_Attribute, case Address): Set Address_Taken on entity
4199         (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
4200         validating an access attribute whose prefix is a current instance.
4201         (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
4202         applied to dispatching operations, if freezing is required then we set
4203         the attribute Has_Delayed_Freeze in the prefix's entity.
4204         (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
4205         current scope if access of local subprogram taken
4206         (Analyze_Access_Attribute): Check legality of self-reference even if the
4207         expression comes from source, as when a single component association in
4208         an aggregate has a box association.
4209         (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
4210         the prefix if it is a protected operation and the attribute is
4211         Unrestricted_Access.
4212         (Resolve_Attribute, case 'Access): Set the Etype of the attribute
4213         reference to the base type of the context, to force a constraint check
4214         when the context is an access subtype with an explicit constraint.
4215         (Analyze_Attribute, case 'Class): If the prefix is an interface and the
4216         node is rewritten as an interface conversion. leave unanalyzed after
4217         resolution, to ensure that type checking against the context will take
4218         place.
4219
4220 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4221             Javier Miranda  <miranda@adacore.com>
4222             Robert Dewar  <dewar@adacore.com>
4223
4224         * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
4225         wrapper when the full view of the controlling type of an inherited
4226         function that dispatches on result implements interfaces.
4227         (Expand_N_Object_Declaration): In cases where the type of the
4228         declaration is anonymous access, create finalization list for it.
4229         (Expand_N_Object_Declaration): Generate a persistent_bss directive only
4230         if the object has no explicit initialization, to match description of
4231         functionality of pragam Persistent_BSS.
4232         (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
4233         new function to build static aggregates, to replace initialization call
4234         when static initialization is desired.
4235         (Freeze_Type): Generate a list controller for an access type whenever
4236         its designated type has controlled anonymous access discriminants.
4237         (Build_Equivalent_Aggregate): New procedure to compute a static
4238         aggregate to be used as default initialization for composite types,
4239         instead of a generating a call to the initialization procedure for the
4240         type.
4241         (Build_Initialization_Call): When available, replace a call to the
4242         initialization procedure with a copy of the equivalent static aggregate
4243         for the type.
4244         (Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
4245         declarations for objects of a class-wide interface type, rather than
4246         just identifiers, to prevent visibility problems.
4247         (Expand_N_Object_Declaration): When expanding the declaration for an
4248         object of a class-wide interface type, preserve the homonym chain of
4249         the original entity before exchanging it with that of the generated
4250         renaming declaration.
4251         (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
4252         active, because there is no way to handle the exception.
4253         (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
4254         to do a minimum decoration of the Access_Disp_Table list.
4255         (Expand_Record_Controller): Avoid the addition of the controller between
4256         the component containing the tag of a secondary dispatch table and its
4257         adjacent component that stores the offset to the base of the object.
4258         This latter component is only generated when the parent type has
4259         discriminants ---documented in Add_Interface_Tag_Components).
4260         (Apply_Array_Size_Check): Removed, no longer needed.
4261         (Expand_N_Full_Type_Declaration): If the type has anonymous access
4262         components, create a Master_Entity for it only if it contains tasks.
4263         (Build_Init_Procedure): Suppress the tag assignment compiling under
4264         no run-time mode.
4265         (Freeze_Record_Type): Remove code associated with creation of dispatch
4266         table.
4267         (Init_Secondary_Tags): Update type of actuals when generating calls to
4268         Ada.Tags.Set_Offset_To_Top
4269         (Stream_Operation_OK): Disable use of streams compiling under no
4270         run-time mode
4271         (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
4272         if Has_Init_Expression set.
4273         (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
4274         Register_Primitive, which provides the same functionality.
4275         (Requires_Init_Proc): Return false in case of interface types.
4276         (Add_Secondary_Tables): Use the new attribute Related_Interface to
4277         cleanup the code.
4278         (Predefined_Primitive_Freeze): Do not assume that an internal entity
4279         is always associated with a predefined primitive because the internal
4280         entities associated with interface types are not predefined primitives.
4281         Therefore, the call to Is_Internal is replaced by a call to the
4282         function Is_Predefined_Dispatching_Operation.
4283         (Make_Eq_If): When generating the list of comparisons for the
4284         components of a given variant, omit the controller component that is
4285         present if the variant has controlled components.
4286
4287 2007-06-06  Javier Miranda  <miranda@adacore.com>
4288             Hristian Kirtchev  <kirtchev@adacore.com>
4289             Bob Duff  <duff@adacore.com>
4290
4291         * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
4292         handle the creation of finalization lists and calls for nested
4293         coextensions when the root of the chains is part of a return statement.
4294         (Inside_A_Return_Statement): New function inside Complete_Coextension_
4295         Finalization.
4296         (Expand_Record_Equality): Skip components that are interface types.
4297         (Displace_Allocator_Pointer): Add missing support for interface subtypes
4298         (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
4299         with Rewrite_Coextension. Change the condition for detecting coextension
4300         root nodes.
4301         (Is_Local_Access_Discriminant): Removed.
4302         (Rewrite_Coextension): New routine which rewrites a static coextension
4303         as a temporary and uses its unrestricted access in the construction of
4304         the outer object.
4305         (Complete_Coextension_Finalization): New routine. Generate finalization
4306         attachment calls to all delayed coextensions.
4307         (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
4308         the allocator is not a coextension itself and has delayed coextensions.
4309         If the current allocator is controlled, but also a coextension, delay
4310         the generation of the finalization attachment call.
4311         Rename local variable "Node" to "Nod" in order to avoid confusion with
4312         "Elists.Node".
4313         (Expand_Allocator_Expression): Call Adjust for initialized allocators of
4314         limited types that are not inherently limited. Such an allocator is
4315         illegal, but is generated by the expander for a return statement, to
4316         copy the result onto the secondary stack. This is the only case where a
4317         limited object can be copied. Generate code to displace the pointer
4318         to the object if the qualified expression is a class-wide interface
4319         object. Such displacement was missing and hence the copy of the object
4320         was wrong.
4321         (Apply_Accessibility_Check): Handle allocated objects initialized in
4322         place.
4323         (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
4324         and Expand_Allocator_Expression. Allocating class-wide interface objects
4325         this routine displaces the pointer to the allocated object to reference
4326         the component referencing the corresponding secondary dispatch table.
4327         Expand_Allocator_Expression): Add missing support to allocate class-wide
4328         interface objects initialized with a qualified expression.
4329         (Get_Allocator_Final_List): Test for an anonymous access type that is a
4330         function result type, and use the finalization list associated with the
4331         function scope in that case (such an anonymous type should not be
4332         treated like an access parameter's type).
4333
4334 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4335             Gary Dismukes  <dismukes@adacore.com>
4336             Javier Miranda  <miranda@adacore.com>
4337
4338         * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
4339         controlled type, use Make_Handler_For_Ctrl_Operation to construct the
4340         required exception handler.
4341         (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
4342         properly the case of a function whose return type is a limited
4343         class-wide interface type. Modify the code of the accessibility
4344         check to handle class-wide interface objects. In this case we need to
4345         displace "this" to reference the primary dispatch table to get access
4346         to the TSD of the object (to evaluate its accessibility level).
4347         (Expand_N_Extended_Return_Statement): Test for a tagged result type
4348         rather than a controlling result as one of the conditions for
4349         generating tests of the implicit BIP_Alloc_Form formal. The
4350         initialization assignment is also handled according to whether the
4351         result is tagged instead of controlling.
4352         In the case where the init assignment is inserted in the "then" part of
4353         the allocation conditional, rewrite the target to be a dereference of
4354         the implicit BIP_Object_Access formal.
4355         If the returned value is unconstrained and created on the secondary
4356         stack, mark the enclosing block and function so that the secondary
4357         stack is not reclaimed on return.
4358         Treat returns from functions with controlling results similarly to
4359         returns from functions with unconstrained result subtypes.
4360         If the object returned is unconstrained, and an allocator must be
4361         created for it, analyze the allocator once the block for the extended
4362         return is installed, to ensure that finalizable components
4363         of the expression use the proper finalization list. Guard the call to
4364         Move_Final_List with a check that there is something to finalize.
4365         (Make_Tag_Ctrl_Assignment): Use "old" handling
4366         of controlled type assignment for virtual machines, since new code uses
4367         unsupported features (such as direct access to bytes in memory).
4368
4369 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
4370             Ed Schonberg  <schonberg@adacore.com>
4371
4372         * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
4373         accessibility actual, check for the case of an aliased object that has
4374         been rewritten as an Access attribute, and assign Prev to Prev_Orig so
4375         we fall into processing for the attribute rather than the name of the
4376         object.
4377         (Expand_Inline_Call): If an actual is a literal, and the corresponding
4378         formal has its address taken in the body, create a temporary to capture
4379         value.  If the return type is a limited interface, do not treat the
4380         return value as Controlled.
4381         (Is_In_Place_Function):  If the return type is a limited interface,
4382         treat as returning in place. The actual returned object may not always
4383         be limited, but the caller has to assume that it is returned in place.
4384         (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
4385         context of an allocator, use the correct finalization chain (that is,
4386         the chain belonging to the access type, rather than the chain belonging
4387         to the current scope).
4388         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
4389         result type rather than a controlling result as a precondition for
4390         adding an allocation form actual to a build-in-place call.
4391         (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
4392         (Freeze_Subprogram): Code cleanup. Remove all the code that register the
4393         primitive in the dispatch tables. This work is now done by Make_DT when
4394         the type is frozen.
4395         (Register_Predefined_DT_Entry): Removed.
4396         (Add_Return): If end label is not present, use sloc of last statement
4397         for generated return statement in procedure, for better gdb behavior
4398         on expanded code.
4399         (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
4400         object address nodes to ensure proper processing by routines like
4401         Insert_After*.
4402         (Expand_Call): Fix generation of validity check for parameter
4403         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
4404         the allocation form parameter if the result subtype is constrained,
4405         except when the function has a controlling result.
4406         (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
4407         rather than Is_Controlled and Has_Controlled_Component, since we want to
4408         include class-wide result types in this treatment. Also test for a
4409         controlling result, since that also requires passing a finalization
4410         list.
4411         (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
4412         even when the result subtype is constrained, to handle calls involving
4413         controlling results.
4414         (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
4415         is now called even when the result subtype is constrained, to handle
4416         calls involving controlling results.
4417         (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
4418         on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
4419         now performs the test).
4420         (Make_Build_In_Place_Call_In_Object_Declaration):
4421         Add_Alloc_Form_Actual_* is now called even when the result subtype is
4422         constrained, to handle calls involving controlling results.
4423         (Add_Return): Accomodate rewritten pattern from local raise to goto
4424         transformation, so that we still recognize an transfer statement
4425         and do the right thing here in that case.
4426         (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
4427         and end of subprogram code.
4428         (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
4429         support for primitives that are functions (without formals) with a
4430         controlling result.
4431         (Inherited_From_Formal): If the actual subtype has not generic parent
4432         type, it is not an actual for a formal derived type, and there is no
4433         operation to inherit from the formal.
4434
4435 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4436             Thomas Quinot  <quinot@adacore.com>
4437
4438         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
4439         inserted cleanup code appropriately for GDB use.
4440         (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
4441         exception handler for Deep_Adjust or Deep_Finalize.
4442         (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
4443         Raise_From_Controlled_Operation is available, use a call to that
4444         subprogram instead of a plain "raise Program_Error" node to raise
4445         Program_Error if an exception is propagated from an Adjust or Finalize
4446         operation.
4447         (Insert_Actions_In_Scope_Around): If the statement to be wrapped
4448         appears in the optional statement list of a triggering alternative, the
4449         scope actions can be inserted directly there, and not in the list that
4450         includes the asynchronous select itself.
4451
4452 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4453             Robert Dewar  <dewar@adacore.com>
4454             Hristian Kirtchev  <kirtchev@adacore.com>
4455
4456         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
4457         generated exception handler appropriately when debugging generated code.
4458         Deal properly with No_Exception_Propagation restriction mode.
4459         (Expand_N_Abort_Statement): Add an unchecked type conversion from
4460         System.Address to System.Tasking.Task_Id when processing the result of
4461         the predefined primitive _disp_get_task_id.
4462         (Expand_N_Asynchronous_Select): Clarify comment.
4463         (Expand_N_Protected_Type_Declaration): Minor code cleanup.
4464         (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
4465         (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
4466         (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
4467         privals and for generated call to Complete_Entry_Body, for better gdb
4468         behavior.
4469         (Copy_Result_Type): Utility to construct a parameter and result profile
4470         for protected functions whose return type is an anonymous access to
4471         subprogram.
4472         (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
4473         call the above.
4474         (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
4475         point when the local-raise-to-goto transformation has taken place.
4476
4477 2007-06-06  Javier Miranda  <miranda@adacore.com>
4478             Nicolas Setton  <setton@adacore.com>
4479
4480         * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
4481         functionality when the backend is generating code.
4482         Otherwise any serious error
4483         reported by the backend calling the frontend routine Error_Msg
4484         changes the Compilation_Mode to Check_Semantics, disables the
4485         functionality of this routine and causes the generation of
4486         spureous additional errors.
4487
4488         * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
4489         debugging information now generated by the compiler for fat-pointer
4490         types.
4491         Document the contents of DW_AT_producer in the GNAT Vendor extensions to
4492         DWARF2/3.
4493         Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
4494
4495 2007-06-06  Thomas Quinot  <quinot@adacore.com>
4496
4497         * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
4498         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
4499         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
4500         For a remote call to a function with a classwide return type, apply an
4501         E.4(18) check to the returned value.
4502         (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
4503         stream attributes of the designated type of an RACW, as they are not
4504         dispatching primitive operations.
4505
4506 2007-06-06  Geert Bosch  <bosch@adacore.com>
4507
4508         * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
4509         negative literal
4510         (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
4511         positive
4512         (Do_Divide_Fixed_Universal): Handle case of negative Frac.
4513         (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
4514         positive
4515         (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
4516
4517 2007-06-06  Javier Miranda  <miranda@adacore.com>
4518
4519         * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
4520         attribute compiling package Ada.Tags under No_Run_Time_Mode.
4521
4522 2007-06-06  Javier Miranda  <miranda@adacore.com>
4523
4524         * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
4525         deallocation of class-wide interface objects.
4526         (Expand_Dispatching_Constructor_Call): Take into account that if the
4527         result of the dispatching constructor is an interface type, the
4528         function returns a class-wide interface type; otherwise the returned
4529         object would be actual. The frontend previously accepted returning
4530         interface types because Expand_Interface_Actuals silently performed
4531         the management of the returned type "as if" it were a class-wide
4532         interface type.
4533         (Expand_Dispatching_Constructor_Call): Replace call to
4534         Make_DT_Access_Action by direct call to Make_Function_Call.
4535
4536 2007-06-06  Robert Dewar  <dewar@adacore.com>
4537             Ed Schonberg  <schonberg@adacore.com>
4538
4539         * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
4540         compute masking constant, since we now set Esize properly to the
4541         underlying size.
4542         (Create_Packed_Array_Type): Set proper Esize value adjusted as required
4543         to match the alignment.
4544         (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
4545         packed arrays of 8 bits or less.
4546
4547         * freeze.adb (Freeze_Entity): When freezing the formals of a
4548         subprogram, freeze the designated type of a parameter of an access type
4549         only if it is an access parameter.
4550         Increase size of C convention enumeration object
4551         (Freeze_Entity, array type case): Make sure Esize value is properly
4552         adjusted for the alignment if it is known.
4553         (Freeze_Entity, array type case): When checking bit packed arrays for
4554         the size being incorrect, check RM_Size, not Esize.
4555         (Freeze_Record_Type): Check for bad discriminated record convention
4556         (In_Exp_Body): Return true if the body is generated for a subprogram
4557         renaming, either an attribute renaming or a renaming as body.
4558         (Check_Itype): If the designated type of an anonymous access component
4559         is a non-protected subprogram type, indicate that it is frozen, to
4560         prevent out-of-scope freeze node at some subsequent call.
4561         (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
4562         only if the subprogram is neither imported nor exported, as well as the
4563         NCA descriptor class if the subprogram is exported.
4564
4565 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4566             Arnaud Charlet  <charlet@adacore.com>
4567             Robert Dewar  <dewar@adacore.com>
4568             Gary Dismukes  <dismukes@adacore.com>
4569
4570         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
4571         default initialization on an imported object, when there is no
4572         initialization call generated for it.
4573         (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
4574         restriction
4575
4576         * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
4577         Static_Elaboration_Desired.
4578         Remove pragma Thread_Body.
4579         Implement a new pragma No_Body
4580         Removes the Explicit_Overriding pragma
4581         Remove Optional_Overriding pragma
4582         (Prag): Deal with Universal_Aliasing.
4583         (Name_CIL, Name_CIL_Constructor, Convention_CIL,
4584         Pragma_CIL_Constructor): New names.
4585
4586         * sem_cat.adb (Validate_Object_Declaration): An initialization that
4587         uses the equivalent aggregate of a type must be treated as an implicit
4588         initialization.
4589         (Get_Categorization): Check a unit for pragma Preelaborate only if it
4590         has none of the other categories.
4591         (Process_Import_Or_Interface_Pragma): Report an error for an attempt
4592         to apply Import to an object renaming declaration.
4593
4594         * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
4595         from a C++ class should be declared as limited and that it will be
4596         considererd limited.
4597         (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
4598         should be declared as limited and that it will be considererd limited.
4599         (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
4600         (Analyze_Pragma, case Export): Diagnose export of enumeration literal
4601         (Analyze_Pragma): Deal with Universal_Aliasing.
4602         (Sig_Flags): Likewise.
4603         (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
4604         (Overflow_Checks_Unsuppressed): New flag.
4605         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
4606         (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
4607         case of JVM or .NET targets, and compiling user code.
4608         Add debugging convenience routine rv
4609
4610 2007-06-06  Robert Dewar  <dewar@adacore.com>
4611
4612         * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
4613         are interface type.
4614         (Build_Elementary_Input_Call): For floating-point use right type in the
4615         absence of strange size or stream size clauses.
4616         (Build_Elementary_Write_Call): Same fix
4617         (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
4618         set to value that does not match base type size.
4619
4620 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4621
4622         * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
4623         object of a limited type can be initialized with a call to a function
4624         that returns in place. If the limited type has unknown discriminants,
4625         and the underlying type is a constrained composite type, build an actual
4626         subtype from the function call, as is done for private types.
4627         (Side_Effect_Free): An expression that is the renaming of an object or
4628         whose prefix is the renaming of a object, is not side-effect free
4629         because it may be assigned through the renaming and its value must be
4630         captured in a temporary.
4631         (Has_Controlled_Coextensions): New routine.
4632         (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
4633         as is done for other limited types.
4634         (Non_Limited_Designated_Type): new predicate.
4635         (Make_CW_Equivalent_Type): Modified to handle class-wide interface
4636         objects.
4637         Remove all handling of with_type clauses.
4638
4639         * par-ch10.adb: Remove all handling of with_type clauses.
4640
4641         * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
4642         checksum if the main source could not be parsed.
4643         (Loat_Unit): When processing a child unit, determine properly whether
4644         the parent unit is a renaming when the parent is itself a child unit.
4645         Remove handling of with_type clauses.
4646
4647         * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
4648         (Set_Is_Static_Coextension): New procedure.
4649         (Has_Local_Raise): New function
4650         (Set_Has_Local_Raise): New procedure
4651         (Renaming_Exception): New field
4652         (Has_Init_Expression): New flag
4653         (Delay_Finalize_Attach): Remove because flag is obsolete.
4654         (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
4655         Remove all handling of with_type clauses.
4656         (Exception_Junk): Can now be set in N_Block_Statement
4657
4658 2007-06-06  Vincent Celier  <celier@adacore.com>
4659             Robert Dewar  <dewar@adacore.com>
4660
4661         * frontend.adb (Frontend): Return immediately if the main source could
4662         not be parsed, because of preprocessing errors.
4663
4664         * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
4665         (Gnat1drv): Exit with errors if the main source could not be parsed,
4666         because of preprocessing errors.
4667         (Check_Rep_Info): New procedure
4668
4669 2007-06-06  Robert Dewar  <dewar@adacore.com>
4670
4671         * g-hesorg.ads, g-heasor.ads,
4672         g-busorg.ads, g-bubsor.ads: Update documentation
4673         GNAT.Heap/Bubble_Sort_G is now pure
4674
4675 2007-06-06  Robert Dewar  <dewar@adacore.com>
4676
4677         * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
4678
4679 2007-06-06  Robert Dewar  <dewar@adacore.com>
4680             Ed Schonberg  <schonberg@adacore.com>
4681
4682         * g-comlin.ads, g-comlin.adb: 
4683         Add new warning for renaming of function return objects
4684
4685         * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
4686         (Tree_Read): Use size of object instead of type'object_size, since the
4687         latter is incorrect for packed array types.
4688         (Tree_Write): Same fix
4689
4690         * opt.ads: Add new warning for renaming of function return objects
4691         (Generating_Code): New boolean variable used to indicate that the
4692         frontend as finished its work and has called the backend to process
4693         the tree and generate the object file.
4694         (GCC_Version): Is now private
4695         (Static_Dispatch_Tables): New constant declaration.
4696         (Overflow_Checks_Unsuppressed): New flag.
4697         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
4698         (List_Closure): New flag for gnatbind (-R)
4699         Zero_Formatting: New flag for gnatbind (-Z)
4700         (Special_Exception_Package_Used): New flag.
4701         (Warn_On_Unrepped_Components): New flag.
4702
4703         * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
4704         unit is a compilation unit, rather than relying on its scope, so that
4705         Standard can be renamed.
4706         (Analyze_Object_Renaming): Add new warning for renaming of function
4707         return objects.
4708         Also reject attempt to rename function return object in Ada 83 mode.
4709         (Attribute_Renaming): In case of tagged types, add the body of the
4710         generated function to the freezing actions of the type.
4711         (Find_Type): A protected type is visible right after the reserved word
4712         "is" is encountered in its type declaration. Set the entity and type
4713         rather than emitting an error message.
4714         (New_Scope): Properly propagate Discard_Names to inner scopes
4715         (Check_Nested_Access): New procedure.
4716         (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
4717         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
4718
4719         * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
4720         Add new warning for renaming of function return objects
4721         (Check_References): Suppress warnings for objects whose type or
4722         base type has Warnings suppressed.
4723         (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
4724         (Set_Warning_Switch): Include new -gnatwc in -gnatwa
4725
4726 2007-06-06  Vincent Celier  <celier@adacore.com>
4727             Emmanuel Briot  <briot@adacore.com>
4728             Olivier Hainque  <hainque@adacore.com>
4729
4730         * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
4731         absolute value of Header.Block_Size when displaying the freed physical
4732         memory in traces.
4733         (Allocate): Compute Storage_Address using Integer_Address, not
4734         Storage_Offset, because the range of Storage_Offset may not be large
4735         enough.
4736         (Configure): New parameter Low_Level_Traces
4737         (Allocate, Deallocation, Free_Physically): Added low-level traces
4738         (Configure): new parameter Errors_To_Stdout.
4739         (Output_File): new subprogram
4740         (Deallocate, Dereference): Send error messages to the proper stream
4741         (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
4742         documented. Previous code would send it to the current output file
4743         defined in GNAT.IO, which might not be stdout
4744         (Is_Valid): Adjust comment to mention that a positive reply means that
4745         Header_Of may be used to retrieve the allocation header associated with
4746         the subprogram Storage address argument. Return False early if this
4747         address argument is misaligned.
4748
4749 2007-06-06  Vincent Celier  <celier@adacore.com>
4750
4751         * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
4752         switch -P
4753         (ASIS_Main): New global variable
4754         (Get_Closure): New procedure
4755         (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
4756         check, metric or pretty. Call Get_Closure in this case.
4757         (Check_Files): For GNAT LIST, check all sources of all projects when
4758         All_Projects is True.
4759         (GNATCmd): Accept -U for GNAT LIST
4760
4761 2007-06-06  Vincent Celier  <celier@adacore.com>
4762
4763         * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
4764         has been specified
4765         Correct error message when invocation of the linker fails
4766         Add explicit size clause for the C imported variables
4767         Object_List_File_Supported and Using_GNU_Linker to emphasize that
4768         we expect char size.
4769         Read target parameters earlier, since this is needed to set
4770         Target_VM properly. Also do not use -static/shared-libgcc for non GCC
4771         targets.
4772
4773 2007-06-06  Vincent Celier  <celier@adacore.com>
4774
4775         * gnatls.adb: 
4776         Add 3 spaces before the default project directory when displaying
4777         the project search path.
4778         Add new command line switch '-l' to display license information.
4779
4780 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
4781
4782         * gmem.c: Add support for timestamps on memory operations.
4783
4784         * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
4785         operations (not used currently, just foundation for future
4786         enhancements). Add possibility to perform full dump of gmem.out file.
4787         (Print_Back_Traces): Declare accesses to root arrays constants since
4788         they aren't modified.
4789         (Print_Back_Traces): allocate root arrays on the heap rather than stack.
4790
4791 2007-06-06  Vincent Celier  <celier@adacore.com>
4792
4793         * gnatsym.adb: Update Copyright notice
4794         (Parse_Cmd_Line): Accept new switch -D
4795         (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
4796          file.
4797
4798         * prj.ads (Policy): New policy Direct
4799         (Yes_No_Unknown): New enumeration type
4800         (Project_Data): New component Libgnarl_Needed
4801
4802         * prj-nmsc.adb (Check_For_Source): When recording a source file make
4803         use the untouched pathname casing.
4804         (Get_Directories): Ensure that the Display_Exec_Directory is using the
4805         proper casing on non case-sensitive platforms like Windows.
4806         (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
4807         on all platforms, as it is not possible to know which one is allowed
4808         before processing the project files.
4809         (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
4810         specified when symbol policy is Direct. Check that when there is a
4811         symbol file defined (either by default or with attribute
4812         Library_Symbol_File) it is not the same as the reference symbol file.
4813         (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
4814         (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
4815         extending projects.
4816         (Record_Ada_Source): Record a source that has been locally removed in an
4817         imported project.
4818
4819         * symbols.ads (Policy): New policy Direct
4820
4821         * symbols-vms.adb (Initialize): Take new policy Direct in case
4822         statement
4823
4824 2007-06-06  Vincent Celier  <celier@adacore.com>
4825
4826         * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
4827         Correct obvious bug (return Dir; instead of return Directory;).
4828         (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
4829
4830 2007-06-06  Thomas Quinot  <quinot@adacore.com>
4831
4832         * g-pehage.adb (Produce): Open output files in Binary mode, so that
4833         they have UNIX line endings (LF only) even on Windows, and thus pass
4834         all GNAT style checks.
4835
4836 2007-06-06  Emmanuel Briot  <briot@adacore.com>
4837
4838         * g-regpat.adb (Quote): Fix improper quoting of '.'
4839
4840 2007-06-06  Thomas Quinot  <quinot@adacore.com>
4841
4842         * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
4843         default, set False on a per-runtime basis.
4844         (Need_Netdb_Buffer): New constant.
4845
4846         * g-socket.ads, g-socket.adb: Import new package
4847         GNAT.Sockets.Thin.Task_Safe_NetDB.
4848         (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
4849         binding to obtain proper message.
4850         (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
4851         Replace various occurrences of Arry (Arry'First)'Address with the
4852         equivalent Arry'Address (GNAT always follows implementation advice from
4853         13.3(14)).
4854         (Get_Host_By_Address, Get_Host_By_Name,
4855         Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
4856         instead, rely on platform-specific task safe netdb operations provided
4857         by g-socthi.
4858
4859         * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
4860         parameter Process_Blocking_IO.
4861         (Host_Error_Messages): Add stub body.
4862         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
4863         (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
4864         Safe_Getservbyport): Move functions into new child package
4865         Task_Safe_NetDB.
4866         (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
4867         Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
4868         (In_Addr): Add alignment clause.
4869
4870 2007-06-06  Robert Dewar  <dewar@adacore.com>
4871
4872         * g-trasym.ads, g-traceb.ads: Update list of supported targets
4873         Add note about symbolic traceback
4874
4875 2007-06-06  Pascal Obry  <obry@adacore.com>
4876
4877         * hostparm.ads (Normalized_CWD): Use the host directory separator
4878         instead of the hardcoded forward slash which is not the proper
4879         character on Windows for example.
4880         (Java_VM): Removed.
4881
4882 2007-06-06  Vincent Celier  <celier@adacore.com>
4883             Arnaud Charlet  <charlet@adacore.com>
4884
4885         * a-clrefi.adb, a-clrefi.ads: New files
4886
4887         * impunit.adb: Add s-os_lib in the list of user visible units.
4888         (Non_Imp_File_Names_95): Add a-clrefi to this list
4889         Remove obsolete run-time entries.
4890         (Non_Imp_File_Names_05): Add Ada 2005 entries for:
4891          "a-exetim" -- Ada.Execution_Time
4892          "a-extiti" -- Ada.Execution_Time.Timers
4893
4894         * mlib-prj.ads, mlib-prj.adb
4895         (Build_Library): Use untouched object dir and library dir. At the
4896         same time makes sure that the checks are done using the canonical
4897         form. Removes hard-coded directory separator and use the proper host
4898         one instead.
4899         (Process_Project): Do not look in object directory to check if libgnarl
4900         is needed for a library, if there is no object directory.
4901         (Build_Library): Scan the ALI files to decide if libgnarl is needed for
4902         linking.
4903         (Build_Library): When invoking gnatbind, use a response file if the
4904         total size of the arguments is too large.
4905
4906         * Makefile.rtl: (g-sttsne): New object file.
4907         Add entry for a-clrefi, s-utf_32, System.Exceptions
4908
4909         * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
4910         (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
4911         (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
4912         Change g-string to s-string, g-os_lib to s-os_lib
4913         Change all g-utf_32 references to s-utf_32
4914
4915 2007-06-06  Tristan Gingold  <gingold@adacore.com>
4916             Olivier Hainque  <hainque@adacore.com>
4917
4918         * init.c: Do not adjust IP of an imported VMS exception of ia64.
4919         LIB$STOP is called to raise an exception and the IP of the exception
4920         is the instruction right after the call.
4921         (__gnat_adjust_context_for_raise, AIX): Implement.
4922         (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
4923          adjust_context_for_raise before Raise_From_Signal_Hanler.
4924         (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
4925         siginfo is passed to the handler, necessary to let the zcx propagation
4926         engine unwind past it.
4927
4928 2007-06-06  Olivier Hainque  <hainque@adacore.com>
4929
4930         * initialize.c (__gnat_initialize for vxworks):  Update documentation
4931         on the ZCX support, using different sets of crtstuff objects than with
4932         GCC 3.4.
4933
4934 2007-06-06  Robert Dewar  <dewar@adacore.com>
4935
4936         * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
4937         spec from body
4938         (Layout_Type): Fix recomputation of size from alignment.
4939
4940 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4941             Javier Miranda  <miranda@adacore.com>
4942
4943         * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
4944         association in an instance.
4945         (Copy_Generic_Node): If the node is a string literal, no need to copy
4946         its descendants.
4947         (Is_Generic_Formal): For a formal subprogram, the declaration is the
4948         grandparent of the entity.
4949         (Analyze_Formal_Interface_Type): Transform into a full type declaration,
4950         to simplify handling of formal interfaces that derive from other formal
4951         interfaces.
4952         (Instantiate_Subprogram_Body): The defining unit name of the body of
4953         the instance should be a defining identifier.
4954         (Install_Formal_Packages): make global to the package, for use in
4955         instantiations of child units.
4956         (Analyze_Package_Instantiation): Do not attempt to set information on an
4957         enclosing master of an entry when expansion is disabled.
4958         (Instantiate_Type): If the actual is a tagged synchronized type and the
4959         generic ancestor is an interface, create a generic actual for the
4960         corresponding record.
4961         (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
4962         declaration, to ensure that the interface list is processed correctly.
4963         (Inline_Instance_Body): If enclosing scope is an instance body, remove
4964         its entities from visibiility as well.
4965         (Pre_Analyze_Actuals): if the actual is an allocator with  constraints
4966         given with a named association, analyze the expression only, not the
4967         discriminant association itself.
4968         (Reset_Entity): If the analysis of a selected component is transformed
4969         into an expanded name in the prefix of a call with parameters, do not
4970         transform the original node into an expanded name, to prevent visibility
4971         errors in the case of nested generics.
4972         (Check_Private_View): For an array type, check whether the index types
4973         may need exchanging.
4974
4975 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
4976             Vincent Celier  <celier@adacore.com>
4977
4978         * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
4979         since both are separated.
4980         Add support for imported CIL packages.
4981         Add further special handling of "value_type" for CIL.
4982         Add special handling of pragma Import for CIL.
4983
4984         * make.ads, make.adb: When switch -eS is used, direct all outputs to
4985         standard output instead of standard error, except errors.
4986         (Absolute_Path): Use untouched casing for the parent directory.
4987         (Add_Library_Search_Dir): Use the untouched directory name.
4988         (Add_Source_Search_Dir): Idem.
4989         (Change_To_Object_Directory): Update output to use proper casing.
4990         (Create_Binder_Mapping_File): Use the untouched filename to set
4991         ALI_Name.
4992         (Gnatmake): Use untouched library and executable directory names.
4993         (Insert_Project_Sources): Use untouched filename for spec and body.
4994         (Is_In_Object_Directory): Use untouched object directory.
4995         (Mark_Directory): Idem.
4996         (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
4997         contains the non-canonical filename in all cases.
4998         (Change_To_Object_Directory): In verbose mode, display the name of the
4999         object directory we're changing to.
5000         (Compile_Sources): Make sure, when a project file is used, to compile
5001         the body of the unit, when there is one, even when only the spec is
5002         recorded in an ALI file.
5003         (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
5004         spec to the body.
5005         (Report_Compilation_Failed): New procedure
5006         (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
5007         procedures moved from the spec to the body.
5008         (Extract_Failure): Removed, not used
5009         Replace explicit raises of exception Bind_Failed and Link_Failed with
5010         calls to Make_Failed with the proper message.
5011         Replace explicit raises of exception Compilation_Failed with calls to
5012         procedure Report_Compilation_Failed.
5013         (Initialize): Create mapping files unconditionally when using project
5014         files.
5015
5016         * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
5017         Pragma_CIL_Constructor): New names.
5018
5019         * targparm.ads, targparm.adb
5020         (Compiler_System_Version): Removed, no longer used.
5021         (Get_Target_Parameters): Relax checks on system.ads validity. Add
5022         handling of two new system flags: JVM and CLI.
5023
5024 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
5025             Arnaud Charlet  <charlet@adacore.com>
5026
5027         * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
5028         time, use the default s-interr body that provides interrupt support
5029         based on signals.
5030         (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
5031         a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
5032         g-soccon.ads, and s-taprop.adb for the marte run time.
5033         (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
5034         timers are supported on marte.
5035         (EH_MECHANISM for marte): Do not use ZCX.
5036         (THREADSLIB for marte): Use -lmarte.
5037         Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
5038         Add mlib-tgt-specific.o to gnatmake objects
5039         mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
5040         longer of MLib.Tgt.
5041         (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
5042         6, either kernel or rtp, use a specialized version of s-osinte.ads.
5043
5044 2007-06-06  Pascal Obry  <obry@adacore.com>
5045
5046         * mkdir.c (__gnat_mkdir): Add support for UTF-8.
5047
5048 2007-06-06  Vincent Celier  <celier@adacore.com>
5049
5050         * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
5051         separator, use instead the proper host directory separator.
5052         (Copy_ALI_Files): Make sure that an already existing ALI file in the
5053         ALI copy dir is writable, before doing the copy.
5054
5055         * mlib-utl.ads, mlib-utl.adb: 
5056         (Gcc): If length of command line is too long, put the list of object
5057         files in a response file, if this is supported by the platform.
5058         (Ar): If invocation of the archive builder is allowed to be done in
5059         chunks and building it in one shot would go above an OS dependent
5060         limit on the number of characters on the command line, build the archive
5061         in chunks.
5062
5063 2007-06-06  Vincent Celier  <celier@adacore.com>
5064
5065         * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
5066         of specified object file is not equal to base name of source.
5067
5068 2007-06-06  Javier Miranda  <miranda@adacore.com>
5069             Hristian Kirtchev  <kirtchev@adacore.com>
5070             Ed Schonberg  <schonberg@adacore.com>
5071
5072         * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
5073         the full type declaration.
5074         (Analyze_Component_Declaration): Add local variable E to capture the
5075         initialization expression of the declaration. Replace the occurences of
5076         Expression (N) with E.
5077         (OK_For_Limited_Init_In_05): Allow initialization of class-wide
5078         limited interface object with a function call.
5079         (Array_Type_Declaration): If the declaration lacks subtype marks for
5080         indices, create a simple index list to prevent cascaded errors.
5081         (Is_Null_Extension): Ignore internal components created for secondary
5082         tags when checking whether a record extension is a null extension.
5083         (Check_Abstract_Interfaces): Add missing support for interface subtypes
5084         and generic formals.
5085         (Derived_Type_Declaration): Add missing support for interface subtypes
5086         and generic formals.
5087         (Analyze_Object_Declaration): If an initialization expression is
5088         present, traverse its subtree and mark all allocators as static
5089         coextensions.
5090         (Add_Interface_Tag_Component): When looking for components that may be
5091         secondary tags, ignore pragmas that can appear within a record
5092         declaration.
5093         (Check_Abstract_Overriding): an inherited function that dispatches on
5094         result does not need to be overriden if the controlling type is a null
5095         extension.
5096         (Mentions_T): Handle properly a 'class attribute in an anonymous access
5097         component declaration, when the prefix is an expanded name.
5098         (Inherit_Component): If the derivation is for a private extension,
5099         inherited components remain visible and their ekind should not be set
5100         to Void.
5101         (Find_Type_Of_Object): In the case of an access definition, always set
5102         Is_Local_Anonymous_Access. We were previously not marking the anonymous
5103         access type of a return object as a local anonymous type.
5104         (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
5105         range with character literal bounds.
5106         (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
5107         (Access_Subprogram_Declaration): Indicate that the type declaration
5108         depends on an incomplete type only if the incomplete type is declared
5109         in an open scope.
5110         (Analyze_Subtype_Declaration): Handle properly subtypes of
5111         synchronized types that are tagged, and that may appear as generic
5112         actuals.
5113         (Access_Subprogram_Declaration): An anonymous access to subprogram can
5114         appear as an access discriminant in a private type declaration.
5115         (Add_Interface_Tag_Components): Complete decoration of the component
5116         containing the tag of a secondary dispatch table and the component
5117         containing the offset to the base of the object (this latter component
5118         is only generated when the parent type has discriminants --as documented
5119         in this routine).
5120         (Inherit_Components): Use the new decoration of the tag components to
5121         improve the condition that avoids inheriting the components associated
5122         with secondary tags of the parent.
5123         (Build_Discriminanted_Subtype): Indicate to the backend that the
5124         size of record types associated with dispatch tables is known at
5125         compile time.
5126         (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
5127         (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
5128         to include task, protected, and synchronized interfaces as limited
5129         interfaces.
5130         (Process_Discriminants): Remove the setting of
5131         Is_Local_Anonymous_Access on the type of (anonymous) access
5132         discriminants of nonlimited types.
5133         (Analyze_Interface_Type_Declaration): Complete the decoration of the
5134         class-wide entity it is is already present. This situation occurs if
5135         the limited-view has been previously built.
5136         (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
5137         field.
5138         (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
5139         Related_Interface.
5140
5141 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
5142
5143         * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
5144         of the type that specify the position of interface tags when the type
5145         inherits discriminated array components from the parent type.
5146         If a component is initialized with a box, check for the presence of a
5147         default expression in its declaration before using its default
5148         initialization procedure.
5149         (Resolve_Record_Aggregate): If a component is box-initialized, and the
5150         component type has a discriminants, create a partial aggregate for it
5151         by copying the discriminants of the component subtype.
5152         Reject attempt to initialize a discriminant with a box.
5153         (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
5154         associated with dispatch tables is known at compile time.
5155         (Get_Value): If an association in a record aggregate has a box
5156         association, and the corresponding record component has a default
5157         expression, always copy the default expression, even when the
5158         association has a single choice, in order to create a proper
5159         association for the expanded aggregate.
5160
5161 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
5162             Robert Dewar  <dewar@adacore.com>
5163
5164         * par-ch12.adb (P_Generic_Associations): The source position of an
5165         Others association is that of the others keyword, not that of the token
5166         that follows the box.
5167         (P_Formal_Type_Definition): Handle formal access types that carry a
5168         not null indicator.
5169
5170         * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
5171         multiple identifier are present, save Scan_State before scanning the
5172         colon, to ensure that separate trees are constructed for each
5173         declaration.
5174         (P_Identifier_Declarations): For object declaration, set new flag
5175         Has_Init_Expression if initialization expression present.
5176         (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
5177         Improve NOT NULL error messages
5178
5179 2007-06-06  Robert Dewar  <dewar@adacore.com>
5180
5181         * par-ch4.adb: (P_Name): Recover from literal used as name
5182
5183 2007-06-06  Vincent Celier  <celier@adacore.com>
5184
5185         * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
5186         defaulted to False.
5187         In the "not" case, recursive call with Complemented set to True.
5188         Do not allow "or" or "and" operators when Complemented is True.
5189
5190 2007-06-06  Vincent Celier  <celier@adacore.com>
5191
5192         * prj.adb (Project_Empty): Gives default value for new component
5193         Libgnarl_Needed
5194
5195         * prj-attr.ads: Minor reformatting
5196
5197         * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
5198         directory using the untouched casing.
5199         (For_All_Source_Dirs): Idem.
5200
5201         * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
5202         directories specified with switches -aP.
5203         (Add_Search_Project_Directory): New procedure
5204         (Initialize_Project_Path): Put the directories in table
5205         Search_Directories in the project search path.
5206         (Initialize_Project_Path): For VMS, transform into canonical form the
5207         project path.
5208
5209 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5210
5211         * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
5212         true if configurable run-time or No_Run_Time is set.
5213         (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
5214         processing an unit which is not the one being compiled.
5215
5216 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5217
5218         * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
5219         Replace UC by Ada.UC
5220
5221         * s-bitops.adb: Get rid of System.Pure_Exceptions.
5222         Replace UC by Ada.UC
5223
5224 2007-06-06  Robert Dewar  <dewar@adacore.com>
5225
5226         * scng.adb: (Check_End_Of_Line): Deal with very long lines
5227
5228 2007-06-06  Robert Dewar  <dewar@adacore.com>
5229
5230         * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
5231         Remove no longer used nodes.
5232
5233 2007-06-06  Javier Miranda  <miranda@adacore.com>
5234             Ed Schonberg  <schonberg@adacore.com>
5235             Robert Dewar  <dewar@adacore.com>
5236
5237         * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
5238         on obsolescent withed unit in case of limited-withed units.
5239         (Analyze_Compilation_Unit): Add guard to code that removed an
5240         instantiation from visibility, to prevent compiler aborts when
5241         instantiation is abandoned early on.
5242         (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
5243         current unit being analyzed, and Distinguish local incomplete types
5244         from limited views of types declared elsewhere.
5245         (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
5246         to state that the class-wide entity is shared by the limited-view
5247         and the full-view.
5248         (Analyze_With_Clause): Improve placement of flag for case of
5249         unimplemented unit.
5250         (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
5251         manner similar to GNAT.Current_Exception. This is a violation of
5252         restriction (No_Exception_Propagation), and also inhibits the
5253         optimization of local raise to goto.
5254         (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
5255         and if so set Most_Recent_Exception_Used flag in Opt, and also check
5256         for violation of restriction No_Exception_Propagation.
5257
5258 2007-06-06  Javier Miranda  <miranda@adacore.com>
5259             Hristian Kirtchev  <kirtchev@adacore.com>
5260             Gary Dismukes  <dismukes@adacore.com>
5261
5262         * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
5263         use of entity Exception_Occurrence if it is not available in the
5264         target run-time.
5265
5266         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
5267         concurrent types are declared within an Ada 2005 generic, build their
5268         corresponding record types since they are needed for overriding-related
5269         semantic checks.
5270         (Analyze_Protected_Type): Rearrange and simplify code for testing that a
5271         protected type does not implement a task interface or a nonlimited
5272         interface.
5273         (Analyze_Task_Type): Rearrange and simplify code for testing that a task
5274         type does not implement a protected interface or a nonlimited interface.
5275         (Single_Task_Declaration, Single_Protected_Declaration): use original
5276         entity for variable declaration, to ensure that debugging information
5277         is correcty generated.
5278         (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
5279         routines if the expander is not active.
5280         (Analyze_Task_Body): Mark all handlers to stop optimization of local
5281         raise, since special things happen for task exception handlers.
5282
5283         * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
5284         concurrent types declared within a generic.
5285         (Check_Dispatching_Operation): Do not emit warning about late interface
5286         operations in the context of an instance.
5287         (Check_Dispatching_Call): Remove restriction against calling a
5288         dispatching operation with a limited controlling result.
5289         (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
5290         Register_Interface_DT_Entry by calls to Register_Primitive.
5291         (Check_Dispatching_Formals): Handle properly a function with a
5292         controlling access result.
5293
5294 2007-06-06  Robert Dewar  <dewar@adacore.com>
5295             Arnaud Charlet  <charlet@adacore.com>
5296
5297         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
5298         Check for restriction No_Implementation_Attributes if in Ada 95 mode.
5299         (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
5300         (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
5301         message when using a VM, since this attribute is not supported.
5302         (Analyze_Record_Representation_Clause): Give unrepped component warnings
5303
5304         * usage.adb: Add new warning for renaming of function return objects
5305         Indicate that -gnatwp and -gnatwP concern front-end inlining
5306         Add line for -gnatyg
5307         Add usage information for -gnatw.c/C
5308
5309 2007-06-06  Robert Dewar  <dewar@adacore.com>
5310             Ed Schonberg  <schonberg@adacore.com>
5311
5312         * sem_ch5.adb
5313         (Find_Var): Do not consider function call in test for infinite loop
5314         warning if warnings set off for function entity.
5315         (One_Bound): Do not create a temporary for a loop bound if it is a
5316         character literal.
5317         (Analyze_Assignment): Traverse the right hand side of an assignment and
5318         mark all allocators as static coextensions.
5319         (Analyze_Assignment): Exempt assignments involving a dispatching call
5320         to a function with a controlling access result from the check requiring
5321         the target to be class-wide.
5322
5323 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5324             Ed Schonberg  <schonberg@adacore.com>
5325             Robert Dewar  <dewar@adacore.com>
5326             Javier Miranda  <miranda@adacore.com>
5327
5328         * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
5329         chain of coextensions when an allocator serves as the root of such a
5330         chain.
5331         (Propagate_Coextensions): Remove the test for the root being an
5332         allocator.
5333         (Resolve_Allocator): Add condition to ensure that all future decoration
5334         occurs on an allocator node. Add processing and cleanup for static
5335         coextensions.
5336         (Valid_Conversion): If the operand type is the limited view of a
5337         class-wide type, use the non-limited view is available to determine
5338         legality of operation.
5339         (Ambiguous_Character): move to spec, for use elsewhere.
5340         (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
5341         (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
5342         character literals.
5343         (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
5344         Do_Division_Check flag explicitly.
5345         (Resolve_Actuals): If the actual is of a synchronized type, and the
5346         formal is of the corresponding record type, this is a call to a
5347         primitive operation of the type, that is declared outside of the type;
5348         the actual must be unchecked-converted to the type of the actual
5349         (Resolve_Call): Kill all current values for any subprogram call if
5350         flag Suppress_Value_Tracking_On_Call is set.
5351         (Resolve_Type_Conversion): Generate error message the the operand
5352         or target of interface conversions come from a limited view.
5353         (Check_Infinite_Recursion): Ignore generated calls
5354         (Check_Allocator_Discrim_Accessibility): New procedure for checking
5355         that an expression that constrains an access discriminant in an
5356         allocator does not denote an object with a deeper level than the
5357         allocator's access type.
5358         (Resolve_Allocator): In the case of an allocator initialized by an
5359         aggregate of a discriminated type, check that associations for any
5360         access discriminants satisfy accessibility requirements by calling
5361         Check_Allocator_Discrim_Accessibility.
5362         (Resolve_Equality_Op): Handle comparisons of anonymous access to
5363         subprogram types in the same fashion as other anonymous access types.
5364         (Resolve_Concatenation_Arg): Remove initial character '\' in an error
5365         message that is not a continuation message.
5366         (Resolve_Type_Conversion): Add missing support for conversion to
5367         interface type.
5368         (Resolve_Actuals): Introduce a transient scope around the call if an
5369         actual is a call to a function returning a limited type, because the
5370         resulting value must be finalized after the call.
5371         (Resolve_Actuals): If the call was given in prefix notations, check
5372         whether an implicit 'Access reference or implicit dereference must be
5373         added to make the actual conform to the controlling formal.
5374
5375 2007-06-06  Robert Dewar  <dewar@adacore.com>
5376             Javier Miranda  <miranda@adacore.com>
5377
5378         * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
5379         (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
5380         overriding of an inherited private subprogram now there is no need to
5381         inherit its dispatching slot and reduce the size of the dispatch table.
5382         Set_All_DT_Position now ensures that the same slot is now assigned to
5383         both entities. This is required to statically build the dispatch table.
5384         (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
5385         of calling Set_All_DT_Position to re-evaluate the position of the
5386         entries in the dispatch table. Such reevaluation is not desired if
5387         the tagged type is already frozen.
5388
5389 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5390             Gary Dismukes  <dismukes@adacore.com>
5391             Robert Dewar  <dewar@adacore.com>
5392             Javier Miranda  <miranda@adacore.com>
5393
5394         * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
5395         reference acts as an lvalue when the attribute name modifies the prefix
5396         (Is_Coextension_Root): New routine.
5397         (Mark_Static_Coextensions): New routine.
5398         (Type_Access_Level): Revise code for checking the level of the
5399         anonymous access type of a return object.
5400         (Safe_To_Capture_Value): Not safe to capture if Address_Taken
5401         (Matches_Prefixed_View_Profile): Remove the no longer necessary
5402         retrieval of the corresponding controlling record type.
5403         (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
5404         concurrent types declared within a generic as well as class wide types.
5405         Emit a mode incompatibility error whenever a protected entry or routine
5406         override an interface routine whose first parameter is not of mode
5407         "out", "in out" or access to variable.
5408         (Overrides_Synchronized_Primitive): Rename to
5409         Find_Overridden_Synchronized_Primitive.
5410         (Collect_Interface_Components): New subprogram that collects all the
5411         components of a tagged record containing tags of secondary dispatch
5412         tables.
5413         (Add_Global_Declaration): New procedure
5414         (Abstract_Interface_List): Handle properly the case of a subtype of a
5415         private extension.
5416         (Type_Access_Level): In the case of a type whose parent scope is a
5417         return statement, call Type_Access_Level recursively on the enclosing
5418         function's result type to determine the level of the return object's
5419         type.
5420         (Build_Elaboration_Entity): Build name of elaboration entity from the
5421         scope chain of the entity, rather than the unit name of the file name.
5422         (Check_Nested_Access): New procedure.
5423         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
5424         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
5425         (Get_Renamed_Entity): Utility routine for performing common operation
5426         of chasing the Renamed_Entity field of an entity.
5427
5428 2007-06-06  Robert Dewar  <dewar@adacore.com>
5429
5430         * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
5431         elaboration model
5432         (Check_A_Call): Add check for entry call which was causing blowup
5433
5434 2007-06-06  Olivier Hainque  <hainque@adacore.com>
5435
5436         * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
5437         special code on ia64-vms to handle major incompatibilities between the
5438         GCC unwinding ABI and the VMS Condition Handling Facility, both calling
5439         this routine with a very different set of arguments and expectations on
5440         the return value.
5441
5442 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5443
5444         * socket.c (__gnat_close_signalling_fd): New function.
5445         (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
5446         __gnat_safe_getservbyname, __gnat_safe_getservbyport):
5447         New supporting functions for task safe Netdb operations.
5448
5449 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5450             Olivier Hainque  <hainque@adacore.com>
5451
5452         * a-except-2005.ads, a-except-2005.adb
5453         (Raise_From_Controlled_Operation): New procedure in
5454         (private part of) Ada.Exceptions (standard runtime version). Used to
5455         provide informational exception message when Program_Error is raised as
5456         a result of an Adjust or Finalize operation propagating an exception.
5457         (Rmsg_28): Fix description for E.4(18) check.
5458         (Raise_Current_Excep): Call Debug_Raise_Exception just before
5459         propagation starts, to let debuggers know about the event in a reliable
5460         fashion.
5461         Take the address of E and dereference to make sure it is homed on stack
5462         and prevent the stores from being deleted, necessary for proper
5463         debugger behavior on "break exception" hits.
5464         (Local_Raise): Moved to System.Exceptions
5465
5466         * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
5467         exception message from the current occurrence and raise Program_Error
5468         has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
5469
5470 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
5471             Arnaud Charlet  <charlet@adacore.com>
5472
5473         * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
5474         lock, if needed.
5475
5476         * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
5477         priority associated to a lock.
5478
5479         * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
5480         assertion to take into account case of no abort restriction.
5481         (Initialize_Protection_Entries): Add initialization for the field
5482         New_Ceiling associated to the protected object.
5483         (Unlock_Entries): Change the ceiling priority of the underlying lock, if
5484         needed.
5485
5486         * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
5487         since this function needs to be set consistently with Update_Exception.
5488
5489         * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
5490         since this function needs to be set consistently with Update_Exception.
5491
5492         * s-taskin.ads: Update comments on
5493         Interrupt_Server_Blocked_On_Event_Flag.
5494         (Unbind_Handler): Fix handling of server_task wakeup
5495         (Server_Task): Set self's state so that Unbind_Handler can take
5496         appropriate actions.
5497         (Common_ATCB): Now use a constant from System.Parameters to determine
5498         the max size of the Task_Image field.
5499
5500         * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
5501         Initialize_Analyzer function.
5502         ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
5503         take into account case of no abort restriction.
5504         ([Vulnerable_]Complete_Master): Modify assertion.
5505
5506         * s-tataat.adb (Finalize): Use the nestable versions of
5507         Defer/Undefer_Abort.
5508
5509         * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
5510
5511         * s-tpobop.ads: Update comments.
5512
5513         * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
5514         of locking the object manually, to avoid inconsistencies between
5515         Lock/Unlock_Entry assertions.
5516
5517         * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
5518         terminating
5519         application and System.Parameters.No_Abort is True.
5520         Update comments on Interrupt_Server_Blocked_On_Event_Flag.
5521         (Unbind_Handler): Fix handling of server_task wakeup
5522         (Server_Task): Set self's state so that Unbind_Handler can take
5523         appropriate actions.
5524
5525 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5526
5527         * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
5528         declarations instead of an explicit null body, for conciseness.
5529
5530 2007-06-06  Robert Dewar  <dewar@adacore.com>
5531
5532         * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
5533         illegal aggregate and the type is still Any_Composite.
5534         (Subtypes_Statically_Match): Fix problem of empty discriminant list
5535
5536 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
5537
5538         * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
5539         to prevent subsequent expansion.
5540
5541 2007-06-06  Robert Dewar  <dewar@adacore.com>
5542
5543         * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
5544
5545 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
5546             Robert Dewar  <dewar@adacore.com>
5547
5548         * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
5549         exceptions.
5550         (Write_Itype): Handle case of string literal subtype, which
5551         comes up in this context.
5552         (Update_Itype): when debugging expanded code, update sloc of itypes
5553         associated with defining_identifiers and ranges, for gdb use.
5554         (Sprint_Node_Actual): Add static keyword to object or exception
5555         declaration output if Is_Statically_Allocated is True.
5556         (Sprint_End_Label): Set entity of end marker for a subprogram, package,
5557         or task body, so that the tree carries the proper Sloc information for
5558         debugging use.
5559         (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
5560
5561 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5562
5563         * s-secsta.adb (Chunk): Ensure this object has a static size known at
5564         compile time, to avoid dynamic memory allocation
5565         (Elaboration code): Only use dynamic memory allocation when needed.
5566
5567 2007-06-06  Quentin Ochem  <ochem@adacore.com>
5568
5569         * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
5570         "Overflow_Guard".
5571         (Stack_Analyzer): Added field "Overflow_Guard"
5572         (Task_Result): Added field "Overflow_Guard".
5573         (Index_Str): New constant.
5574         (Task_Name_Str): New constant.
5575         (Actual_Size_Str): New constant.
5576         (Pattern_Array_Element_Size): New constant.
5577         (Get_Usage_Range): New subprogram.
5578         (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
5579         Now align the output.
5580         Added comments.
5581         (Initialize): Added value for Overflow_Guard.
5582         (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
5583         Update the value of the overflow guard according to the actual
5584         beginning of the pattern array.
5585         (Initialize_Analyzer): Added parameter Overflow_Guard.
5586         Take this parameter into accound when computing the max size.
5587         (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
5588         (Report_Result): Removed extra useless procedure.
5589         Updated call to Output_Result.
5590         Moved full computation of the Task_Result here.
5591
5592 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5593
5594         * g-soccon-darwin.ads, gen-soccon.c: Add new constant
5595         Thread_Blocking_IO, always True by default, set False on a per-runtime
5596         basis.
5597         Add Windows-specific constants
5598         Add new constant Need_Netdb_Buffer.
5599         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
5600         not, whether to use getXXXbyYYY_r.
5601
5602         * gsocket.h: Add new constant Need_Netdb_Buffer.
5603         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
5604         not, whether to use getXXXbyYYY_r.
5605
5606 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
5607
5608         * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
5609         than their first call.
5610         Add type Dummy_Communication_Block used in the generation of the pre-
5611         defined dispatching primitive _disp_asynchronous_select.
5612         (Storage_Element): Put Pragma Universal_Aliasing on it.
5613
5614 2007-06-06  Vincent Celier  <celier@adacore.com>
5615
5616         * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
5617         function.
5618
5619         * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
5620         letter if it is not followed by a '/' or a '\'.
5621         (Windows): New Boolean function
5622
5623         * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
5624         Ada 2005.
5625         (Containing_Directory): On Windows, keep at least one '/' or '\' after a
5626         drive letter.
5627         (Containing_Directory): Raise Use_Error when the directory is a root
5628         directory.
5629         (Extension): When returning the result, use a conversion to Result_Type,
5630         not a qualification.
5631
5632 2007-06-06  Robert Dewar  <dewar@adacore.com>
5633
5634         * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
5635         (Set_Style_Check_Options): Recognize new -gnatyg style switch
5636
5637         * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
5638         Warn_On_Non_Local_Exception to False, to turn off warnings for
5639         No_Exception_Propagation in ZFP runtime.
5640         (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
5641         back-ends.
5642         (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
5643
5644 2007-06-06  Vincent Celier  <celier@adacore.com>
5645
5646         * switch-b.adb (Scan_Binder_Switches): Add processing for new
5647         switches -R and -Z
5648
5649         * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
5650         (Scan_Make_Switches): Recognize new switch -aP
5651
5652 2007-06-06  Matthew Gingell  <gingell@adacore.com>
5653             Jose Ruiz  <ruiz@adacore.com>
5654
5655         * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
5656         VxWorks task descriptor in the Ada run time, call a C subprogram
5657         (__gnat_get_stack_info) that extracts the required information.
5658
5659         * sysdep.c: Back out temporary lynxos workaround.
5660         (__gnat_get_stack_info): Add this procedure that passes to the Ada run
5661         time the stack information associated to the currently executing task.
5662         Only VxWorks systems require this function.
5663
5664 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
5665
5666         * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
5667         add the stack bias if the offset is computed from a frame address.
5668         (__gnat_backtrace): Adjust for above change.
5669
5670 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5671
5672         * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
5673         PE_Non_Transportable_Actual.
5674         (By_Descriptor_Last): New constant.
5675         (By_Copy_Return): Likewise.
5676
5677 2007-06-06  Vincent Celier  <celier@adacore.com>
5678
5679         * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
5680         is.
5681
5682         * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
5683         /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
5684         /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
5685         Add missing comment for /OPTIMIZE=SPACE
5686         Add entry for OPTIMIZE=SPACE
5687         Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
5688         Add documentation for new qualifiers corresponding to -gnatw.c/.C
5689
5690 2007-06-06  Vincent Celier  <celier@adacore.com>
5691             Robert Dewar  <dewar@adacore.com>
5692
5693         * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
5694         -gnatw.C)
5695
5696         * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
5697         Document gnatbind switch -a
5698         (case Constructions): Document that variables declarations are allowed
5699         for previously declared variables.
5700         Fix external lib project example
5701         -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
5702         Indicate that "#if not X or Y then" is not allowed in input files to
5703         gnatprep.
5704         Document gnatw.x and gnatw.X warning flags
5705         Mention -Winline switch to activate warnings when back-end inlining is
5706         ineffective.
5707         Add gnatcheck rule descriptions
5708         Describe how to use the GNAT driver to call a tool on a closure.
5709         Describe how to run project-wide checks or metrics.
5710         Document gnatbind's -R option
5711         Updated to account for Ada 2005 support
5712
5713         * gnat_rm.texi (Case Construction): Allow variable declarations for
5714         previously declared variables.
5715         (Representation Clauses and Pragmas): Lift restriction on alignment
5716         clauses for record types.
5717         (Ada.Characters.*): Fix typo in reference to A.3.3(27).
5718         Document No_Exception_Propagation restriction
5719         Document No_Body pragma
5720         Updated to account for Ada 2005 support; corrected some typos
5721         (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
5722
5723         * gnat-style.texi: Make it clear that we never use mode IN for
5724         procedures or functions
5725
5726         * ug_words: Add entries for -gnatw.x and -gnatw.X
5727         Add entries for -gnatw.c/.C
5728
5729 2007-06-06  Pascal Obry  <obry@adacore.com>
5730             Vincent Celier  <celier@adacore.com>
5731
5732         * makegpr.adb (Add_Archive_Path): Use untouched object and library
5733         dirs and library name.
5734         (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
5735         comments.
5736         (Build_Library): Idem.
5737         (Compile_Individual_Sources): Idem.
5738         (Compile_Link_With_Gnatmake): Idem.
5739         (Compile_Sources): Idem.
5740         (Get_Imported_Directories): Idem.
5741         (Link_Executables): Idem. Same change for the executable dir.
5742         (Check_Compilation_Needed): C_Source_Path new variable containing
5743         the canonical form of Source_Path to check against the source names
5744         in the dependency file.
5745         (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
5746         verbose mode, display the name of the object directory we're changing
5747         to.
5748         (Saved_Switches): New name of table X_Switches
5749         (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
5750         (Usage): New line for switch -aP
5751         (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
5752         testing if a directory should be added to the search path.
5753
5754 2007-06-06  Javier Miranda  <miranda@adacore.com>
5755
5756         * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads, 
5757         a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
5758         declaration after freezing point of all its associated tagged types;
5759         otherwise such types are frozen too early.
5760
5761 2007-06-06  Robert Dewar  <dewar@adacore.com>
5762
5763         * a-reatim.adb: Documentation addition
5764
5765         * g-cgideb.adb: Minor code reorganization
5766
5767         * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
5768         mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
5769         s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
5770
5771         * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
5772         function.  Change name New_Scope to Push_Scope
5773         (Get_Debug_Flag_K): Remove unused obsolete function.
5774
5775         * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
5776         Push_Scope.
5777
5778         * makeusg.adb: Update Copyright notice
5779         Add line for switch -aP
5780
5781         * makeusg.adb: Fix wording of some usage messages
5782
5783         * s-assert.adb (Raise_Assert_Failure): Add call to
5784         Debug_Raise_Assert_Failure.
5785
5786         * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
5787         (2, Standard'Alignment) for compatibility with AAMP (where alignment
5788         is restricted to 1).
5789
5790         * s-wchjis.adb: Remove use of System.Pure_Exceptions
5791
5792         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
5793         node location to No_Location when we're not debugging the expanded
5794         code.
5795
5796 2007-05-22  Alexandre Oliva  <aoliva@redhat.com>
5797
5798         * misc.c (enumerate_modes): Consider log2_b to always be one.
5799
5800 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
5801
5802         * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
5803
5804 2007-05-02  Pascal Obry  <obry@adacore.com>
5805
5806         * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
5807         to use Stream_IO.File_Type. This is needed to make use of the UTF-8
5808         encoding support of Stream_IO.
5809         (Write_Unit): Idem.
5810
5811         * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
5812         filename and corresponding encoding to match the OS requirement.
5813         (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
5814         routine will fail on specific devices like CON: AUX: ...
5815
5816         PR ada/29856: Add missing braces
5817
5818 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5819
5820         PR ada/31660
5821         * ada-tree.h (lang_tree_node): Fix typo in chain_next.
5822
5823 2007-04-21  Jan Hubicka  <jh@suse.cz>
5824
5825         * misc.c (gnat_expand_body): Don't call target for destructors,
5826         avoid redundant check on syntax errors.
5827
5828 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5829
5830         * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
5831         instead of checking GIMPLE_STMT_P in chain_next.
5832
5833 2007-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
5834
5835         PR ada/31576
5836         * system-linux-alpha.ads: Disable constant condition warning for the
5837         Default_Bit_Order variable.
5838         * system-linux-s390.ads: Likewise.
5839         * system-linux-s390x.ads: Likewise.
5840         * system-linux-sparc.ads: Likewise.
5841
5842 2007-04-06  Javier Miranda  <miranda@adacore.com>
5843             Matt Heaney  <heaney@adacore.com>
5844             Robert Dewar  <dewar@adacore.com>
5845
5846         a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
5847         a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
5848         a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
5849         a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
5850         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
5851         a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
5852         a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
5853         a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
5854         a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
5855         a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
5856         a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
5857         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
5858         a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
5859         a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
5860         a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
5861         a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
5862         a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
5863         i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
5864         unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
5865         a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
5866         a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
5867         a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
5868         expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
5869         s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
5870         s-taprop-tru64.adb, s-taprop-irix.adb,
5871         s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
5872         s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
5873         s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
5874         s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb, 
5875         s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads, 
5876         a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb, 
5877         a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads, 
5878         g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads, 
5879         s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb, 
5880         s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads, 
5881         s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb, 
5882         s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, 
5883         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb, 
5884         s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb, 
5885         a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads, 
5886         a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads, 
5887         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb, 
5888         a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
5889         a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads, 
5890         a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
5891         access types.
5892         Update documentation.
5893         Minor rewording.
5894
5895 2007-04-06  Robert Dewar  <dewar@adacore.com>
5896
5897         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
5898         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
5899         system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
5900         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
5901         system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
5902         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
5903         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
5904         system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
5905         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
5906         system-hpux-ia64.ads, targparm.adb,
5907         targparm.ads (Functions_Return_By_DSP_On_Target): Removed
5908
5909         * system.ads: Move Functions_Return_By_DSP to obsolete section,
5910         kept for bootstrap purposes only.
5911
5912 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
5913
5914         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
5915         s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
5916         s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
5917         (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
5918
5919 2007-04-06  Robert Dewar  <dewar@adacore.com>
5920
5921         * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
5922         (Local_Raise): New dummy procedure called when a raise is converted
5923         to a local goto. Used for debugger to detect that the exception
5924         is raised.
5925
5926         * debug.adb: Document new d.g flag (expand local raise statements to
5927         gotos even if pragma Restriction (No_Exception_Propagation) is not set)
5928
5929         * exp_sel.adb: Use Make_Implicit_Exception_Handler
5930
5931         * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
5932         suppress warnings for unused handlers.
5933         (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
5934         warnings for raise statements not handled locally.
5935         (Get_RT_Exception_Entity): New function
5936         (Get_Local_Call_Entity): New function
5937         (Find_Local_Handler): New function
5938         (Warn_If_No_Propagation): New procedure
5939         (Expand_At_End_Handler): Call Make_Implicit_Handler
5940         (Expand_Exception_Handlers): Major additions to deal with local handlers
5941         (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
5942         Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
5943         for local raise
5944
5945         * exp_ch11.ads (Get_RT_Exception_Entity): New function
5946         (Get_Local_Call_Entity): New function
5947
5948         * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
5949         of restrictions that the binder will never suggest adding.
5950
5951         * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
5952         to No_Elist.
5953
5954         * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
5955         be with'ed in the presence of pragma Restriction
5956         (No_Exception_Propagation).
5957
5958         * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
5959
5960         * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
5961         parameter, then the handler is not a suitable target for a local raise,
5962         and this is a violation of restriction No_Exception_Propagation.
5963         (Analyze_Handled_Statements): Analyze choice parameters in exception
5964         handlers before analyzing statement sequence (needed for proper
5965         detection of local raise statements).
5966         (Analyze_Raise_Statement): Reraise statement is a violation of the
5967         No_Exception_Propagation restriction.
5968
5969         * s-rident.ads: Add new restriction No_Exception_Propagation
5970
5971         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
5972         function, like Make_Exception_Handler but sets Local_Raise_Statements
5973         to No_List.
5974         (Add_Unique_Serial_Number): Deal with case where this is called during
5975         processing of configuration pragmas.
5976
5977 2007-04-06  Thomas Quinot  <quinot@adacore.com>
5978             Pat Rogers  <rogers@adacore.com>
5979             Pascal Obry  <obry@adacore.com>
5980
5981         * g-stsifd-sockets.adb: New file.
5982
5983         * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
5984         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
5985         g-socthi-vms.adb: Move signalling
5986         fd management to a nested package, so that they can conveniently be
5987         moved to a subunit that is shared across Windows, VMS, and VxWorks
5988         (Ada implementation) or completed with imported bodies from socket.c
5989         (UNIX case).
5990         (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
5991         subprograms.
5992         (Check_Selector): Use Read_Signalling_Fd to read and discard data from
5993         the signalling file descriptor.
5994         (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
5995         signalling file descriptor.
5996         (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
5997         instead of creating a pair of sockets for signalling here.
5998
5999         * g-socthi.adb: Ditto.
6000         Set the runtime process to ignore SIGPIPEs on platforms that support
6001         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
6002
6003         * g-socthi-mingw.adb: Ditto.
6004         (WS_Version): Use Windows 2.2.
6005         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
6006
6007         * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
6008         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
6009
6010         * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
6011         added GNAT byte swapping facility
6012         Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
6013
6014         * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
6015
6016         * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
6017         New subprograms.
6018         (__gnat_create_signalling_fds): New subprogram.
6019         Set the runtime process to ignore SIGPIPEs on platforms that support
6020         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
6021
6022 2007-04-06  Hristian Kirtchev  <kirtchev@adacore.com>
6023             Vincent Celier  <celier@adacore.com>
6024
6025         * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
6026         New version of Ada.Calendar which supports the new upper bound of Ada
6027         time (2399-12-31 86_399.999999999).
6028         The following modifications have been made to the package:
6029          - New representation of time as count of nanoseconds since the start of
6030            Ada time (1901-1-1 0.0).
6031          - Target independent Split and Time_Of routines which service both
6032            Ada 95 and Ada 2005 code.
6033          - Target independent interface to the Ada 2005 children of Calendar.
6034          - Integrated leap seconds into Ada 95 and Ada 2005 mode.
6035          - Handling of non-leap centenial years.
6036          - Updated clock function.
6037          - Updated arithmetic and comparison operators.
6038
6039         * a-caldel.adb (To_Duration): Add call to target independent routine in
6040         Ada.Calendar to handle the conversion of time to duration.
6041
6042         * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
6043         (UTC Offset).
6044         If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
6045         set off to 0.
6046         (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
6047         targets do not have a natural time zone, GMT is used as a default.
6048         (__gnat_get_task_options): New.
6049
6050         * a-direct.adb (Modification_Time): Add with and use clauses for
6051         Ada.Calendar and Ada.
6052         Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
6053         since it is no longer needed.
6054         (Duration_To_Time): Removed.
6055         (OS_Time_To_Long_Integer): Removed.
6056         (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
6057         Formatting Time_Of routines which automatically handle time zones,
6058         buffer periods and leap seconds.
6059
6060         * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
6061         target independent routines in Ada.Calendar.
6062
6063         * a-calfor.ads, a-calfor.adb: 
6064         Code cleanup and addition of validity checks in various routines.
6065         (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
6066         Ada.Calendar.
6067
6068         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
6069         independent routine in Ada.Calendar.
6070
6071 2007-04-06  Olivier Hainque  <hainque@adacore.com>
6072
6073         * adaint.c: 
6074         (convert_addresses): Adjust prototype and dummy definition to expect an
6075          extra file_name argument.
6076
6077         * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
6078         filling the now expected file_name argument with the appropriate
6079         argv[0] expansion.
6080         (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
6081         (tracebk): Array of void * instead of char *, corresponding to what
6082          convert_addresses expects.
6083         (exename): New static global, to hold the executable file name to be
6084         used in all convert_addresses invocations.
6085         (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
6086         change.
6087         (__gnat_gmem_a2l_initialize): Resolve exename.
6088         (__gnat_convert_addresses): Use exename as the convert_addresses
6089         file_name argument.
6090
6091         * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
6092         "convert_addresses", now expecting a filename argument. Import the
6093         necessary entities to compute the filename to use and pass it to
6094         convert_addresses.
6095
6096 2007-04-06  Matt Gingell  <gingell@adacore.com>
6097
6098         * system-aix.ads: Back out previous change.
6099         (Functions_Return_By_DSP): Removed
6100
6101 2007-04-06  Pascal Obry  <obry@adacore.com>
6102
6103         * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
6104         or the monotonic used by Ada.Real_Time) to compute the sleep duration
6105         on Windows.
6106
6107 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
6108
6109         * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
6110         function. Its value changes in different VxWorks versions, and it is
6111         now handled by the function __gnat_get_task_options.
6112
6113         * s-taprop-vxworks.adb (Create_Task): Call the function
6114         __gnat_get_task_options to get the required options for creating a task.
6115
6116 2007-04-06  Pascal Obry  <obry@adacore.com>
6117             Thomas Quinot  <quinot@adacore.com>
6118
6119         * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
6120         dealing with filename.
6121         (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
6122         filename from a standard string to a wide-string depending on the
6123         encoding value.
6124         (__gnat_freopen): Idem.
6125         (__gnat_current_time): New function (wrapper for time(3) standard C
6126         function).
6127
6128         * g-os_lib.ads (Current_Time): New function. Returns the current
6129         system time as an OS_Time value.
6130
6131         * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
6132         (Monotonic_Clock): Same.
6133
6134 2007-04-06  Quentin Ochem  <ochem@adacore.com>
6135
6136         * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
6137         not on a natural.
6138         (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
6139
6140 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
6141
6142         * a-retide.adb: Add elaboration code to ensure that the tasking run
6143         time is initialized when using delay operations even when no task is
6144         created.
6145
6146 2007-04-06  Javier Miranda  <miranda@adacore.com>
6147
6148         * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
6149         component Num_Prim_Ops.
6150         (Set_Num_Prim_Ops): Removed.
6151         Remove all the assertions because all the routines of this
6152         package are inline always.
6153         (Get_Offset_Index): Add support to primary dispatch tables.
6154         Move the documentation about the dispatch table to a-tags.ads
6155         (Set_External_Tag): Removed
6156         (Inherit_TSD): Removed.
6157         (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
6158         moved to a-tags.ads
6159         (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
6160         Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
6161         of the TSD field "Table" because this field has been renamed to
6162         "Ifaces_Table".
6163         (Inherit_CPP_DT): Removed.
6164         (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
6165         Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
6166         declarations have been moved to a-tags.ads
6167         (Check_Size): Removed.
6168         (Expanded_Name): Updated to get access to the new field of TSD
6169         containing the address of the expanded name.
6170         (Get_Access_Level/Set_Access_Level): Removed.
6171         (Get_Predefined_Prim_Op_Address): Removed.
6172         (Set_Predefined_Prim_Op_Address): Removed.
6173         (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
6174         (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
6175         (Set_Expanded_Name): Removed.
6176         (Inherit_DT): Removed.
6177         (Inherit_CPP_DT): Removed.
6178         (Set_RC_Offset): Removed.
6179         (Set_TSD): Removed.
6180         (Base_Address): New function that displaces "this" to point to the base
6181         of the object (that is, to point to the primary tag of the object).
6182
6183 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6184             Javier Miranda  <miranda@adacore.com>
6185
6186         * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
6187         anonymous access component, do not create a master_id if type already
6188         has one, as may happen if the type is a subcomponent of a packed array
6189         type.
6190         (Build_Init_Procedure, Component_Needs_Simple_Initialization,
6191         Initialize_Tag): Remove code associated with the old CPP pragmas.
6192         CPP_Virtual and CPP_Vtable are no longer supported.
6193         (Build_Offset_To_Top_Internal): Add support for concurrent record types
6194         (Build_Offset_To_Top_Functions): Add support for concurrent record types
6195         (Freeze_Record_Type): Remove call to
6196         Init_Predefined_Interface_Primitives.
6197         (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
6198         code required to initialize the tags of the secondary dispatch tables.
6199         This leaves the algoritm more clear.
6200         (Init_Secondary_Tags): Add support for concurrent record types
6201         (Make_Predefined_Primitive_Specs): Code cleanup.
6202         (Predefined_Primitive_Bodies): Code cleanup.
6203         (Build_Master_Renaming): New local subprogram.
6204         (Expand_N_Full_Type_Declaration): Build the master_id associated with
6205         anonymous access to task type components.
6206         (Expand_N_Subtype_Indication): The bounds of a range constraint in a
6207         subtype indication are resolved during analysis, and must not be done
6208         here.
6209         (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
6210
6211 2007-04-06  Geert Bosch  <bosch@adacore.com>
6212             Ed Schonberg  <schonberg@adacore.com>
6213             Javier Miranda  <miranda@adacore.com>
6214             Bob Duff  <duff@adacore.com>
6215
6216         * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
6217         for conversion of a Float_Type'Truncation to integer.
6218
6219         * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
6220         check if a node is an attribute that can be handled directly by the
6221         back end.
6222         (Expand_N_Attribute_Reference): Suppress expansion of floating-point
6223         attributes that can be handled directly by the back end.
6224         (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
6225         use new predicate Is_Access_Protected_Subprogram_Type.
6226         (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
6227         and Unchecked_Union if it is generated as part of the default  Output
6228         procedure for a type with default discriminants.
6229         (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
6230         if we are compiling under restriction No_Dispatching_Calls.
6231         (Constrained): Use Underlying_Type, in case the type is private without
6232         discriminants, but the full type has discriminants.
6233         (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
6234         call to Build_Get_Access_Level.
6235         (Expand_N_Attribute_Reference): The use of 'Address with class-wide
6236         interface objects requires a call to the run-time subprogram that
6237         returns the base address of the object.
6238         (Valid_Conversion): Improve error message on illegal attempt to store
6239         an anonymous access to subprogram value into a record component.
6240
6241         * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
6242         null".
6243         (Simplify_Type_Conversion): New procedure that performs simplification
6244         of Int_Type (Float_Type'Truncation (X)).
6245         (Resolve_Type_Conversion): Call above procedure after resolving operand
6246         and before performing checks. This replaces the existing ineffective
6247         code in Exp_Ch4.
6248         (Set_String_Literal_Subtype): When creating the internal static lower
6249         bound subtype for a string literal, use a newly created copy of the
6250         subtree representing the lower bound.
6251         (Resolve_Call): Exclude build-in-place function calls from transient
6252         scope treatment. Update comments to describe this exception.
6253         (Resolve_Equality_Op): In case of dispatching call check violation of
6254         restriction No_Dispatching_Calls.
6255         (Resolve_Call): If the call returns an array, the context imposes the
6256         component type of the array, and the function has one non-defaulted
6257         parameter, rewrite the call as the indexing of a call with a single
6258         parameter, to handle an Ada 2005 syntactic ambiguity for calls written
6259         in prefix form.
6260         (Resolve_Actuals): If an actual is an allocator for an access parameter,
6261         the master of the created object is the innermost enclosing statement.
6262         (Remove_Conversions): For a binary operator, check if type of second
6263         formal is numeric, to check if an abstract interpretation is present
6264         in the case of exponentiation as well.
6265
6266 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6267             Bob Duff  <duff@adacore.com>
6268
6269         * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
6270         copying a parameter list in a call, set properly the First_Named_Formal
6271         and Next_Named_Formal fields in the new list and in the enclosing call.
6272         (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
6273         names, to ease typing in the debugger. Improve comments.
6274         (Watch_Node): New variable, intended to be set in the debugger.
6275         (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
6276         called when the watched node is created.
6277         (New_Node_Debugging_Output): Combined version of local procedures
6278         New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
6279         with a parameter so that conditional breakpoints like "if Node = 12345"
6280         work.
6281         (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
6282         Add Elist1 function
6283
6284 2007-04-06  Thomas Quinot  <quinot@adacore.com>
6285             Ed Schonberg  <schonberg@adacore.com>
6286             Gary Dismukes  <dismukes@adacore.com>
6287
6288         * checks.ads, checks.adb (Selected_Range_Checks): No range check is
6289         required for a conversion between two access-to-unconstrained-array
6290         types.
6291         (Expr_Known_Valid): Validity checks do not apply to discriminants, but
6292         to discriminant constraints on discriminant objects. This rule must
6293         apply as well to discriminants of protected types in private components.
6294         (Null_Exclusion_Static_Checks): If No_Initialization is set on an
6295         object of a null-excluding access type then don't require the
6296         the object declaration to have an expression and don't emit a
6297         run-time check.
6298
6299 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
6300             Eric Botcazou <botcazou@adacore.com>
6301
6302         * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
6303         and made constant.
6304
6305         * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
6306         Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
6307         carry any.
6308
6309         * fe.h (Compiler_Abort): Add third parameter.
6310
6311         * misc.c (internal_error_function): Build third argument from current
6312         input location and pass it to Compiler_Abort.
6313
6314 2007-04-06  Gary Dismukes  <dismukes@adacore.com>
6315
6316         * cstand.adb (Create_Standard): When the target's storage unit size is
6317         greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
6318         Standard_String.
6319
6320 2007-04-06  Nicolas Roche  <roche@adacore.com>
6321
6322         * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
6323         absolute path can have the following form: device:/a/b. In this case
6324         '/' should be inserted between the path and the filename.
6325
6326 2007-04-06  Olivier Hainque  <hainque@adacore.com>
6327             Eric Botcazou <botcazou@adacore.com>
6328
6329         * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
6330         VAR_DECL to a CONST_DECL we make for a public constant when we know the
6331         corresponding definition has created the so made visible variable.
6332         Handle anonymous access to protected subprogram.
6333         (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
6334         object with an address clause volatile.  Re-enable original fix.
6335         <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
6336         too.
6337         (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
6338         associated with either the Equivalent or Root type, instead of the
6339         naked type node.
6340         (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
6341         subtree for every field of a global record type.
6342         (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
6343         discriminants, invoke again variable_size on its newly computed sizes.
6344
6345 2007-04-06  Robert Dewar  <dewar@adacore.com>
6346             Thomas Quinot  <quinot@adacore.com>
6347             Ed Schonberg  <schonberg@adacore.com>
6348             Bob Duff  <duff@adacore.com>
6349
6350         * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
6351         (Next_Component_Or_Discriminant): New function and procedure
6352         (First_Index, First_Literal, Master_Id,
6353         Set_First_Index, Set_First_Literal, Set_Master_Id):
6354         Add missing Ekind assertions.
6355         (Is_Access_Protected_Subprogram_Type): New predicate.
6356         (Has_RACW): New entity flag, set on package entities to indicate that
6357         the package contains the declaration of a remote accecss-to-classwide
6358         type.
6359         (E_Return_Statement): This node type has the Finalization_Chain_Entity
6360         attribute, in case the result type has controlled parts.
6361         (Requires_Overriding): Add this new flag, because "requires
6362         overriding" is subtly different from "is abstract" (see AI-228).
6363         (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
6364         Is_Abstract_Type. Make sure these are called only when appropriate.
6365         (Has_Pragma_Unreferenced_Objects): New flag
6366
6367         * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
6368         class-wide, the tag of the right-hand side must be an exact match, not
6369         an ancestor of that of the object on left-hand side.
6370         (Move_Activation_Chain): New procedure to create the call to
6371         System.Tasking.Stages.Move_Activation_Chain.
6372         (Expand_N_Extended_Return_Statement): Generate code to call
6373         System.Finalization_Implementation.Move_Final_List at the end of a
6374         return statement if the function's result type has controlled parts.
6375         Move asserts to Build_In_Place_Formal.
6376         (Move_Final_List): New function to create the call statement.
6377         (Expand_N_Assignment_Statement): In case of assignment to a class-wide
6378         tagged type, replace generation of call to the run-time subprogram
6379         CW_Membership by call to Build_CW_Membership.
6380         (Expand_N_Return_Statement): Replace generation of call to the run-time
6381         subprogram Get_Access_Level by call to Build_Get_Access_Level.
6382         (Expand_N_Simple_Function_Return): Replace generation of call to the
6383         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
6384
6385         * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
6386         Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
6387         access to protected operations.
6388         (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
6389         master and chain actual parameters to a build-in-place function call
6390         involving tasks.
6391         (BIP_Formal_Suffix): Add new enumeration literals to complete the case
6392         statement.
6393         (Make_Build_In_Place_Call_In_Allocator,
6394         Make_Build_In_Place_Call_In_Anonymous_Context,
6395         Make_Build_In_Place_Call_In_Assignment,
6396         Make_Build_In_Place_Call_In_Object_Declaration): Call
6397         Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
6398         (Expand_Inlined_Call): If the subprogram is a null procedure, or a
6399         stubbed procedure with a null body, replace the call with a null
6400         statement without using the full inlining machinery, for efficiency
6401         and to avoid invalid values in source file table entries.
6402
6403         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
6404         renamings of calls to build-in-place functions.
6405
6406         * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
6407         provides the functionality of RTE_Available to record components.
6408         (RTU_Entity): The function Entity has been renamed to RTU_Entity
6409         to avoid undesired overloading.
6410         (Entity): New subprogram that returns the entity for the referened
6411         unit. If this unit has not been loaded, it returns Empty.
6412         (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
6413         Remove no longer used entities.
6414         (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
6415         (RE_Type_Specific_Data): New entity.
6416         (RE_Move_Any_Value): New entity.
6417         (RE_TA_A, RE_Get_Any_Type): New entities.
6418         (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
6419          RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
6420          RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
6421         (Entity): New subprogram that returns the entity for the referened
6422         unit. If this unit has not been loaded, it returns Empty.
6423         (RTE): Addition of a new formal that extends the search to the scopes
6424         of the record types found in the chain of the package.
6425
6426         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
6427         "abstract subprograms must be visible" message, whether or not the type
6428         is an interface; that is, remove the special case for interface types.
6429         (Analyze_Function_Return): Remove error message "return of task objects
6430         is not yet implemented" because this is now implemented.
6431         (Create_Extra_Formals): Add the extra master and activation chain
6432         formals in case the result type has tasks.
6433         Remove error message "return of limited controlled objects is not yet
6434         implemented".
6435         (Create_Extra_Formals): Add the extra caller's finalization list formal
6436         in case the result type has controlled parts.
6437         (Process_Formals): In case of access formal types there is no need
6438         to continue with the analysis of the formals if we already notified
6439         errors.
6440         (Check_Overriding_Indicator): Add code to check overriding of predefined
6441         operators.
6442         (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
6443         flags for formals that do not require them,.
6444         (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
6445         hidden entity is use visible or directly visible.
6446         (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
6447         Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
6448         Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
6449         New_Overloaded_Entity): Split Is_Abstract flag into
6450         Is_Abstract_Subprogram and Is_Abstract_Type.
6451
6452         * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
6453         a return statement's finalization list to the caller's list, used for
6454         build-in-place functions with result type with controlled parts.
6455         Remove no longer used entities.
6456
6457         * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
6458         longer needed, because the full type is now limited, and therefore a
6459         pass-by-reference type.
6460         (Foreign_Task_Level): New constant.
6461
6462         * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
6463         move tasks from the activation chain belonging to a return statement to
6464         the one passed in by the caller, and update the master to the one
6465         passed in by the caller.
6466         (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
6467         of unactivated tasks, so we don't kill the ones that are being returned
6468         by a build-in-place function.
6469         (Create_Task): Ignore AI-280 for foreign threads.
6470
6471 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6472             Robert Dewar  <dewar@adacore.com>
6473             Bob Duff  <duff@adacore.com>
6474             Gary Dismukes  <dismukes@adacore.com>
6475
6476         * errout.adb (Unwind_Internal_Type): Use predicate
6477         Is_Access__Protected_Subprogram_Type.
6478
6479         * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
6480         (Freeze_Entity, packed array case): Do not override explicitly set
6481         alignment and size clauses.
6482         (Freeze_Entity):  An entity declared in an outer scope can be frozen if
6483         the enclosing subprogram is a child unit body that acts as a spec.
6484         (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
6485         (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
6486         Remove all code for DSP option
6487
6488         * layout.adb (Layout_Record_Type): Use First/
6489         Next_Component_Or_Discriminant
6490         (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
6491         to handle properly the anonymous access case.
6492
6493         * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
6494         for all access attributes, because overload resolution should work the
6495         same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
6496         causes the error message for the ambiguous "X'Access = Y'Access" and
6497         "X'Unrestricted_Access = Y'Access" and so forth to match.
6498         (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
6499         now that anonymous access to protected operations have their own kind.
6500         (Resolve_Attribute): In case of dispatching call check the violation of
6501         restriction No_Dispatching_Calls.
6502         (Check_Array_Type): Check new -gnatyA array index style option
6503
6504         * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
6505         attempt to derive from a synchronized tagged type.
6506         (Analyze_Type_Declaration): If there is a incomplete tagged view of the
6507         type, inherit the class-wide type already created, because it may
6508         already have been used in a self-referential anonymous access component.
6509         (Mentions_T): Recognize self-referential anonymous access components
6510         that use (a subtype of) the class-wide type of the enclosing type.
6511         (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
6512         Derived_Type for Prev formal on call to
6513         Check_Anonymous_Access_Components rather than Empty.
6514         (Make_Incomplete_Type_Declaration): Add test for case where the type has
6515         a record extension in deciding whether to create a class-wide type,
6516         rather than just checking Tagged_Present.
6517         (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
6518         to stand-alone object declarations as well as component declarations.
6519         (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
6520         prevent accidental overwriting when enclosing package appears in
6521         a limited_with_clause.
6522         (Array_Type_Declaration): If the component type is an anonymous access,
6523         the associated_node for the itype is the type declaration itself.
6524         (Add_Interface_Tag_Components): Modified to support concurrent
6525         types with abstract interfaces.
6526         (Check_Abstract_Interfaces): New subprogram that verifies the ARM
6527         rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
6528         (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
6529         to complete the decoration of synchronized interface types. Add also
6530         a call to Check_Abstract_Interfaces to verify the ARM rules.
6531         (Derive_Interface_Subprograms): Modified to support concurrent types
6532         with abstract interfaces.
6533         (Analyze_Subtype_Indication): Resolve the range with the given subtype
6534         mark, rather than delaying the full resolution depending on context.
6535         (Analyze_Component_Declaration,Analyze_Interface_Declaration,
6536         Analyze_Object_Declaration,Analyze_Subtype_Declaration,
6537         Array_Type_Declaration,Build_Derived_Record_Type,
6538         Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
6539         Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
6540         Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
6541         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
6542         called only when appropriate.
6543         (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
6544         to private type.
6545         (Analyze_Subtype_Declaration): For an access subtype declaration, create
6546         an itype reference for the anonymous designated subtype, to prevent
6547         scope anonmalies in gigi.
6548         (Build_Itype_Reference): New utility, to simplify construction of such
6549         references.
6550
6551 2007-04-06  Vincent Celier  <celier@adacore.com>
6552
6553         * errutil.adb (Initialize): Initialize warnings table, if all warnings
6554         are suppressed, supply an initial dummy entry covering all possible
6555         source locations.
6556
6557         * make.adb (Scan_Make_Arg): Reject options that should start with "--"
6558         and start with only one, such as "-RTS=none".
6559         (Collect_Arguments): Do not check for sources outside of projects.
6560         Do not collect arguments if project is externally built.
6561         (Compile_Sources): Do nothing, not even check if the source is up to
6562         date, if its project is externally built.
6563         (Compile): When compiling a predefined source, add -gnatpg
6564         as the second switch, after -c.
6565         (Compile_Sources): Allow compilation of Annex J renames without -a
6566         (Is_In_Object_Directory): Check if the ALI file is in the object
6567         even if there is no project extension.
6568         (Create_Binder_Mapping_File): Only put a unit in the mapping file for
6569         gnatbind if the ALI file effectively exists.
6570         (Initialize): Add the directory where gnatmake is invoked in front of
6571         the path if it is invoked from a bin directory, even without directory
6572         information, so that the correct GNAT tools will be used when spawned
6573         without directory information.
6574
6575         * makeusg.adb: Change switch -S to -eS
6576         Add lines for new switches -we, -wn and -ws
6577         Add line for new switch -p
6578
6579         * prj-proc.adb (Process): Set Success to False when Warning_Mode is
6580         Treat_As_Error and there are warnings.
6581
6582         * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
6583         -gnatww Change gnatmake switch -S to -eS
6584         (Scan_Make_Switches): Code reorganisation. Process separately multi
6585         character switches and single character switches.
6586         (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
6587         False when switch is not recognized by gnatmake.
6588         (Scan_Make_Switches): Set Setup_Projects True when -p or
6589         --create-missing-dirs is specified.
6590
6591         * fname.adb (Is_Predefined_File_Name): Return True for annex J
6592         renamings Calendar, Machine_Code, Unchecked_Conversion and
6593         Unchecked_Deallocation only when Renamings_Included is True.
6594
6595         * par.adb: Allow library units Calendar, Machine_Code,
6596         Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
6597         when -gnatg is not specified.
6598         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
6599         there is no need to generate always a record_definition_node in case
6600         of synchronized interface types.
6601         (SIS_Entry_Active): Initialize global variable to False
6602         (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
6603         indicate cases where AI-447 says "not null" is legal.
6604
6605         * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
6606
6607         * makegpr.adb (Check_Compilation_Needed): Take into account dependency
6608         files with with several lines starting with the object fileb name.
6609         (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
6610         is specified.
6611         (Initialize): Add the directory where gprmake is invoked in front of the
6612         path, if it is invoked from a bin directory or with directory
6613         information, so that the correct GNAT tools will be used when invoked
6614         directly.
6615         (Check_Compilation_Needed): Process correctly backslashes on Windows.
6616
6617         * vms_data.ads: Update switches/qualifiers
6618
6619 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6620             Thomas Quinot  <quinot@adacore.com>
6621
6622         * exp_aggr.adb:
6623         If the array component is a discriminated record, the array aggregate
6624         is non-static even if the component is given by an aggregate with
6625         static components.
6626         (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
6627         (Convert_Aggr_In_Allocator): If the allocator is for an access
6628         discriminant and the type is controlled. do not place on a finalization
6629         list at this point. The proper list will be determined from the
6630         enclosing object.
6631         (Build_Record_Aggr_Code): If aggregate has box-initialized components,
6632         initialize record controller if needed, before the components, to ensure
6633         that they are properly finalized.
6634         (Build_Record_Aggr_Code): For the case of an array component that has a
6635         corresponding array aggregate in the record aggregate, perform sliding
6636         if required.
6637
6638 2007-04-06  Javier Miranda  <miranda@adacore.com>
6639             Gary Dismukes  <dismukes@adacore.com>
6640             Ed Schonberg  <schonberg@adacore.com>
6641
6642         * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
6643         run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
6644
6645         * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
6646         accessibility on class-wide allocators if the allocator occurs at the
6647         same scope level as the allocator's type. The check is guaranteed to
6648         succeed in that case, even when the expression originates from a
6649         parameter of the containing subprogram.
6650         (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
6651         under No_Dispatching_Calls restriction. During the semantic analysis
6652         we already notified such violation.
6653         (Tagged_Membership): Constant folding. There is no need to check
6654         the tag at run-time if the type of the right operand is non
6655         class-wide abstract.
6656         Replace call to Is_Ancestor by call to Is_Parent
6657         to support concurrent types with interface types.
6658         (Expand_N_Allocator): Add an assertion associated with the generation
6659         of the master_id.
6660         (Expand_N_Slice): Do not enable range check to nodes associated
6661         with the frontend expansion of the dispatch table.
6662         (Is_Local_Access_Discriminant): Subsidiary function to
6663         Expand_N_Allocator.
6664         (Tagged_Membership): Replace generation of call to the run-time
6665         subprogram CW_Membership by call to Build_CW_Membership.
6666         (Expand_Allocator_Expression): Replace generation of call to the
6667         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
6668
6669         * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
6670         initialize most the TSD components by means of an aggregate.
6671         Modify the declaration of the object containing the TSD
6672         because we now expand code that has a higher level of abstraction.
6673         The TSD has a discriminant containing the Inheritance Depth Level,
6674         value that is used in the membership test but also to fix the size
6675         of the table of ancestors.
6676         (Expand_Interface_Conversion): Insert function body at the closest place
6677         to the conversion expression, to prevent access-before-elaboration
6678         errors in the backend.
6679         Code improved to reduce the size of the dispatch table if
6680         compiling under restriction No_Dispatching_Calls plus code cleanup.
6681         Code reorganization plus removal of calls to Set_Num_Prim_Ops
6682         (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
6683         (Expand_Dispatching_Call): Minor code reorganization plus addition of
6684         code to return immediately if compiling under No_Dispatching_Calls
6685         restriction.
6686         (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
6687         CPP_Virtual and CPP_Vtable are no longer supported.
6688         (Expand_Interface_Conversion): Add missing support for interface type
6689         derivations.
6690         (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
6691         Is_Parent to support concurrent types with interfaces.
6692         (Init_Predefined_Interface_Primitives): Removed.
6693         (Make_Secondary_DT): Modified to support concurrent record types.
6694         (Set_All_DT_Position): Modified to support concurrent record types.
6695         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
6696         with Get_External_Tag, Inherit_TSD, Set_External_Tag.
6697         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
6698         with CW_Membership.
6699         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
6700         with Get_Access_Level, Get_Predefined_Prim_Op_Address,
6701         Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
6702         Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
6703         Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
6704         (Expand_Dispatching_Call): Replace generation of call to the run-time
6705         subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
6706         calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
6707         Address.
6708         (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
6709         the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
6710         Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
6711         Build_Set_Prim_Op_Address.
6712         (Get_Remotely_Callable): Subprogram removed.
6713         (Init_Predefined_Interface_Primitives): Replace generation of call to
6714         the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
6715         Prims.
6716
6717         * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
6718         First (Parameter_Associations ()) with the call to First_Actual that
6719         returns an actual parameter expression for both named and positional
6720         associations.
6721
6722         * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
6723         check violation of restriction No_Dispatching_Calls.
6724         (Check_Controlling_Type): A formal of a tagged incomplete type is a
6725         controlling argument.
6726
6727         * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
6728         First/Next_Component_Or_Discriminant
6729         (Insert_Actions): Add entries for new N_Push and N_Pop nodes
6730         (Find_Implemented_Interface): Removed. All the calls to this subprogram
6731         specify Any_Limited_Interface, and this functionality is already
6732         provided by the function Has_Abstract_Interfaces.
6733         (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
6734         support concurrent types implementing interfaces.
6735         (Find_Implemented_Interface): Removed. All the calls to this subprogram
6736         specify kind Any_Limited_Interface, and this functionality is already
6737         provided by the function Has_Abstract_Interfaces.
6738         (Remove_Side_Effects): replace Controlled_Type by
6739         CW_Or_Controlled_Type whenever the issue is related to
6740         using or not the secondary stack.
6741
6742         * par-ch12.adb (P_Formal_Type_Definition): Update calls to
6743         P_Interface_Type_Definition to fulfill the new interface (the formal
6744         Is_Synchronized is no longer required).
6745
6746         * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
6747         Update dependencies.
6748
6749         * exp_atag.ads, exp_atag.adb: New file
6750
6751 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6752             Bob Duff  <duff@adacore.com>
6753             Cyrille Comar  <comar@adacore.com>
6754
6755         * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
6756         anonymous, use finalization list of enclosing dynamic scope.
6757         (Expand_N_Package_Declaration): For a library package declaration
6758         without a corresponding body, generate RACW subprogram bodies in the
6759         spec (just as we do for the task activation call).
6760         (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
6761         Is_Abstract_Type. Make sure these are called only when appropriate.
6762         Remove all code for DSP option
6763         (CW_Or_Controlled_Type): new subprogram.
6764
6765 2007-04-06  Eric Botcazou <botcazou@adacore.com>
6766             Ed Schonberg  <schonberg@adacore.com>
6767             Gary Dismukes  <dismukes@adacore.com>
6768
6769         * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
6770         parameter. If it is set to true, return a result capped according to
6771         the global upper bound for the index of an entry family.
6772         (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
6773         (Build_Find_Body_Index): Adjust for above change.
6774         (Entry_Index_Expression): Likewise.
6775         (Is_Potentially_Large_Family): New function extracted from...
6776         (Collect_Entry_Families): ...here. Call it to detect whether the family
6777         is potentially large.
6778         (Build_Entry_Count_Expression): If the family is potentially large, call
6779         Family_Size with 'Cap' set to true.
6780         (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
6781         a protected version of an operation declared in the private part of
6782         a protected object, because they may be invoked through a callback.
6783         (Set_Privals): If the type of a private component is an anonymous access
6784         type, do not create a new itype for each protected body.
6785         If the body of a protected operation creates
6786         controlled types (including allocators for class-widetypes), the
6787         body of the corresponding protected subprogram must include a
6788         finalization list.
6789         (Build_Activation_Chain_Entity): Build the chain entity for extended
6790         return statements.
6791         (Type_Conformant_Parameters): Use common predicate Conforming_Types
6792         to determine whether operation overrides an inherited primitive.
6793         (Build_Wrapper_Spec): Add code to examine the parents while looking
6794         for a possible overriding candidate.
6795         (Build_Simple_Entry_Call): Set No_Initialization on the object used to
6796         hold an actual parameter value since its initialization is separated
6797         from the the declaration. Prevents errors on null-excluding access
6798         formals.
6799
6800 2007-04-06  Thomas Quinot  <quinot@adacore.com>
6801
6802         * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
6803         Do an Unchecked_Conversion to handle the passage from the Underlying
6804         Type to the Base Type when calling Build_To_Any_Call and
6805         Build_From_Any_Call.
6806         (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
6807         E_Constant, depending upon Variable formal.
6808         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
6809         PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
6810         parameter that requires an extra constrained parameter, declare
6811         temporary for actual as a variable, not a constant.
6812         (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
6813         the unit being compiled is the one that contains the stub type.
6814         Change primitive operation name for the RACW associated with a RAS
6815         from Call to _Call so it cannot clash with any legal identifier.
6816         (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
6817         Is_RAS.
6818         (Append_RACW_Bodies): New subprogram.
6819         (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
6820         Add_Receiving_Stubs_To_Declarations functions.
6821         When expanding a package body, this list correspond to the
6822         statements in the HSS at the end of the pacakge.
6823         When expanding a package spec, this list correspond to the
6824         spec declarations.
6825         (Add_Receiving_Stubs_To_Declarations): Append the function
6826         registering the receiving stubs at the end of the 'Stmts' list.
6827         (RCI_Package_Locator): Pass the new Version generic formal when
6828         instantiating a RCI_Locator package.
6829         (Build_From_Any_Function): To compute the High bound for an
6830         unconstrained array actual, we add the Low bound with the length.
6831         Thus we must convert the low bound and the length to an appropriate
6832         type before doing the sum.
6833         (Build_Subprogram_Receiving_Stubs, PolyORB):
6834          * Retrieve the extra formals parameters at the
6835            end of the parameter stream.
6836          * Use Move_Any_Value to write back out parameters
6837            after executing the request as it is more efficient
6838            than Copy_Any_Value.
6839          * Build the any containing Extra Formals with the
6840            appropriate typecode.
6841         (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
6842         empty Component_List.
6843         (Build_Actual_Object_Declaration): New subprogram. Build and insert into
6844         the tree the declaration for an object that serves as actual parameter
6845         in server-side stubs.
6846         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
6847         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
6848         Use Build_Actual_Object_Declaration to prepare the actuals.
6849         (Add_Parameter_To_NVList): Set the parameter mode to In for
6850         Extra Constrained Parameters.
6851         (Build_General_Calling_Stubs): Set the parameter type to boolean for
6852         Extra Constrained parameters.
6853         (Build_To_Any_Function, Build_From_Any_Function,
6854         Built_TypeCode_Function): When Typ is implicit, call the correct
6855         function with the first not implicit parent type.
6856         (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
6857         (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
6858         typecode from the Etype. Therefore we retrieve the correct typecode
6859         with a call to Get_Any_Type.
6860         (Copy_Specification): Do controlling formal type substitution based on
6861         Is_Controlling_Formal flag, instead of caller-provided object type.
6862         (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
6863         a RACW primitive operation, we might get a subprogram declaration for an
6864         ancestor of the RACW designated type (not for the designated type
6865         itself), in the case where this operation is inherited. In this case we
6866         have no easy means of determining the original tagged type for which
6867         the primitive was declared, so instead we now rely on
6868         Copy_Specification to use the Is_Controlling_Formal flag to determine
6869         which formals require type substitution.
6870
6871 2007-04-06  Robert Dewar  <dewar@adacore.com>
6872             Ed Schonberg  <schonberg@adacore.com>
6873
6874         * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
6875         GNAT.Current_Exception are not allowed if pragma Restrictions
6876         (No_Exception_Propagation) is set and in any case make the associated
6877         handler unsuitable as a target for a local raise statement.
6878         (Expand_Dispatching_Constructor_Call): Replace generation of call to the
6879         run-time subprogram CW_Membership by call to Build_CW_Membership.
6880         (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
6881         by a function call, a temporary must be created before expanding the
6882         Constructor_Call itself, to prevent out-of-order elaboration in the
6883         back-end when stack checking is enabled..
6884
6885 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6886
6887         * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
6888         result are the bounds of the left operand, not the right.
6889
6890 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6891
6892         * exp_strm.adb
6893         (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
6894          discriminant defaults.
6895         (Build_Record_Or_Elementary_Output_Procedure): Ditto.
6896         (Make_Component_List_Attributes): Ditto.
6897
6898 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6899             Bob Duff  <duff@adacore.com>
6900
6901         * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
6902         an association with a box as providing a value even though the
6903         initialization procedure for the type is not available.
6904         (Resolve_Record_Aggregate): Check that a choice of an association with a
6905         box corresponds to a component of the type.
6906         (Resolve_Record_Aggregate): Split Is_Abstract flag into
6907         Is_Abstract_Subprogram and Is_Abstract_Type.
6908
6909         * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
6910         assert.
6911
6912         * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
6913         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
6914         called only when appropriate.
6915
6916 2007-04-06  Olivier Hainque  <hainque@adacore.com>
6917
6918         * g-alleve.ads (Low Level Vector type definitions): Map each to the
6919         associated vector view instead of all to the unsigned char view.
6920
6921         * g-altcon.adb (Generic_Conversions): New internal generic package,
6922         offering facilities for all the Vector/View conversion routines
6923         implemented by this unit.
6924         (To_View/To_Vector - all versions): Reimplemented in a systematic
6925         manner, using the internal Generic_Conversions facilities.
6926
6927 2007-04-06  Pascal Obry  <obry@adacore.com>
6928
6929         * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
6930         string.
6931         (Create): Free the source string before storing the new one.
6932
6933 2007-04-06  Vincent Celier  <celier@adacore.com>
6934
6935         * g-debpoo.adb (Validity): New package with a complete new
6936         implementation of subprograms Is_Valid and Set_Valid.
6937         (Is_Valid): Move to local package Validity
6938         (Set_Valid): Move to local package Validity
6939
6940 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
6941
6942         * g-expect.adb (Get_Command_Output): When expanding the output buffer
6943         we must ensure that there is enough place for the new data we are going
6944         to copy in.
6945
6946 2007-04-06  Thomas Quinot  <quinot@adacore.com>
6947
6948         * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
6949         computation.
6950
6951 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
6952             Vincent Celier  <celier@adacore.com>
6953
6954         * gnatcmd.adb (B_Start): Add prefix of binder generated file.
6955         (Stack_String): Add this String that contains the name of the Stack
6956         package in the project file.
6957         (Packages_To_Check_By_Stack): Add this list that contains the packages
6958         to be checked by gnatstack, which are the naming and the stack packages.
6959         (Check_Files): If no .ci files were specified for gnatstack we add all
6960         the .ci files belonging to the projects, including binder generated
6961         files.
6962         (Non_VMS_Usage): Document that gnatstack accept project file switches.
6963         (GNATCmd): Update the B_Start variable if we are in a VMS environment.
6964         Add gnatstack to the list of commands that use project file related
6965         switches, and get the single attribute Switches from the stack package
6966         in a project file when calling gnatstack. Parse the -U flag for
6967         processing files belonging to all projects in the project tree.
6968         Remove all processing for command Setup
6969
6970         * prj-attr.adb: Add new package Stack with single attribute Switches
6971
6972         * vms_conv.ads (Command_Type): Add command Stack.
6973         Move to body declarations that are only used in the body: types Item_Id,
6974         Translation_Type, Item_Ptr, Item and its subtypes.
6975
6976         * vms_conv.adb: (Initialize): Add data for new command Stack.
6977         Add declarations moved from the spec: types Item_Id, Translation_Type,
6978         Item_Ptr, Item and its subtypes.
6979         (Cargs_Buffer): New table
6980         (Cargs): New Boolean global variable
6981         (Process_Buffer): New procedure to create arguments
6982         (Place): Put character in table Buffer or Cargs_Buffer depending on the
6983          value of Cargs.
6984         (Process_Argument): Set Cargs when processing qualifiers for GNAT
6985         COMPILE
6986         (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
6987         empty, for table Cargs_Buffer.
6988         (Initialize): Remove component Setup in Command_List
6989
6990 2007-04-06  Vincent Celier  <celier@adacore.com>
6991
6992         * gprep.adb (Process_Files.Process_One_File): Use full file name when
6993         issuing pragma Source_Reference.
6994
6995 2007-04-06  Emmanuel Briot  <briot@adacore.com>
6996
6997         * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
6998         [[:xdigit:]] character class.
6999         Also raise an exception when an invalid character class is used.
7000
7001 2007-04-06  Pascal Obry  <obry@adacore.com>
7002
7003         * i-cstrea.ads: (fopen): Add encoding parameter.
7004         (freopen): Idem.
7005         Change reference from a-sysdep.c to sysdep.c in comment.
7006         Update copyright notice.
7007         This set of patch add support for the encoding form parameter.
7008
7009         * mingw32.h (S2WSU): New macro to convert from a string to a
7010         wide-string using the UTF-8 encoding. The S2WS macro supports now only
7011         standard 8bits encoding.
7012         (WS2SU): As above but converting from wide-sring to string.
7013         This is needed as it is necessary to have access to both versions in the
7014         runtime for the form parameter encoding support.
7015         This set of patch add support for the encoding form parameter.
7016         (S2WS): Improve implementation to handle cases where the filename is not
7017         UTF-8 encoded. In this case we default to using the current code page
7018         for the conversion.
7019
7020         * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
7021         type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
7022         the constants defined in adaint.h.
7023         (fopen): Add encoding parameter.
7024         (freopen): Idem.
7025
7026         * s-ficobl.ads (AFCB): Add Encoding field to record the filename
7027         encoding. This is needed for the Reset routine (freopen low level-call).
7028
7029         * s-fileio.adb (Open): Decode encoding form parameter and set the
7030         corresponding encoding value into AFCB structure.
7031         (Reset): Pass the encoding value to freopen.
7032         (Close): Move the call to Lock_Task to the beginning of the procedure.
7033
7034 2007-04-06  Geert Bosch  <bosch@adacore.com>
7035             Robert Dewar  <dewar@adacore.com>
7036
7037         * i-fortra.ads: Add Double_Complex type.
7038
7039         * impunit.adb: (Is_Known_Unit): New function
7040         Add Gnat.Byte_Swapping
7041         Add GNAT.SHA1
7042         Add new Ada 2005 units
7043         Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
7044         Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
7045         Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
7046         Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
7047
7048         * impunit.ads (Is_Known_Unit): New function
7049
7050         * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
7051         a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
7052         a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
7053         g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
7054         s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
7055         s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
7056         New files.
7057
7058         * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
7059
7060         * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
7061
7062 2007-04-06  Eric Botcazou <botcazou@adacore.com>
7063             Arnaud Charlet  <charlet@adacore.com>
7064
7065         * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
7066         __gnat_adjust_context_for_raise.
7067         (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
7068         implementation of floating point operations as native x86 targets.
7069         So the FPU should be initialized in the same way using finit. Fix
7070         floating point operations accuracy issues.
7071         (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
7072         member in struct sigaction, so as to avoid warning for incompatible
7073         pointer types.
7074
7075 2007-04-06 Serguei Rybin <rybin@adacore.com>
7076
7077         * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
7078         switches from previously loaded tree
7079
7080 2007-04-06  Thomas Quinot  <quinot@adacore.com>
7081
7082         * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
7083         cases where a given dependency has a body or not.
7084         (Write_With_File_Names): New subprogram, common code for the two cases
7085         above.
7086
7087 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7088             Javier Miranda  <miranda@adacore.com>
7089
7090         * lib-xref.ads, lib-xref.adb: 
7091         Modify the loop that collects type references, to include interface
7092         types that the type implements. List each of these interfaces when
7093         building the entry for the type.
7094         (Generate_Definition): Initialize component Def and Typ of new entry
7095         in table Xrefs, to avoid to have these components unitialized.
7096         (Output_References): Split Is_Abstract flag into
7097         Is_Abstract_Subprogram and Is_Abstract_Type.
7098         (Generate_Reference): Add barrier to do not generate the warning
7099         associated with Ada 2005 entities with entities generated by the
7100         expander.
7101
7102 2007-04-06  Robert Dewar  <dewar@adacore.com>
7103             Arnaud Charlet  <charlet@adacore.com>
7104             Vincent Celier  <celier@adacore.com>
7105
7106         * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
7107         Update 'Exception Handling Control' chapter which was outdated.
7108         Minor fix to documentation of -gnatwq
7109         Remove section "Adapting the Run Time to a New C++ Compiler" because
7110         it is now obsolete.
7111         Add passage on need of -nostart-files in some non-ada-main cases.
7112         Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
7113         Update documentation about Interfacing with C++
7114         Add documentation for new gnatmake switch -p
7115         Add missing protocol part in URLs.
7116         Document -gnatyA
7117         Document pragma Compile_Time_Error
7118         Add documentation for Object_Size indicating that stand alone
7119         objects can have a larger size in some cases.
7120         Add node for GNAT.Byte_Swapping, GNAT.SHA1
7121         Update reference to the Ravenscar profile.
7122         Document pragma Unreferenced_Objects
7123
7124         * gnat-style.texi: Fix typo
7125
7126 2007-04-06  Vincent Celier  <celier@adacore.com>
7127
7128         * mlib.adb (Building_Library): Only output "building a library..." in
7129         verbose mode
7130
7131         * mlib-prj.adb (Build_Library): Only output lists of object and ALI
7132         files in verbose mode.
7133
7134         * mlib-utl.adb (Ar): Only output the first object files when not in
7135         verbose mode.
7136         (Gcc): Do not display all the object files if not in verbose mode, only
7137         the first one.
7138
7139 2007-04-06  Robert Dewar  <dewar@adacore.com>
7140
7141         * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
7142         it no longer destroys the contents of Name_Buffer or Name_Len and
7143         non-standard and invalid names are handled better.
7144         (Get_Decoded_Name_String): Improve performance by using
7145         Name_Has_No_Encodings flag in the name table.
7146         (Is_Valid_Name): New function to determine whether a Name_Id is valid.
7147         Used for debugging printouts.
7148
7149 2007-04-06  Robert Dewar  <dewar@adacore.com>
7150             Javier Miranda  <miranda@adacore.com>
7151             Bob Duff  <duff@adacore.com>
7152
7153         * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
7154         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
7155         there is no need to generate always a record_definition_node in case
7156         of synchronized interface types.
7157         (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
7158         (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
7159         illegal in Ada 95, in cases where it is legal. Change the warnings to
7160         errors in other cases. Don't give the error unless the "not null"
7161         parses properly. Correct the source position at which the error occurs.
7162         (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
7163         P_Null_Exclusion, to suppress "not null" warnings.
7164         (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
7165         associated goto statements.
7166
7167         * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
7168         of END RECORD
7169
7170         * scans.ads (Type_Token_Location): New flag
7171
7172         * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
7173         (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
7174         P_Null_Exclusion, to suppress "not null" warnings.
7175
7176 2007-04-06  Robert Dewar  <dewar@adacore.com>
7177             Javier Miranda  <miranda@adacore.com>
7178             Bob Duff  <duff@adacore.com>
7179             Vincent Celier  <celier@adacore.com>
7180
7181         * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
7182         (Extensions_Allowed): No longer sets Ada_Version
7183         Entry for pragma Unreferenced_Objects
7184
7185         * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
7186         system.tasking if pragma priority used in a procedure
7187         (Analyze_Pragma, case Warning): Handle dot warning switches
7188         (Process_Compile_Time_Warning_Or_Error): New procedure
7189         (Analyze_Pragma): Add processing for Compile_Time_Error
7190         Add support for extra arguments External_Name and Link_Name.
7191         Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
7192         (Process_Import_Or_Interface): Add support for the use of pragma Import
7193         with tagged types.
7194         (Extensions_Allowed): No longer affects Ada_Version
7195         (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
7196         Is_Abstract_Type. Make sure these are called only when appropriate.
7197         Add processing for pragma Unreferenced_Objects
7198
7199         * snames.h, snames.ads, snames.adb: Add entry for pragma
7200         Compile_Time_Error
7201         Add new standard name Minimum_Binder_Options for new gprmake
7202         Add new standard names for gprmake: Archive_Suffix,
7203         Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
7204         Library_Support, Library_Version_Options,
7205         Shared_Library_Minimum_Options,
7206         Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
7207         Change Name_Call to Name_uCall so that it cannot clash with a legal
7208         subprogram name.
7209         Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
7210         Append C_Plus_Plus to convention identifiers as synonym for CPP
7211         Add new standard names Stack and Builder_Switches
7212         Add new standard names: Compiler_Minimum_Options, Global_Config_File,
7213         Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
7214         Run_Path_Option, Toolchain_Version.
7215         Entry for pragma Unreferenced_Objects
7216
7217         * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
7218         switches, without repetition of "eD". Make sure that last character of
7219         -gnatep= switch is not taken as -gnat switch character.
7220         Complete rewrite of circuit for handling saving compilation options
7221         Occasioned by need to support dot switchs for -gnatw, but cleans up
7222         things in general.
7223         -gnatX does not affect Ada_Version
7224         Include -gnatyA in -gnatg style switches
7225
7226         * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
7227         warnings on return objects.
7228         (Warn_On_Useless_Assignment): Exclude warnings on return objects
7229         (Set_Dot_Warning_Switch): New procedure
7230         (Check_References): Add missing case of test for
7231         Has_Pragma_Unreferenced_Objects
7232         (Output_Unreferenced_Messages): Implement effect of new pragma
7233         Unreferenced_Objects, remove special casing of limited controlled
7234         variables.
7235
7236 2007-04-06  Vincent Celier  <celier@adacore.com>
7237
7238         * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
7239         the default project path, initially done during elaboration of the
7240         package.
7241         If the prefix returned by Sdefault is null, get the prefix from a call
7242         to Executable_Prefix_Path.
7243         (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
7244         null.
7245
7246         * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
7247         canonical directory name to open the directory from which files are
7248         retrieved.
7249         (Record_Other_Sources): Idem.
7250         (Locate_Directory): Add the possibility to create automatically missing
7251         directories when Setup_Projects is True.
7252         Call Locate_Directory so that the directory will be created when
7253         Setup_Projects is True, for object dir, library dir, library ALI dir,
7254         library source copy dir and exec dir.
7255
7256         * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
7257         versions of GNAT.
7258
7259 2007-04-06  Robert Dewar  <dewar@adacore.com>
7260
7261         * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
7262         Use First/Next_Component_Or_Discriminant
7263         (Analyze_Record_Representation_Clause):
7264         Use First/Next_Component_Or_Discriminant
7265         (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
7266         (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
7267         definition if type is unconstrained.
7268         (Adjust_Record_For_Reverse_Bit_Order): New procedure
7269         (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
7270         Is_Abstract_Subprogram and Is_Abstract_Type.
7271         (Adjust_Record_For_Reverse_Bit_Order): New procedure
7272
7273         * repinfo.adb (List_Record_Info): Use First/
7274         Next_Component_Or_Discriminant.
7275
7276         * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
7277         New procedure.
7278
7279         * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
7280         Include -gnatyA in default switches
7281
7282         * opt.ads: (Warn_On_Non_Local_Exception): New flag
7283         (Warn_On_Reverse_Bit_Order): New flag
7284         (Extensions_Allowed): Update the documentation.
7285         (Warn_On_Questionable_Missing_Parens): Now on by default
7286
7287         * usage.adb: Add documentation of -gnatw.x/X switches
7288         Document new -gnatyA style switch
7289         -gnatq warnings are on by default
7290
7291 2007-04-06  Ed Falis  <falis@adacore.com>
7292
7293         * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
7294         full word is no longer compared twice.
7295
7296 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7297
7298         * sem_ch10.adb (Install_Limited_Context_Clauses.
7299         Expand_Limited_With_Clause): Use a new copy of selector name in the
7300         call to Make_With_Clause. This fixes the tree structure for ASIS
7301         purposes. Nothing is changed in the compiler behaviour.
7302         (Process_Body_Clauses): Handle properly use clauses whose prefix is
7303         a package renaming.
7304         (Install_Limited_With_Clauses): Do not install non-limited view when it
7305         is still incomplete.
7306
7307 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7308             Gary Dismukes  <dismukes@adacore.com>
7309
7310         * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
7311         when capturing size information, instead of base type, which for a
7312         formal array type will be the unconstrained type.
7313         (Analyze_Formal_Object_Declaration): Add check for illegal default
7314         expressions for a formal in object of a limited type.
7315         (Instantiate_Object): Ditto.
7316         (Check_Formal_Package_Instance): Skip entities that are formal objects,
7317         because they were defaulted in the formal package and no check applies
7318         to them.
7319         (Check_Formal_Package_Instance): Extend conformance check to other
7320         discrete types beyond Integer.
7321         (Process_Default): Copy directly the unmatched formal. A generic copy
7322         has already been performed in Analyze_Formal_Package.
7323         (Analyze_Associations): If a formal subprogram has no match, check for
7324         partial parametrization before looking for a default, to prevent
7325         spurious errors.
7326         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
7327         not set the instantiation environment before analyzing the actuals.
7328         Fixes regression on 8515-003 with implementation of AI-133.
7329         Set_Instance_Env checks whether the generic unit is a predefined
7330         unit, in which case the instance must be analyzed with the latest Ada
7331         mode. This setting must take place after analysis of the actuals,
7332         because the actuals must be analyzed and frozen in the Ada mode extant
7333         outside of the current instantiation.
7334         (Save_Env, Restore_Env): Preserve and restore the configuration
7335         parameters so that predefined units can be compiled in the proper Ada
7336         mode.
7337         (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
7338         Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
7339         and Is_Abstract_Type.
7340         (Analyze_Formal_Package): For better error recovery, Add exception
7341         handler to catch Instantion_Error, which can be raised in
7342         Analyze_Associations
7343
7344 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7345             Bob Duff  <duff@adacore.com>
7346             Gary Dismukes  <dismukes@adacore.com>
7347
7348         * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
7349         prefix type is a discriminated subtype of the type of the formal.
7350         (Analyze_Allocator): Collect all coextensions regardless of the context.
7351         Whether they can be allocated statically is determined in exp_ch4.
7352         (Analyze_Selected_Component): If the prefix is a limited view and the
7353         non-limited view is available, use the non-limited one.
7354         (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
7355         therefore illegal), suggest a qualified expression rather than a type
7356         conversion, because a type conversion would be illegal in this context.
7357         (Anayze_Allocator): Trace recursively all nested allocators so that all
7358         coextensions are on the corresponding list for the root. Do no mark
7359         coextensions if the root allocator is within a declaration for a stack-
7360         allocated object, because the access discriminants will be allocated on
7361         the stack as well.
7362         (Analyze_Call): Remove restriction on calls to limited functions for the
7363         cases of generic actuals for formal objects, defaults for formal objects
7364         and defaults for record components.
7365         (Analyze_Allocator): Before analysis, chain coextensions on the proper
7366         element list. Their expansion is delayed until the enclosing allocator
7367         is processed and its finalization list constructed.
7368         (Try_Primitive_Operation): If the prefix is a concurrent type, looks
7369         for an operation with the given name among the primitive operations of
7370         the corresponding record type.
7371         (Analyze_Selected_Component): If the prefix is a task type that
7372         implements an interface, and there is no entry with the given name,
7373         check whether there is another primitive operation (e.g. a function)
7374         with that name.
7375         (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
7376         properly the indexing of a function call written in prefix form, where
7377         the function returns an array type, and all parameters of the function
7378         except the first have defaults.
7379         (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
7380         the original operands, rather than relocating them, for efficiency and
7381         to work properly when an operand is overloaded.
7382         (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
7383         Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
7384         (Analyze_Selected_Component): If the prefix is a private extension, only
7385         scan the visible components, not those of the full view.
7386         (Try_Primitive_Operation): If the operation is a procedure, collect all
7387         possible interpretations, as for a function, because in the presence of
7388         classwide parameters several primitive operations of the type can match
7389         the given arguments.
7390
7391 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7392             Robert Dewar  <dewar@adacore.com>
7393
7394         * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
7395         tag-indeterminate call to an abstract function, when the left-hand side
7396         is not classwide.
7397         (Analyze_Loop_Statement): Improve detection of infinite loops
7398
7399 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7400             Thomas Quinot  <quinot@adacore.com>
7401
7402         * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
7403         out of Analyze_Package_Declaration, because processing must be applied
7404         to package bodies as well, for deferred constants completed by pragmas.
7405         (Analyze_Package_Declaration): When the package declaration being
7406         analyzed does not require an explicit body, call Check_Completion.
7407         (May_Need_Implicit_Body): An implicit body is required when a package
7408         spec contains the declaration of a remote access-to-classwide type.
7409         (Analyze_Package_Body): If the package contains RACWs, append the
7410         pending subprogram bodies generated by exp_dist at the end of the body.
7411         (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
7412         Is_Abstract_Subprogram and Is_Abstract_Type.
7413         (Preserve_Full_Attributes): The full entity list is not an attribute
7414         that must be preserved from full to partial view.
7415
7416         * sem_dist.adb (Add_RAS_Dereference_TSS):
7417         Change primitive name to _Call so it cannot clash with any legal
7418         identifier, and be special-cased in Check_Completion.
7419         Mark the full view of the designated type for the RACW associated with
7420         a RAS as Comes_From_Source to get proper view switching when installing
7421         private declarations.
7422         Provite a placeholder nested package body along with the nested spec
7423         to have a place for Append_RACW_Bodies to generate the calling stubs
7424         and stream attributes.
7425
7426 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7427             Robert Dewar  <dewar@adacore.com>
7428
7429         * sem_ch8.adb (Has_Components): If the argument is an incomplete type
7430         that is a limited view, check the non-limited view if available.
7431         (Undefined): Refine error message for missing with of Text_IO
7432         (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
7433         to distinguish real missing with cases.
7434         Fix format of all missing with messages
7435         (Analyze_Subprogram_Renaming): Emit proper error message on illegal
7436         renaming as body when renamed entity is abstract.
7437
7438 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7439             Javier Miranda  <miranda@adacore.com>
7440
7441         * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
7442         predicate recursive, to handle complex expressions on literals whose
7443         spurious ambiguity comes from the abstract interpretation of some
7444         subexpression.
7445         (Interface_Present_In_Ancestor): Add support to concurrent record
7446         types.
7447         (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
7448         Is_Abstract_Subprogram and Is_Abstract_Type.
7449
7450 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7451             Javier Miranda  <miranda@adacore.com>
7452
7453         * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
7454         dereference of a local object R created as a reference to another
7455         object O, use the access level of O.
7456         (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
7457         rather than local Same_Formal_Type, to check whether protected operation
7458         overrides an inherited one.
7459         (Same_Formal_Type): New predicate, used when matching signatures of
7460         overriding synchronized operations, to handle the case when a formal
7461         has a type that is a generic actual.
7462         (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
7463         predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
7464         (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
7465         syntactic ambiguities involving indexing of function calls that return
7466         arrays.
7467         (Abstract_Interface_List): New subprogram that returns the list of
7468         abstract interfaces associated with a concurrent type or a
7469         concurrent record type.
7470         (Interface_Present_In_Parent): New subprogram used to check if a
7471         given type or some of its parents implement a given interface.
7472         (Collect_Abstract_Interfaces): Add support for concurrent types
7473         with interface types.
7474         (Has_Abstract_Interfaces): Add support for concurrent types with
7475         interface types.
7476         (Is_Parent): New subprogram that determines whether E1 is a parent
7477         of E2. For a concurrent type its parent is the first element of its
7478         list of interface types; for other types this function provides the
7479         same result than Is_Ancestor.
7480         (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
7481         (Collect_Synchronized_Interfaces): Removed because the subprogram
7482         Collect_Abstract_Interfaces provides this functionality.
7483         (Collect_Abstract_Interfaces): Minor update to give support to
7484         concurrent types and thus avoid undesired code duplication.
7485         (Get_Subprogram_Entity): Handle entry calls.
7486         (May_Be_Lvalue): Include actuals that appear as in-out parameters in
7487         entry calls.
7488         (Enter_Name): Do not give -gnatwh hiding warning for record component
7489         entities, they never result in hiding.
7490
7491 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7492             Robert Dewar  <dewar@adacore.com>
7493
7494         * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
7495         to chain nested components that are allocators for access discriminants
7496         of the enclosing object.
7497         Add N_Push and N_Pop nodes
7498         New field Exception_Label added
7499         (Local_Raise_Statements): New field in N_Exception_Handler_Node
7500         (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
7501         (Is_Coextension): New flag for allocators, to mark allocators that
7502         correspond to access discriminants of dynamically allocated objects.
7503         (N_Block_Statement): Document the fact that the corresponding entity
7504         can be an E_Return_Statement.
7505         (Is_Coextension): New flag for allocators.
7506         Remove all code for DSP option
7507
7508         * sprint.ads, sprint.adb: Display basic information for class_wide
7509         subtypes. Add handling of N_Push and N_Pop nodes
7510
7511 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
7512
7513         * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
7514         before propagating exception.
7515
7516 2007-04-06  Olivier Hainque  <hainque@adacore.com>
7517
7518         * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
7519         an address always within the call instruction from a return address.
7520
7521 2007-04-06  Olivier Hainque  <hainque@adacore.com>
7522             Eric Botcazou <botcazou@adacore.com>
7523
7524         * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
7525         expression with a COMPOUND_EXPR including the call instead of emitting
7526         the call directly here.
7527         (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
7528         high bound is constant and the slice is empty.  Tidy.
7529         (tree_transform, case N_Op_Not): Handle properly the case where the
7530         operation applies to a private type whose full view is a modular type.
7531         (Case_Statement_To_gnu): If an alternative is an E_Constant with an
7532         Address_Clause, use the associated Expression as the GNAT tree
7533         representing the choice value to ensure the corresponding GCC tree is
7534         of the proper kind.
7535         (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
7536         instead of just the operands, as the base GCC stabilize_reference does.
7537         <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
7538         requested; otherwise fail.
7539         (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
7540
7541 2007-04-06  Thomas Quinot  <quinot@adacore.com>
7542
7543         * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
7544         implementation of UI_Div.
7545         (UI_Div): Reimplement as a call to UI_Div_Rem.
7546         (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
7547         remainder, avoiding the cost of a multiplication and a subtraction.
7548         (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
7549         provides both quotient and remainder in a single computation.
7550         (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
7551         functions for uint.
7552         (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
7553         is undefined if the given n is not inversible.
7554
7555 2007-04-06  Olivier Hainque  <hainque@adacore.com>
7556
7557         * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
7558         BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
7559         opcodes.
7560
7561 2007-04-06  Eric Botcazou <botcazou@adacore.com>
7562             Olivier Hainque  <hainque@adacore.com>
7563
7564         * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
7565         when updating the contents of the old pointer to an unconstrained array.
7566         (end_subprog_body): Set error_gnat_node to Empty.
7567         (write_record_type_debug_info): Do not be unduly sparing with our bytes.
7568         (unchecked_convert): For subtype to base type conversions, require that
7569         the source be a subtype if it is an integer type.
7570         (builtin_decls): New global, vector of available builtin functions.
7571         (gnat_pushdecl): Add global builtin function declaration nodes to the
7572         builtin_decls list.
7573         (gnat_install_builtins): Adjust comments.
7574         (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
7575         calling gnat_pushdecl, so that it knows when it handed a builtin
7576         function declaration node.
7577         (builtin_decl_for): Search the builtin_decls list.
7578
7579 2007-04-06  Eric Botcazou <botcazou@adacore.com>
7580
7581         * s-stchop-vxworks.adb: 
7582         (Stack_Check): Raise Storage_Error if the argument has wrapped around.
7583
7584 2007-04-06  Robert Dewar  <dewar@adacore.com>
7585             Arnaud Charlet  <charlet@adacore.com>
7586
7587         * a-diroro.ads: Inserted the pragma Unimplemented_Unit
7588
7589         * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
7590         of files
7591         Add mention of -Sev (set initialize_scalars option from environment
7592         variable at run time) in gnatbind usage message.
7593
7594         * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
7595
7596         * fname-uf.ads: Minor comment fix
7597
7598         * osint.ads: Change pragma Elaborate to Elaborate_All
7599
7600         * par-load.adb: Add documentation.
7601
7602         * sem_cat.ads, sem_cat.adb: Minor code reorganization
7603
7604         * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
7605
7606         * s-secsta.ads: Extra comments
7607
7608         * s-soflin.ads: Minor comment fixes
7609
7610         * s-stratt.ads (Block_Stream_Ops_OK): Removed.
7611
7612         * s-wchcon.ads: Minor comment addition
7613
7614         * treepr.adb: Minor change in message
7615         (Print_Name,Print_Node): Make these debug printouts more robust: print
7616         "no such..." instead of crashing on bad input.
7617
7618 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
7619
7620         * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
7621         instead of gnat_signed_or_unsigned_type.
7622         * utils.c (gnat_signed_or_unsigned_type): Remove.
7623         * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
7624         * gigi.h (gnat_signed_or_unsigned_type): Remove
7625
7626 2007-03-09  Roger Sayle  <roger@eyesopen.com>
7627
7628         * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
7629         fold with the result of buildN.
7630         * decl.c (gnat_to_gnu_entity): Likewise.
7631         * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
7632         * utils.c (finish_record_type, merge_sizes, max_size, convert):
7633         Likewise.
7634         * utils2.c (gnat_truthvalue_conversion, compare_arrays,
7635         nonbinary_modular_operation, build_binary_op, build_unary_op,
7636         build_cond_expr): Likewise.
7637
7638         * utils.c (convert): Use fold_build1 when casting values to void.
7639         * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
7640         fold_convert instead of convert when appropriate.
7641
7642 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
7643
7644         * Make-lang.in: Add install-pdf target as copied from
7645         automake v1.10 rules.
7646
7647 2007-02-28  Andreas Schwab  <schwab@suse.de>
7648
7649         * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
7650         $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
7651         (doc/gnat-style.info): Likewise.
7652
7653 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
7654
7655         * gnat-style.texi: Standardize title page.
7656         * gnat_rm.texi: Likewise.
7657         * gnat_ugn.texi: Likewise.
7658
7659 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
7660
7661         * decl.c (annotate_value): Adjust for refactoring of tree_map
7662         hierarchy.
7663
7664 2007-02-24  Mark Mitchell  <mark@codesourcery.com>
7665
7666         * decl.c (annotate_value): Adjust for refactoring of tree_map
7667         hierarchy.
7668
7669 2007-02-21  Ed Schonberg  <schonberg@adacore.com>
7670
7671         PR ada/18819
7672         * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
7673         untagged derived type, add hidden components to keep discriminant
7674         layout consistent, when a given discriminant of the derived type
7675         constraints several discriminants of the parent type.
7676
7677 2007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
7678             Sandra Loosemore  <sandra@codesourcery.com>
7679
7680         * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
7681         build the call expression.
7682         (gnat_stabilize_reference_1): Handle tcc_vl_exp.
7683         * utils.c (max_size) <tcc_exceptional>: Delete.
7684         <tcc_vl_exp>: New case.
7685         <tcc_expression>: Delete CALL_EXPR subcase.
7686         (build_global_cdtor): Use build_call_nary instead of build3.
7687         * utils2.c (build_call_1_expr): Likewise.
7688         (build_call_2_expr): Likewise.
7689         (build_call_0_expr): Likewise.
7690         (build_call_alloc_dealloc): Likewise.
7691
7692 2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
7693
7694         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
7695         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
7696         and _Unwind_SWord with _sleb128_t.
7697
7698 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
7699
7700         * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
7701         * decl.c: Include gt-ada-decl.h.
7702         (annotate_value_cache): New.
7703         (annotate_value): Use it instead of TREE_COMPLEXITY.
7704
7705 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
7706
7707         * misc.c, utils2.c: Fix comment typos.
7708
7709 2007-01-24  Roger Sayle  <roger@eyesopen.com>
7710
7711         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
7712         TREE_CONSTANT_OVERFLOW.
7713         (allocatable_size_p, annotate_value): Likewise.
7714         * trans.c (gnat_to_gnu): Likewise.
7715         * utils.c (unchecked_convert): Likewise.
7716         * utils2.c (build_simple_component_ref): Likewise.
7717
7718 2007-01-23  Richard Guenther  <rguenther@suse.de>
7719
7720         PR bootstrap/30541
7721         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
7722         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
7723         (gnatboot3): Likewise.
7724         (GNATBIND): Do not define.
7725         * Makefile.in (GNATBIND): Do not define.
7726
7727 2007-01-08  Richard Guenther  <rguenther@suse.de>
7728
7729         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
7730         * trans.c (gnat_to_gnu): Likewise.
7731
7732 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
7733
7734         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
7735         * adaint.c: Likewise.
7736
7737 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
7738
7739         Merge from gimple-tuples-branch:
7740         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
7741
7742         * ada-tree.h (lang_tree_node): Handle gimple tuples.
7743         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
7744         GIMPLE_MODIFY_STMT.
7745
7746 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
7747
7748         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
7749         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
7750         Fix typos.
7751
7752 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
7753
7754         PR ada/27936
7755         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
7756         if the initializer takes into account the padding.
7757
7758 2006-11-11  Richard Guenther  <rguenther@suse.de>
7759
7760         * trans.c (maybe_stabilize_reference): Remove handling of
7761         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
7762
7763 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
7764
7765         PR ada/29707
7766         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
7767         (To_Target_Priority): New function.
7768
7769 2006-10-31  Robert Dewar  <dewar@adacore.com>
7770
7771         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
7772         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
7773         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
7774         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
7775         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
7776         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
7777         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
7778         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
7779         a-szbzha.adb: Minor reformatting. Fix header.
7780
7781         * a-numaux-x86.adb: Add parentheses for use of unary minus
7782         * a-ngcefu.adb: Supply missing parentheses for unary minus
7783         * a-ngcoty.adb: Add parens for use of unary minus
7784         * a-ngelfu.adb: Add missing parens for unary minus
7785         * a-tifiio.adb: Add parentheses for uses of unary minus
7786
7787 2006-10-31  Robert Dewar  <dewar@adacore.com>
7788             Bob Duff  <duff@adacore.com>
7789             Ed Schonberg  <schonberg@adacore.com>
7790
7791         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
7792         with multiplying operator.
7793         (Expected_Type_Is_Any_Real): New function to determine from the Parent
7794         pointer whether the context expects "any real type".
7795         (Resolve_Arithmetic_Op): Do not give an error on calls to the
7796         universal_fixed "*" and "/" operators when they are used in a context
7797         that expects any real type. Also set the type of the node to
7798         Universal_Real in this case, because downstream processing requires it
7799         (mainly static expression evaluation).
7800         Reword some continuation messages
7801         Add some \\ sequences to continuation messages
7802         (Resolve_Call): Refine infinite recursion case. The test has been
7803         sharpened to eliminate some false positives.
7804         Check for Current_Task usage now includes entry barrier, and is now a
7805         warning, not an error.
7806         (Resolve): If the call is ambiguous, indicate whether an interpretation
7807         is an inherited operation.
7808         (Check_Aggr): When resolving aggregates, skip associations with a box,
7809         which are priori correct, and will be replaced by an actual default
7810         expression in the course of expansion.
7811         (Resolve_Type_Conversion): Add missing support for conversion from
7812         a class-wide interface to a tagged type. Minor code cleanup.
7813         (Valid_Tagged_Converion): Add support for abstact interface type
7814         conversions.
7815         (Resolve_Selected_Component): Call Generate_Reference here rather than
7816         during analysis, and use May_Be_Lvalue to distinguish read/write.
7817         (Valid_Array_Conversion): New procedure, abstracted from
7818         Valid_Conversion, to incorporate accessibility checks for arrays of
7819         anonymous access types.
7820         (Valid_Conversion): For a conversion to a numeric type occurring in an
7821         instance or inlined body, no need to check that the operand type is
7822         numeric, since this has been checked during analysis of the template.
7823         Remove legacy test for scope name Unchecked_Conversion.
7824
7825         * sem_res.ads: Minor reformatting
7826
7827         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
7828         (PE_Current_Task_In_Entry_Body): New exception code
7829         (SE_Restriction_Violation): Removed, not used
7830
7831         * a-except.ads:  Update comments.
7832
7833         * types.h, types.ads: Add definition for Validity_Check
7834         (PE_Current_Task_In_Entry_Body): New exception code
7835         (SE_Restriction_Violation): Removed, not used
7836
7837 2006-10-31  Thomas Quinot  <quinot@adacore.com>
7838
7839         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
7840         error status.
7841
7842 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
7843             Jose Ruiz  <ruiz@adacore.com>
7844
7845         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
7846         part of Ada.Calendar: all subprogram raise Unimplemented.
7847         (Split_W_Offset): Temp function body, raising Unimplemented
7848
7849         * a-calend.ads, a-calend-vms.ads: 
7850         Add imported variable Invalid_TZ_Offset used to designate targets unable
7851         to support time zones.
7852         (Unimplemented): Temporary function raised by the body of new
7853         subprograms below.
7854         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
7855         unit provides handling of leap seconds and is used by the new Ada 2005
7856         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
7857         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
7858         version returns an extra value which is the offset to UTC.
7859
7860         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
7861         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
7862         (Split_W_Offset): New function body.
7863         (Time_Of): When a date is close to UNIX epoch, compute the time for
7864         that date plus one day (that amount is later substracted after
7865         executing mktime) so there are no problems with time zone adjustments.
7866
7867         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
7868
7869         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
7870         a-catizo.ads, a-catizo.adb: New files.
7871
7872         * impunit.adb: Add new Ada 2005 entries
7873
7874         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
7875         Rename all occurences of "__gnat_localtime_r" to
7876         "__gnat_localtime_tzoff".
7877         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
7878         zone data and calculate the GMT offset.
7879         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
7880         Use the field "tm_gmtoff" to extract the GMT offset.
7881         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
7882         the external variable "timezone" to calculate the GMT offset.
7883
7884 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
7885             Jose Ruiz  <ruiz@adacore.com>
7886
7887         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb, 
7888         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads, 
7889         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
7890         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
7891         System.Any_Priority to a POSIX priority on the target.
7892
7893         * system-linux-ia64.ads: 
7894         Extend range of Priority types on Linux to use the whole range made
7895         available by the system.
7896
7897         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
7898         function maps from System.Any_Priority to a POSIX priority on the
7899         target.
7900         (PTHREAD_PRIO_PROTECT): Set real value.
7901         (PTHREAD_PRIO_INHERIT): Now a function.
7902         (SIGCPUFAIL): New signal.
7903         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
7904         are documented as reserved by the OS.
7905
7906         * system-aix.ads: Use the full range of priorities provided by the
7907         system on AIX.
7908
7909         * s-taprop-posix.adb: Call new function To_Target_Priority.
7910         (Set_Priority): Take into account Task_Dispatching_Policy and
7911         Priority_Specific_Dispatching pragmas when determining if Round Robin
7912         must be used for scheduling the task.
7913
7914         * system-linux-x86_64.ads, system-linux-x86.ads, 
7915         system-linux-ppc.ads: Extend range of Priority types on Linux to use
7916         the whole range made available by the system.
7917
7918         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb, 
7919         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb, 
7920         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
7921         when deallocating the TCB in order to avoid potential references to
7922         deallocated data.
7923         (Set_Priority): Take into account Task_Dispatching_Policy and
7924         Priority_Specific_Dispatching pragmas when determining if Round Robin
7925         or FIFO within priorities must be used for scheduling the task.
7926
7927         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
7928         the Thread field (to be used internally by the run-time system) and the
7929         kernel-level task id in the LWP field (to be used by the debugger).
7930         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
7931         instance, and propagate the current task options to the spawned task.
7932         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
7933         (Initialize): Set Round Robin dispatching when the corresponding pragma
7934         is in effect.
7935
7936 2006-10-31  Robert Dewar  <dewar@adacore.com>
7937
7938         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
7939         system-linux-hppa.ads, system-hpux-ia64.ads, 
7940         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads, 
7941         system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
7942         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
7943         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads, 
7944         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
7945         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
7946         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
7947         Default_Bit_Order) to kill constant condition warnings for references
7948         to this switch.
7949
7950 2006-10-31  Vincent Celier  <celier@adacore.com>
7951             Eric Botcazou  <ebotcazou@adacore.com>
7952
7953         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
7954         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
7955         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
7956         Ext_To, when building the library file name
7957
7958         * mlib-tgt-vxworks.adb: ditto.
7959         (Get_Target_Suffix): Add support for x86 targets.
7960
7961         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
7962
7963         * mlib-tgt-darwin.adb: 
7964         Use Append_To, instead of Ext_To, when building the library file name
7965         (Flat_Namespace): New global variable.
7966         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
7967         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
7968         (Link_Shared_Libgcc): Delete.
7969         (Build_Dynamic_Library): Adjust for above changes.
7970         Use Opt package.
7971         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
7972
7973 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
7974
7975         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
7976         (Initialize): Add type conversions required by above change.
7977
7978 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
7979
7980         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
7981         (getpid): New body for this function that uses the underlying taskIdSelf
7982         function for VxWorks 5 and VxWorks 6 in kernel mode.
7983         (unsigned_int): New type, modular to allow logical bit operations.
7984         (taskOptionsGet): New imported function.
7985
7986         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
7987         field to be compliant with the type used by the corresponding operating
7988         system primitive.
7989
7990 2006-10-31  Pascal Obry  <obry@adacore.com>
7991             Eric Botcazou  <ebotcazou@adacore.com>
7992             Vincent Celier  <celier@adacore.com>
7993
7994         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
7995         ASCII version of the registry API. This is needed as the GNAT runtime
7996         is now UNICODE by default.
7997         Include version.h.
7998         (get_gcc_version): Do not hardcode the return value.
7999         (__gnat_file_time_name): On Windows properly set the default returned
8000         value to -1 which corresponds to Invalid_Time.
8001         (__gnat_fopen): New routine. A simple wrapper on all plateforms
8002          except on Windows where it does conversion for unicode support.
8003         (__gnat_freopen): Idem.
8004         (__gnat_locate_exec_on_path): If environment variable PATH does not
8005         exist, return a NULL pointer
8006
8007         * adaint.h: (__gnat_fopen): Declare.
8008         (__gnat_freopen): Likewise.
8009
8010         * mingw32.h (_tfreopen): Define this macro here for older MingW
8011         version.
8012         Activate the unicode support on platforms using a MingW runtime
8013         version 3.9 or newer.
8014
8015         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
8016         This is needed for proper unicode support on Windows.
8017         (freopen): Idem.
8018
8019 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
8020             Nicolas Setton  <setton@adacore.com>
8021             Olivier Hainque  <hainque@adacore.com>
8022             Gary Dismukes  <dismukes@adacore.com>
8023
8024         * gigi.h: (tree_code_for_record_type): Declare.
8025         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
8026         (get_global_renaming_pointers): Rename to
8027         invalidate_global_renaming_pointers.
8028         (static_ctors): Delete.
8029         (static_dtors): Likewise.
8030         (gnat_write_global_declarations): Declare.
8031         (create_var_decl): Adjust descriptive comment to indicate that the
8032         subprogram may return a CONST_DECL node.
8033         (create_true_var_decl): Declare new function, similar to
8034         create_var_decl but forcing the creation of a VAR_DECL node.
8035         (get_global_renaming_pointers): Declare.
8036         (add_global_renaming_pointer): Likewise.
8037
8038         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
8039
8040         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
8041         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
8042         processing.
8043         (gnat_to_gnu_entity): Remove From_With_Type from computation for
8044         imported_p.
8045         <E_Access_Type>: Use the Non_Limited_View as the full view of the
8046         designated type if the pointer comes from a limited_with clause.  Make
8047         incomplete designated type if it is in the main unit and has a freeze
8048         node.
8049         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
8050         Underlying_Full_View similarly.  Return earlier if the full view already
8051         has an associated tree.
8052         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
8053         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
8054         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
8055         reference type built for objects with an address clause.
8056         Use create_true_var_decl with const_flag set for
8057         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
8058         TREE_READONLY set.
8059         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
8060         for Character and Wide_Character types. This info is read by the
8061         dwarf-2 writer, and is needed to be able to use the command "ptype
8062         character" in the debugger.
8063         (gnat_to_gnu_entity): When generating a type representing
8064         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
8065         so that debug writers can distinguish it from ordinary integers.
8066         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
8067         addition to TREE_READONLY to assert the constantness of variables for
8068         elaboration purposes.
8069         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
8070         parameters to call new Einfo function First_Formal_With_Extras.
8071         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
8072         protected type with its corresponding discriminant, to obtain a usable
8073         declaration
8074         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
8075         for a multiple elaboration of the "equivalent" type.
8076         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
8077         into record_global_renaming_pointer.
8078         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
8079         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
8080         <E_Array_Subtype>: Likewise.
8081         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
8082         incomplete subtypes and incomplete subtypes of incomplete types visible
8083         through a limited with clause.
8084         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
8085         the base index type for the maximum size of the array only if they are
8086         constant.
8087         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
8088         expression into a SAVE_EXPR if stabilization failed.
8089
8090         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
8091         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
8092         by lower level compilation passes.
8093         (gnat_genericize): New function, lowering a function body to GENERIC.
8094         Turn the type of RESULT_DECL into a real reference type if the decl
8095         has been marked DECL_BY_REFERENCE, and adjust references to the latter
8096         accordingly.
8097         (gnat_genericize_r): New function. Tree walking callback for
8098         gnat_genericize.
8099         (convert_from_reference, is_byref_result): New functions. Helpers for
8100         gnat_genericize_r.
8101         (create_type_decl): Call gnat_pushdecl before calling
8102         rest_of_decl_compilation, to make sure that field TYPE_NAME of
8103         type_decl is properly set before calling the debug information writers.
8104         (write_record_type_debug_info): The heuristics which compute the
8105         alignment of a field in a variant record might not be accurate. Add a
8106         safety test to make sure no alignment is set to a smaller value than
8107         the alignment of the field type.
8108         (make_dummy_type): Use the Non_Limited_View as the underlying type if
8109         the type comes from a limited_with clause. Do not loop on the full view.
8110         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
8111         (dummy_node_table): New global variable, moved from decl.c.
8112         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
8113         (save_gnu_tree): Use above macros.
8114         (get_gnu_tree): Likewise.
8115         (present_gnu_tree): Likewise.
8116         (init_dummy_type): New function, moved from decl.c. Use above macros.
8117         (make_dummy_type): Likewise.
8118         (tree_code_for_record_type): New function extracted from make_dummy_type
8119         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
8120         (static_ctors): Change it to a vector, make static.
8121         (static_dtors): Likewise.
8122         (end_subprog_body): Adjust for above change.
8123         (build_global_cdtor): Moved from trans.c.
8124         (gnat_write_global_declarations): Emit global constructor and
8125         destructor, and call cgraph_optimize before emitting debug info for
8126         global declarations.
8127         (global_decls): New global variable.
8128         (gnat_pushdecl): Store the global declarations in global_decls, for
8129         later use.
8130         (gnat_write_global_declarations): Emit debug information for global
8131          declarations.
8132         (create_var_decl_1): Former create_var_decl, with an extra argument to
8133          state whether the creation of a CONST_DECL is allowed.
8134         (create_var_decl): Behavior unchanged. Now a wrapper around
8135         create_var_decl_1 allowing CONST_DECL creation.
8136         (create_true_var_decl): New function, similar to create_var_decl but
8137         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
8138         (create_field_decl): Do not always mark the field as addressable
8139         if its type is an aggregate.
8140         (global_renaming_pointers): New static variable.
8141         (add_global_renaming_pointer): New function.
8142         (get_global_renaming_pointers): Likewise.
8143
8144         * misc.c (gnat_dwarf_name): New function.
8145         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
8146         (gnat_post_options): Add comment about structural alias analysis.
8147         (gnat_parse_file): Do not call cgraph_optimize here.
8148         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
8149
8150         * trans.c (process_freeze_entity): Don't abort if we already have a
8151         non dummy GCC tree for a Concurrent_Record_Type, as it might
8152         legitimately have been elaborated while processing the associated
8153         Concurrent_Type prior to this explicit freeze node.
8154         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
8155         exception handler volatile if it is of variable size.
8156         (process_type): Remove bypass for types coming from a limited_with
8157         clause.
8158         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
8159         actual, convert the corresponding gnu_actual to the real destination
8160         type when necessary.
8161         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
8162         originally TREE_READONLY but whose elaboration cannot be performed
8163         statically.
8164         Part of fix for F504-021.
8165         (tree_transform, subprogram cases): Change loops on formal parameters to
8166         call new Einfo function First_Formal_With_Extras.
8167         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
8168         stemming from type conversion for the lhs.
8169         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
8170         number of bits per unit for components of records.
8171         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
8172         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
8173         with At_End_Proc after the SJLJ EH cleanup.
8174         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
8175         compilation unit.
8176         (elaborate_all_entities): Do not retest type_annotate_only.
8177         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
8178         result type of an abstract subprogram, which may be an itype associated
8179         with an anonymous access result (related to AI-318-02).
8180         (build_global_cdtor): Move to utils.c.
8181         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
8182         this choice is not a null tree nor an integer constant.
8183         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
8184         on the body of elaboration routines instead of mark_unvisited.
8185         (add_stmt): Do not mark the tree.
8186         (add_decl_expr): Tweak comment.
8187         (mark_unvisited): Delete.
8188         (unshare_save_expr): New static function.
8189         (call_to_gnu): Issue an error when making a temporary around a
8190         procedure call because of non-addressable actual parameter if the
8191         type of the formal is by_reference.
8192         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
8193         after building the elaboration routine.
8194
8195 2006-10-31  Bob Duff  <duff@adacore.com>
8196
8197         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
8198         as finalization-started, so we can raise Program_Error on 'new'.
8199
8200         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
8201         collection has already started.
8202
8203         * s-finimp.ads (Collection_Finalization_Started): Added new special
8204         flag value for indicating that a collection's finalization has started.
8205
8206         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
8207         create a task whose master has already waited for dependent tasks.
8208
8209 2006-10-31  Robert Dewar  <dewar@adacore.com>
8210
8211         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
8212
8213         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads, 
8214         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads, 
8215         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads, 
8216         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads, 
8217         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads, 
8218         a-except-2005.ads: Add pragma Preelaborable_Warning
8219
8220 2006-10-31  Robert Dewar  <dewar@adacore.com>
8221             Jose Ruiz  <ruiz@adacore.com>
8222
8223         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
8224
8225         * ali.adb (Get_Name): Properly handle scanning of wide character names
8226         encoded with brackets notation.
8227         (Known_ALI_Lines): Add S lines to this list.
8228         (Scan_ALI): Acquire S (priority specific dispatching) lines.
8229         New flag Elaborate_All_Desirable in unit table
8230
8231         * ali.ads (Priority_Specific_Dispatching): Add this range of
8232         identifiers to be used for Priority_Specific_Dispatching table entries.
8233         (ALIs_Record): Add First_Specific_Dispatching and
8234         Last_Specific_Dispatching that point to the first and last entries
8235         respectively in the priority specific dispatching table for this unit.
8236         (Specific_Dispatching): Add this table for storing each S (priority
8237         specific dispatching) line encountered in the input ALI file.
8238         New flag Elaborate_All_Desirable in unit table
8239
8240         * bcheck.adb: (Check_Configuration_Consistency): Add call to
8241         Check_Consistent_Dispatching_Policy.
8242         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
8243         verifying that the use of Priority_Specific_Dispatching,
8244         Task_Dispatching_Policy, and Locking_Policy is consistent across the
8245         partition.
8246
8247         * bindgen.adb: (Public_Version_Warning): function removed.
8248         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
8249         required information from ALI files in order to initialize the table
8250         containing the specific dispatching policy.
8251         (Gen_Adainit_Ada): Generate the variables required for priority specific
8252         dispatching entries (__gl_priority_specific_dispatching and
8253         __gl_num_specific_dispatching).
8254         (Gen_Adainit_C): Generate the variables required for priority specific
8255         dispatching entries (__gl_priority_specific_dispatching and
8256         __gl_num_specific_dispatching).
8257         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
8258         pragma entries.
8259         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
8260         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
8261         (Tab_To): Removed.
8262         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
8263         a call to gnat_set_globals.
8264         Generate a string containing settings from
8265         Priority_Specific_Dispatching pragma entries.
8266         (Gen_Object_Files_Options): Do not include the runtime libraries when
8267         pragma No_Run_Time is specified.
8268
8269         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
8270         consistency with s-intman-posix.adb.
8271         (__gnat_error_handler, case FreeBSD): Account for the fact that the
8272         handler is installed with SA_SIGINFO.
8273         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
8274         FreeBSD ZCX support, copied from Linux version.
8275         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
8276         sigfillset, and sigemptyset so the routines defined by MaRTE.
8277         (__gl_priority_specific_dispatching): Add this variable that stores the
8278         string containing priority specific dispatching policies in the
8279         partition.
8280         (__gl_num_specific_dispatching): Add this variable that indicates the
8281         highest priority for which a priority specific dispatching pragma
8282         applies.
8283         (__gnat_get_specific_dispatching): Add this routine that returns the
8284         priority specific dispatching policy, as set by a
8285         Priority_Specific_Dispatching pragma appearing anywhere in the current
8286         partition. The input argument is the priority number, and the result
8287         is the upper case first character of the policy name.
8288         (__gnat_set_globals): Now a dummy function.
8289         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
8290         mechargs instead of sigargs, as the latter can be retrieved from the
8291         former and sigargs is not what we want on ia64.
8292         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
8293         mechargs argument.
8294         (__gnat_adjust_context_for_raise, ia64-vms): New function.
8295         (tasking_error): Remove unused symbol.
8296         (_abort_signal): Move this symbol to the IRIX specific part since this
8297         is the only target that uses this definition.
8298         (Check_Abort_Status): Move this symbol to the IRIX specific part since
8299         this is the only target that uses this definition.
8300         (Lock_Task): Remove unused symbol.
8301         (Unlock_Task): Remove unused symbol.
8302
8303         * lib-writ.adb (Write_ALI): Output new S lines for
8304         Priority_Specific_Dispatching pragmas.
8305         Implement new flag BD for elaborate body desirable
8306
8307         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
8308         (Specific_Dispatching): Add this table for storing the entries
8309         corresponding to Priority_Specific_Dispatching pragmas.
8310         Document new BD flag for elaborate body desirable
8311
8312         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
8313         of known pragmas.
8314
8315 2006-10-31  Javier Miranda  <miranda@adacore.com>
8316
8317         * a-tags.ads, a-tags.adb: 
8318         (Predefined_DT): New function that improves readability of the code.
8319         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
8320         Inherit_DT): Use the new function Predefined_DT to improve code
8321         readability.
8322         (Register_Interface_Tag): Update assertion.
8323         (Set_Interface_Table): Update assertion.
8324         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
8325         determining progenitor interfaces in Tags.
8326         (Inherit_CPP_DT): New subprogram.
8327
8328         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
8329         analysis of the thunk code.
8330         (Expand_Interface_Conversion): Handle run-time conversion of
8331         access to class wide types.
8332         (Expand_Dispatching_Call): When generating the profile for the
8333         subprogram itype for a dispatching operation, properly terminate the
8334         formal parameters chaind list (set the Next_Entity of the last formal
8335         to Empty).
8336         (Collect_All_Interfaces): Removed. This routine has been moved to
8337         sem_util and renamed as Collect_All_Abstract_Interfaces.
8338         (Set_All_DT_Position): Hidden entities associated with abstract
8339         interface primitives are not taken into account in the check for
8340         3.9.3(10); this check is done with the aliased entity.
8341         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
8342         interfacing with CPP by default.
8343         (Expand_Interface_Conversion): Add missing support for static conversion
8344         from an interface to a tagged type.
8345         (Collect_All_Interfaces): Add new out formal containing the list of
8346         abstract interface types to cleanup the subprogram Make_DT.
8347         (Make_DT): Update the code to generate the table of interfaces in case
8348         of abstract interface types.
8349         (Is_Predefined_Dispatching_Alias): New function that returns true if
8350         a primitive is not a predefined dispatching primitive but it is an
8351         alias of a predefined dispatching primitive.
8352         (Make_DT): If the ancestor of the type is a CPP_Class and we are
8353         compiling under full ABI compatibility mode we avoid the generation of
8354         calls to run-time services that fill the dispatch tables because under
8355         this mode we currently inherit the dispatch tables in the IP subprogram.
8356         (Write_DT): Emit an "is null" indication for a null procedure primitive.
8357         (Expand_Interface_Conversion): Use an address as the type of the formal
8358         of the internally built function that handles the case in which the
8359         target type is an access type.
8360
8361 2006-10-31  Robert Dewar  <dewar@adacore.com>
8362
8363         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
8364
8365 2006-10-31  Robert Dewar  <dewar@adacore.com>
8366
8367         * bindusg.ads, bindusg.adb:
8368         Change to package and rename procedure as Display, which
8369         now ensures that it only outputs usage information once.
8370
8371 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
8372
8373         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
8374         using RTPs.
8375
8376         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
8377         when using RTPs.
8378
8379 2006-10-31  Robert Dewar  <dewar@adacore.com>
8380             Ed Schonberg  <schonberg@adacore.com>
8381
8382         * treepr.adb: Use new subtype N_Membership_Test
8383
8384         * checks.ads, checks.adb: Add definition for Validity_Check
8385         (Range_Or_Validity_Checks_Suppressed): New function
8386         (Ensure_Valid): Test Validity_Check suppressed
8387         (Insert_Valid_Check): Test Validity_Check suppressed
8388         (Insert_Valid_Check): Preserve Do_Range_Check flag
8389         (Validity_Check_Range): New procedure
8390         (Expr_Known_Valid): Result of membership test is always valid
8391         (Selected_Range_Checks): Range checks cannot be applied to discriminants
8392         by themselves. Disabling those checks must also be done for task types,
8393         where discriminants may be used for the bounds of entry families.
8394         (Apply_Address_Clause_Check): Remove side-effects if address expression
8395         is non-static and is not the name of a declared constant.
8396         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
8397         Code cleanup and new error messages.
8398         (Enable_Range_Check): Test for some cases of suppressed checks
8399         (Generate_Index_Checks): Suppress index checks if index checks are
8400         suppressed for array object or array type.
8401         (Apply_Selected_Length_Checks): Give warning for compile-time detected
8402         length check failure, even if checks are off.
8403         (Ensure_Valid): Do not generate a check on an indexed component whose
8404         prefix is a packed boolean array.
8405         * checks.adb: (Alignment_Checks_Suppressed): New function
8406         (Apply_Address_Clause_Check): New procedure, this is a completely
8407         rewritten replacement for Apply_Alignment_Check
8408         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
8409         we request a discriminal value only in case of discriminants.
8410         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
8411         assignments where the target subtype is unconstrained and the target
8412         object is a parameter or dereference (other aliased cases are known
8413         to be unconstrained).
8414
8415 2006-10-31  Robert Dewar  <dewar@adacore.com>
8416
8417         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
8418         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
8419         vms_conv.adb: Fix bad table increment values (much too small)
8420
8421         * table.adb (Realloc): Make sure we get at least some new elements
8422         Defends against silly small values for table increment
8423
8424 2006-10-31  Robert Dewar  <dewar@adacore.com>
8425             Ed Schonberg  <schonberg@adacore.com>
8426             Bob Duff  <duff@adacore.com>
8427
8428         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
8429         entities. Move other fields around to make this possible
8430         (Is_Derived_Type): Add missing call to Is_Type.
8431         (Extra_Formals): New function for subprograms, entries, subprogram
8432         types.
8433         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
8434         (First_Formal_With_Extras): New function for subprogs, entries, subp
8435         types.
8436         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
8437         Add node information for E_Return_Statement.
8438         (Elaborate_Body_Desirable): New flag
8439         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
8440         to be Is_Inherently_Limited_Type, because return-by-reference has
8441         no meaning in Ada 2005.
8442         (E_Return_Statement): New entity kind.
8443         (Return_Applies_To): Field of E_Return_Statement.
8444         (Is_Return_Object): New flag in object entities.
8445         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
8446         (Must_Have_Preelab_Init): New flag
8447         (Known_To_Have_Preelab_Init): New flag
8448         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
8449         (Is_Visible_Formal): New flag on entities in formal packages.
8450         (Low_Bound_Known): New flag
8451         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
8452         Incomplete_Kind.
8453         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
8454         output when Id is an incomplete subtype.
8455
8456 2006-10-31  Robert Dewar  <dewar@adacore.com>
8457
8458         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
8459         Avoid abbreviation Creat
8460         (Finalize): List all sources in extended mail source if -gnatl
8461         switch is active.
8462         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
8463         (Finalize): Implement new -gnatl=xxx switch to output listing to file
8464         (Set_Specific_Warning_On): New procedure
8465         (Set_Specific_Warning_Off): New procedure
8466         Add implementation of new insertion \\
8467         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
8468         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
8469         types.
8470         (Error_Msg_Internal): Make sure that we set Last_Killed to
8471         True when a message from another package is suppressed.
8472         Implement insertion character ~ (insert string)
8473         (First_Node): Minor adjustments to get better placement.
8474
8475         * frontend.adb: 
8476         Implement new -gnatl=xxx switch to output listing to file
8477
8478         * gnat1drv.adb: 
8479         Implement new -gnatl=xxx switch to output listing to file
8480
8481         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
8482         (Commands_To_Stdout): New flag
8483         Implement new -gnatl=xxx switch to output listing to file
8484         New switch Dump_Source_Text
8485         (Warn_On_Deleted_Code): New warning flag for -gnatwt
8486         Define Error_Msg_Line_Length
8487         (Warn_On_Assumed_Low_Bound): New switch
8488
8489         * osint.ads, osint.adb
8490         (Normalize_Directory_Name): Fix bug.
8491         Implement new -gnatl=xxx switch to output listing to file
8492         (Concat): Removed, replaced by real concatenation
8493         Make use of concatenation now allowed in compiler
8494         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
8495         we find the 'lib' or 'bin' directory even when the tool has been
8496         invoked with a relative path.
8497         (Executable_Name): New function taking string parameters.
8498
8499         * osint-c.ads, osint-c.adb: 
8500         Implement new -gnatl=xxx switch to output listing to file
8501
8502         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
8503
8504         * switch-c.adb: 
8505         Implement new -gnatl=xxx switch to output listing to file
8506         Recognize new -gnatL switch
8507         (no longer keep in old warning about old style usage)
8508         Use concatenation to simplify code
8509         Recognize -gnatjnn switch
8510         (Scan_Front_End_Switches): Clean up handling of -gnatW
8511         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
8512
8513 2006-10-31  Robert Dewar  <dewar@adacore.com>
8514
8515         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
8516         (Set_Specific_Warning_Off): New procedure
8517         (Warning_Specifically_Suppressed): New function
8518         (Validate_Specific_Warnings): New procedure
8519         (Output_Msg_Text): Complete rewrite to support -gnatjnn
8520
8521         * err_vars.ads: Implement insertion character ~ (insert string)
8522
8523 2006-10-31  Bob Duff  <duff@adacore.com>
8524             Ed Schonberg  <schonberg@adacore.com>
8525
8526         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
8527         the parent part is a build-in-place function call, generate assignments.
8528         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
8529         are build-in-place function calls.
8530         (Replace_Self_Reference): New subsidiary of
8531         Make_OK_Assignment_Statement, to replace an access attribute that is a
8532         self-reference into an access to the appropriate component of the
8533         target object. Generalizes previous mechanism to handle self-references
8534         nested at any level.
8535         (Is_Self_Referential_Init): Remove, not needed.
8536         (Is_Self_Referential_Init): New predicate to simplify handling of self
8537         referential components in record aggregates.
8538         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
8539         check for presence of entity before checking for self-reference.
8540         (Has_Default_Init_Comps): Return True if a component association is a
8541         self-reference to the enclosing type, which can only come from a
8542         default initialization.
8543         (Make_OK_Assignment_Statement): If the expression is of the form
8544         Typ'Acc, where Acc is an access attribute, the expression comes from a
8545         default initialized self-referential component.
8546         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
8547         that has been derived from several abstract interfaces we must also
8548         initialize the tags of the secondary dispatch tables.
8549
8550 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
8551             Thomas Quinot  <quinot@adacore.com>
8552             Javier Miranda  <miranda@adacore.com>
8553             Robert Dewar  <dewar@adacore.com>
8554
8555         * exp_attr.adb: 
8556         (Expand_Access_To_Protected_Op): If the context indicates that an access
8557         to a local operation may be transfered outside of the object, create an
8558         access to the wrapper operation that must be used in an external call.
8559         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
8560         target, pass the Valid attribute applied to a floating-point prefix on
8561         to the back end without expansion.
8562         (Storage_Size): Use the new run-time function Storage_Size to retrieve
8563         the allocated storage when it is specified by a per-object expression.
8564         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
8565         Nothing to do here, the attribute has been rewritten during semantic
8566         analysis.
8567         (Expand_Attribute_Reference): Handle expansion of the new Priority
8568         attribute
8569         (Find_Fat_Info): Handle case of universal real
8570         (Expand_Access_To_Protected_Op): Fix use of access to protected
8571         subprogram from inside the body of a protected entry.
8572         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
8573         'Access and 'Unrestricted_Access, to transform the attribute reference
8574         into a fat pointer.
8575         (Is_Constrained_Aliased_View): New predicate to help determine whether a
8576         subcomponent's enclosing variable is aliased with a constrained subtype.
8577         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
8578         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
8579         an aliased prefix must be known to be constrained in order to use True
8580         for the attribute value, and now it's possible for some aliased views
8581         to be unconstrained.
8582
8583 2006-10-31  Robert Dewar  <dewar@adacore.com>
8584
8585         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
8586         (Expand_Entity_Reference): Correct error of not handling subprogram
8587         formals in current_value processing.
8588
8589 2006-10-31  Javier Miranda  <miranda@adacore.com>
8590             Robert Dewar  <dewar@adacore.com>
8591             Ed Schonberg  <schonberg@adacore.com>
8592             Gary Dismukes  <dismukes@adacore.com>
8593
8594         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
8595         register in the final list objects containing class-wide interfaces;
8596         otherwise we incorrectly register the tag of the interface in the final
8597         list.
8598         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
8599         generate the wrapper if the parent primitive is abstract. This is
8600         required to report the correct error message.
8601         (Expand_N_Subtype_Indication): Do validity checks on range
8602         (Clean_Task_Names): If an initialization procedure includes a call to
8603         initialize a task (sub)component, indicate that the procedure will use
8604         the secondary stack.
8605         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
8606         compatibility for interfacing with CPP by default.
8607         (Expand_N_Object_Declaration): Only build an Adjust call when the
8608         object's type is a nonlimited controlled type.
8609         * exp_ch3.adb: Add with and use of Exp_Ch6.
8610         (Expand_N_Object_Declaration): Check for object initialization that is a
8611         call to build-in-place function and apply Make_Build_In_Place_Call_In_
8612         Object_Declaration to the call.
8613         (Freeze_Type): When the designated type of an RACW was not frozen at the
8614         point where the RACW was declared, validate the primitive operations
8615         with respect to E.2.2(14) when it finally is frozen.
8616         (Build_Initialization_Call,Expand_Record_Controller): Rename
8617         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
8618         return-by-reference has no meaning in Ada 2005.
8619         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
8620         to register tag of the immediate ancestor interfaces in the
8621         run-time structure.
8622         (Init_Secondary_Tags): Moved to the specification to allow the
8623         initialization of extension aggregates with abstract interfaces.
8624         (Build_Master_Renaming): Make public, for use by function declarations
8625         whose return type is an anonymous access type.
8626         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
8627         Insert_List_Before_And_Analyze after the generation of the specs
8628         associated with null procedures.
8629         (Expand_Tagged_Root): Update documentation in its specification.
8630         (Init_Secondary_Tags): Update documentation.
8631         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
8632         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
8633         then generate code to inherit the contents of the dispatch table
8634         directly from the ancestor.
8635         (Expand_Record_Controller): Insert controller component after tags of
8636         implemented interfaces.
8637         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
8638         create null procedure overridings when null procedures are inherited
8639         from interfaces.
8640         (Make_Null_Procedure_Specs): New procedure to generate null procedure
8641         declarations for overriding null primitives inherited from interfaces.
8642         (Is_Null_Interface_Procedure): New function in
8643         Make_Null_Procedure_Specs.
8644         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
8645         immediate ancestor of a tagged type is an abstract interface type we
8646         must generate the specification of the predefined primitives associated
8647         with controlled types (because the dispatch table of the ancestor is
8648         null and hence these entries cannot be inherited). This is required to
8649         elaborate well the dispatch table.
8650
8651 2006-10-31  Javier Miranda  <miranda@adacore.com>
8652             Ed Schonberg  <schonberg@adacore.com>
8653             Bob Duff  <duff@adacore.com>
8654             Gary Dismukes  <dismukes@adacore.com>
8655             Robert Dewar  <dewar@adacore.com>
8656
8657         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
8658         conversion.
8659         (Expand_N_In): Do validity checks on range
8660         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
8661         (Expand_N_Allocator): For "new T", if the object is constrained by
8662         discriminant defaults, allocate the right amount of memory, rather than
8663         the maximum for type T.
8664         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
8665         when the allocator is initialized by a build-in-place call, since the
8666         allocator is already rewritten as a reference to the function result,
8667         and this prevents an unwanted duplication of the function call.
8668         Add with and use of Exp_Ch6.
8669         (Expand_Allocator_Expresssion): Check for an allocator whose expression
8670         is a call to build-in-place function and apply
8671         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
8672         untagged designated types).
8673         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
8674         optimization if source or target is biased.
8675         (Expand_N_Allocator): Add comments for case of an allocator within a
8676         function that returns an anonymous access type designating tasks.
8677         (Expand_N_Allocator): apply discriminant checks for access
8678         discriminants of anonymous access types (AI-402, AI-416)
8679
8680 2006-10-31  Bob Duff  <duff@adacore.com>
8681             Robert Dewar  <dewar@adacore.com>
8682             Gary Dismukes  <dismukes@adacore.com>
8683             Ed Schonberg  <schonberg@adacore.com>
8684
8685         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
8686
8687         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
8688         (Expand_N_Assignment_Statement): Call
8689         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
8690         build-in-place function call. Currently, this can happen only for
8691         assignments that come from aggregates.
8692         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
8693         in order to alleviate the upward compatibility introduced by AI-318.
8694         (Expand_N_Extended_Return_Statement): Add support for handling the
8695         return object as a build-in-place result.
8696         (Expand_Non_Function_Return): Implement simple return statements nested
8697         within an extended return.
8698         (Enable_New_Return_Processing): Turn on the new processing of return
8699         statements.
8700         (Expand_Non_Function_Return): For a return within an extended return,
8701         don't raise Program_Error, because Sem_Ch6 now gives a warning.
8702         (Expand_N_Extended_Return_Statement): Implement AI-318
8703         (Expand_Simple_Function_Return): Ditto.
8704         (Expand_N_If_Statement): Handle new -gnatwt warning
8705         (Expand_N_Case_Statement): Handle new -gnatwt warning
8706         (Expand_N_Assignment): Handle assignment to the Priority attribute of
8707         a protected object.
8708         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
8709         validity checking of assignments to elementary record components.
8710         (Expand_N_Return_Statement): return Class Wide types on the secondary
8711         stack independantly of their controlled status since with HIE runtimes,
8712         class wide types are not potentially controlled anymore.
8713
8714         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
8715         node kind.
8716
8717         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
8718         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
8719         it expects a block, procedure, or task. The return statement will get
8720         turned into a block, and Expand_Cleanup_Actions will happen then.
8721
8722 2006-10-31  Robert Dewar  <dewar@adacore.com>
8723             Ed Schonberg  <schonberg@adacore.com>
8724             Bob Duff  <duff@adacore.com>
8725             Gary Dismukes  <dismukes@adacore.com>
8726
8727         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
8728         capability.
8729         (Expand_Inlined_Call): Tagged types are by-reference types, and
8730         therefore should be replaced by a renaming declaration in the expanded
8731         body, as is done for limited types.
8732         (Expand_Call): If this is a call to a function with dispatching access
8733         result, propagate tag from context.
8734         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
8735         CPP by default.
8736         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
8737         build-in-place when the right-hand side of an assignment is a
8738         build-in-place function call.
8739         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
8740         of the explicit dereference of the allocator to the result subtype of
8741         the build-in-place function. This is needed to satisfy type checking
8742         in cases where the caller's return object is created by an allocator for
8743         a class-wide access type and the type named in the allocator is a
8744         specific type.
8745         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
8746         conversion of the reference to the declared object to the result subtype
8747         of the build-in-place function. This is needed to satisfy type checking
8748         in cases where the declared object has a class-wide type. Also, in the
8749         class-wide case, change the type of the object entity to the specific
8750         result subtype of the function, to avoid passing a class-wide object
8751         without explicit initialization to the back end.
8752         (Register_Interface_DT_Entry): Moved outside the body of
8753         Freeze_Subprogram because this routine is now public; it is called from
8754         Check_Dispatching_Overriding to handle late overriding of abstract
8755         interface primitives.
8756         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
8757         adding an implicit access actual on a call to a build-in-place function.
8758         (Expand_Actuals): Test for an actual parameter that is a call to a
8759         build-in-place function and apply
8760         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
8761         (Is_Build_In_Place_Function): New function to determine whether an
8762         entity is a function whose calls should be handled as build-in-place.
8763         (Is_Build_In_Place_Function_Call): New function to determine whether an
8764         expression is a function call that should handled as build-in-place.
8765         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
8766         calls to build-in-place functions as the initialization of an allocator.
8767         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
8768         handling calls to build-in-place functions in contexts that do not
8769         involve init of a separate object (for example, actuals of subprogram
8770         calls).
8771         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
8772         handling calls to build-in-place functions as the initialization of an
8773         object declaration.
8774         (Detect_Infinite_Recursion): Add explicit parameter Process to
8775         instantiation of Traverse_Body to avoid unreferenced warning.
8776         (Check_Overriding_Inherited_Interfaces): Removed.
8777         (Register_Interface_DT_Entry): Code cleanup.
8778         (Register_Predefined_DT_Entry): Code cleanup.
8779         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
8780         inlined statements if within a transient scope.
8781         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
8782         formal parameters with occurrences of actuals in inlined body, establish
8783         visibility on the proper view of the actual's subtype for the body's
8784         context.
8785         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
8786         compatibility mode and we have an imported CPP subprogram because
8787         for now we assume that imported CPP primitives correspond with
8788         objects whose constructor is in the CPP side (and therefore we
8789         don't need to generate code to register them in the dispatch table).
8790         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
8791         aligned selected component.
8792         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
8793         the actual of an in-mode parameter is a type conversion.
8794         (Expand_Actuals): If the call does not come from source and the actual
8795         is potentially misaligned, let gigi handle it rather than rejecting the
8796         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
8797         Class Wide types as returning by reference independantly of their
8798         controlled status since with HIE runtimes class wide types are not
8799         potentially controlled anymore.
8800
8801 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
8802
8803         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
8804         references that are private components of the protected object.
8805         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
8806         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
8807         instantiation to deal with warnings.
8808         (Initialize_Protection): If expression for priority is non-static, use
8809         System_Priority as its expected type, in case the expression has not
8810         been analyzed yet.
8811
8812 2006-10-31  Robert Dewar  <dewar@adacore.com>
8813
8814         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
8815         initialization of Homonym_Len.
8816         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
8817         names from fully qualified name. Fixes problem of duplicate
8818         external names differing only in the presence of such a block name.
8819
8820 2006-10-31  Thomas Quinot  <quinot@adacore.com>
8821             Pablo Oliveira  <oliveira@adacore.com>
8822
8823         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
8824         subprogram Ids, even if they are not yet assigned.
8825         (Build_Subprogram_Id): It is now this function that will take care of
8826         calling Assign_Subprogram_Ids if necessary.
8827         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
8828         should be done only once they are assigned.
8829         (Build_From_Any_Function, case of tagged types): Add missing call to
8830         Allocate_Buffer.
8831         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
8832         type for an RACW type.
8833         (Add_RACW_Features): When processing an RACW declaration for which the
8834         designated type is already frozen, enforce E.2.2(14) rules immediately.
8835         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
8836         special reordering of controlling formals.
8837
8838         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
8839         associated stub type for an RACW type.
8840
8841 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
8842
8843         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
8844         fixed-point operations in an integer context, i.e. as operands of a
8845         conversion to an integer type, indicate that result must be rounded.
8846
8847 2006-10-31  Robert Dewar  <dewar@adacore.com>
8848
8849         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
8850         cases, pass the encoding method, since it is now required by the run
8851         time.
8852
8853         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
8854         assumption that Str'First = 1.
8855         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
8856         it on to the Value_Wide_Wide_Character call.
8857         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
8858         properly handles a string of the form quote-encoded_wide_char-quote.
8859
8860         * s-wchcnv.adb: Minor reformatting
8861
8862 2006-10-31  Javier Miranda  <miranda@adacore.com>
8863
8864         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
8865         run-time membership test to ensure that the constructed object
8866         implements the target abstract interface.
8867
8868 2006-10-31  Robert Dewar  <dewar@adacore.com>
8869
8870         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
8871         Machine_Attribute pragma internally to implement the user pragma.
8872         Add processing for pragma Interface so that it is now completely
8873         equivalent to pragma Import.
8874
8875         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
8876         so that it can be applied to all entities, including record components
8877         and enumeration literals.
8878         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
8879         priority ranges are correct, verify compatibility against task
8880         dispatching and locking policies, and if everything is correct an entry
8881         is added to the table containing priority specific dispatching entries
8882         for this compilation unit.
8883         (Delay_Config_Pragma_Analyze): Delay processing
8884         Priority_Specific_Dispatching pragmas because when processing the
8885         pragma we need to access run-time data, such as the range of
8886         System.Any_Priority.
8887         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
8888         Allow pragma Unreferenced as a context item
8889         Add pragma Preelaborable_Initialization
8890         (Analyze_Pragma, case Interface): Interface is extended so that it is
8891         now syntactically and semantically equivalent to Import.
8892         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
8893         insertion characters.
8894         Add handling for Pragma_Wide_Character_Encoding
8895         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
8896         never supercedes a real restriction, and that a real restriction
8897         always supercedes a warning.
8898         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
8899         appropriate form.
8900
8901 2006-10-31  Bob Duff  <duff@adacore.com>
8902             Ed Schonberg  <schonberg@adacore.com>
8903             Robert Dewar  <dewar@adacore.com>
8904
8905         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
8906         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
8907         Is_Inherently_Limited_Type, because return-by-reference has no meaning
8908         in Ada 2005.
8909         (Find_Node_To_Be_Wrapped): Use new method of determining the result
8910         type of the function containing a return statement, because the
8911         Return_Type field was removed. We now use the Return_Applies_To field.
8912
8913         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
8914         (Build_Task_Image_Decl): If procedure is not called from an
8915         initialization procedure, indicate that function that builds task name
8916         uses the sec. stack. Otherwise the enclosing initialization procedure
8917         will carry the indication.
8918         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
8919         N_Object_Declaration instead.
8920         (Kill_Dead_Code): New interface to implement -gnatwt warning for
8921         conditional dead code killed, and change implementation accordingly.
8922         (Insert_Actions): Add N_Return_Object_Declaration case.
8923         Correct comment to mention N_Extension_Aggregate node.
8924         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
8925         attempts to save information for global variables which cannot be
8926         safely tracked.
8927         (Get_Current_Value_Condition): Handle conditions the other way round
8928         (constant on left). Also handle right operand of AND and AND THEN
8929         (Set_Current_Value_Condition): Corresponding changes
8930         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
8931         (Get_Current_Value_Condition): Handle simple boolean operands
8932         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
8933         (Get_Current_Value_Condition): If the variable reference is within an
8934         if-statement, does not appear in the list of then_statments, and does
8935         not come from source, treat it as being at unknown location.
8936         (Get_Current_Value_Condition): Enhance to allow while statements to be
8937         processed as well as if statements.
8938         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
8939         come from source.
8940         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
8941         of loop. This is safe now that we fixed Kill_Current_Values.
8942         (OK_To_Do_Constant_Replacement): Check whether current scope is
8943         Standard, before examining outer scopes.
8944
8945 2006-10-31  Vincent Celier  <celier@adacore.com>
8946
8947         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
8948         When True, apply VMS treatment to children of packages A, G, I and S.
8949         For F320-016
8950
8951         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
8952
8953 2006-10-31  Robert Dewar  <dewar@adacore.com>
8954             Ed Schonberg  <schonberg@adacore.com>
8955
8956         * freeze.adb: Add handling of Last_Assignment field
8957         (Warn_Overlay): Supply missing continuation marks in error msgs
8958         (Freeze_Entity): Add check for Preelaborable_Initialization
8959
8960         * g-comlin.adb: Add Warnings (Off) to prevent new warning
8961
8962         * g-expect.adb: Add Warnings (Off) to prevent new warning
8963
8964         * lib-xref.adb: Add handling of Last_Assignment field
8965         (Generate_Reference): Centralize handling of pragma Obsolescent here
8966         (Generate_Reference): Accept an implicit reference generated for a
8967         default in an instance.
8968         (Generate_Reference): Accept a reference for a node that is not in the
8969         main unit, if it is the generic body corresponding to an subprogram
8970         instantiation.
8971
8972         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
8973
8974         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
8975         -gnatwq/Q.
8976         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
8977         exception handler.
8978         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
8979         use clauses, to avoid messages on packages used to qualify, and also
8980         to avoid messages from obsolescent units.
8981         (Warn_On_Useless_Assignments): Don't generate messages for imported
8982         and exported variables.
8983         (Warn_On_Useless_Assignments): New procedure
8984         (Output_Obsolescent_Entity_Warnings): New procedure
8985         (Check_Code_Statement): New procedure
8986
8987         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
8988         Change name Is_Ada_2005 to Is_Ada_2005_Only
8989         (Last_Assignment): New field for useless assignment warning
8990
8991 2006-10-31  Olivier Hainque  <hainque@adacore.com>
8992
8993         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
8994         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
8995
8996 2006-10-31  Bob Duff  <duff@adacore.com>
8997             Robert Dewar  <dewar@adacore.com>
8998             Ed Schonberg  <schonberg@adacore.com>
8999
9000         * g-awk.adb (Default_Session, Current_Session): Compile this file in
9001         Ada 95 mode, because it violates the new rules for AI-318.
9002
9003         * g-awk.ads: Use overloaded subprograms in every case where we used to
9004         have a default of Current_Session. This makes the code closer to be
9005         correct for both Ada 95 and 2005.
9006
9007         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
9008         code, relying on the fact that the compiler generates a warning
9009         instead of an error in -gnatg mode.
9010
9011         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
9012         E_Return_Statement entity kind.
9013         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
9014
9015         * par.adb (P_Interface_Type_Definition): Addition of one formal to
9016         report an error if the reserved word abstract has been previously found.
9017         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
9018
9019         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
9020         parenthesized range attribute usage
9021         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
9022
9023         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
9024         in the syntax for extended_return_statement. This is not in the latest
9025         RM, but the ARG is expected to issue an AI allowing this.
9026         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
9027         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
9028         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
9029         P_Return_Statement): Parse the new syntax for extended_return_statement.
9030
9031         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
9032         Output_End_Missing): Add error-recovery code for the new
9033         extended_return_statement syntax; that is, the new E_Return entry on
9034         the scope stack.
9035
9036         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
9037         limited to nonlimited, because otherwise we violate the new Ada 2005
9038         rules about returning limited types in function Create_AST_Handler in
9039         s-asthan.adb.
9040
9041         * sem.adb (Analyze): Add cases for new node kinds
9042         N_Extended_Return_Statement and N_Return_Object_Declaration.
9043
9044         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
9045         type is in the same category as type of context before applying check,
9046         to prevent anomalies in instantiations.
9047         (Resolve_Aggregate): Remove test for limited components in aggregates.
9048         It's unnecessary in Ada 95, because if it has limited components, then
9049         it must be limited. It's wrong in Ada 2005, because limited aggregates
9050         are now allowed.
9051         (Resolve_Record_Aggregate): Move check for limited types later, because
9052         OK_For_Limited_Init requires its argument to have been resolved.
9053         (Get_Value): When copying the component default expression for a
9054         defaulted association in an aggregate, use the sloc of the aggregate
9055         and not that of the original expression, to prevent spurious
9056         elaboration errors, when the expression includes function calls.
9057         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
9058         were missing. We also didn't handle qualified expressions. Now also
9059         allow function calls. Use new common routine OK_For_Limited_Init.
9060         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
9061         with space can upper case letter).
9062
9063         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
9064         Has_Static_Discriminants flag
9065         (Record_Type_Declaration): Diagnose an attempt to declare an interface
9066         type with discriminants.
9067         (Process_Range_Expr_In_Decl): Do validity checks on range
9068         (Build_Discriminant_Constraints): Use updated form of
9069         Denotes_Discriminant.
9070         (Process_Subtype): If the subtype is a private subtype whose full view
9071         is a concurrent subtype, introduce an itype reference to prevent scope
9072         anomalies in gigi.
9073         (Build_Derived_Record_Type, Collect_Interface_Primitives,
9074         Record_Type_Declaration):  The functionality of the subprograms
9075         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
9076         is now performed by a single routine.
9077         (Build_Derived_Record_Type): If the type definition includes an explicit
9078         indication of limitedness, then the type must be marked as limited here
9079         to ensure that any access discriminants will not be treated as having
9080         a local anonymous access type.
9081         (Check_Abstract_Overriding): Issue a detailed error message when an
9082         abstract subprogram was not overridden due to incorrect mode of its
9083         first parameter.
9084         (Analyze_Private_Extension_Declaration): Add support for the analysis of
9085         synchronized private extension declarations. Verify that the ancestor is
9086         a limited or synchronized interface or in the generic case, the ancestor
9087         is a tagged limited type or synchronized interface and all progenitors
9088         are either limited or synchronized interfaces.
9089         Derived_Type_Declaration): Check for presence of private extension when
9090         dealing with synchronized formal derived types.
9091         Process_Full_View): Enchance the check done on the usage of "limited" by
9092         testing whether the private view is synchronized.
9093         Verify that a synchronized private view is completed by a protected or
9094         task type.
9095         (OK_For_Limited_Init_In_05): New function.
9096         (Analyze_Object_Declaration): Move check for limited types later,
9097         because OK_For_Limited_Init requires its argument to have been resolved.
9098         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
9099         in order to alleviate the upward compatibility introduced by AI-318.
9100         (Constrain_Corresponding_Record): If the constraint is for a component
9101         subtype, mark the itype as frozen, to avoid out-of-scope references to
9102         discriminants in the back-end.
9103         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
9104         this subprogram against wrong sources.
9105         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
9106         discriminant of limited type completed with a protected type, when the
9107         discriminant is used to constrain a private component of the type, and
9108         expansion is disabled.
9109         (Find_Type_Of_Object): Do not treat a return subtype that is an
9110         anonymous subtype as a local_anonymous_type, because its accessibility
9111         level is the return type of the enclosing function.
9112         (Check_Initialization): In -gnatg mode, turn the error "cannot
9113         initialize entities of limited type" into a warning.
9114         (OK_For_Limited_Init): Return true for generated nodes, since it
9115         sometimes violates the legality rules.
9116         (Make_Incomplete_Declaration): If the type for which an incomplete
9117         declaration is created happens to be the currently visible entity,
9118         preserve the homonym chain when removing it from visibility.
9119         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
9120         inherited subprograms.
9121         (Access_Definition): If this is an access to function that is the return
9122         type of an access_to_function definition, context is a type declaration
9123         and the scope of the anonymous type is the current one.
9124         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
9125         incomplete subtype to the set of private dependents of the original
9126         incomplete type.
9127         (Constrain_Discriminated_Type): Emit an error message whenever an
9128         incomplete subtype is being constrained.
9129         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
9130         corresponding subtype of the full view of the original incomplete type.
9131         (Check_Incomplete): Properly detect invalid usage of incomplete types
9132         and subtypes.
9133
9134 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
9135
9136         * g-catiio.ads, g-catiio.adb (Value): New function.
9137         Given an input String, try and parse a valid Time value.
9138
9139 2006-10-31  Vincent Celier  <celier@adacore.com>
9140
9141         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
9142         Integer_Address arithmetic, as in Set_Valid.
9143
9144 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
9145             Robert Dewar  <dewar@adacore.com>
9146
9147         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
9148         handling executable extension manually and duplicating code.
9149
9150         * make.adb: Implement new -S switch
9151         (Gnatmake): Use new function Osint.Executable_Name instead
9152         of handling executable extension manually.
9153
9154         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
9155         is specified, the executable name ends with this suffix.
9156         Take advantage of Osint.Executable_Name instead of duplicating code.
9157
9158         * switch-m.adb: Recognize new gnatmake -S switch
9159
9160         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
9161         variable.
9162         (Get_Target_Parameters): Set Executable_Extension_On_Target if
9163         available.
9164
9165         * makeusg.adb: Add line for gnatmake -S switch
9166
9167 2006-10-31  Vincent Celier  <celier@adacore.com>
9168
9169         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
9170         call it with -static-libgcc, as there are some platforms, such as
9171         Darwin, where one of these two switches is compulsory to link.
9172
9173 2006-10-31  Vincent Celier  <celier@adacore.com>
9174
9175         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
9176         instead of ADA_PROJECT_PATH, for the project path.
9177         (Gnatls): When displaying the project path directories, use host dir
9178         specs.
9179
9180         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
9181         names in the project path, as absolute paths may correspond to
9182         multi-valued VMS logical names.
9183
9184 2006-10-31  Vincent Celier  <celier@adacore.com>
9185
9186         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
9187         absolute path name.
9188         (Locate_Regular_File): Ditto
9189         (Change_Dir): Remove, no longer used
9190         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
9191         on Windows. Get it calling Get_Current_Dir.
9192         (OpenVMS): Remove imported boolean, no longer needed.
9193         (Normalize_Pathname)[VMS]: Do not resolve directory names.
9194         (Pid_To_Integer): New function to convert a Process_Id to  Integer
9195
9196 2006-10-31  Thomas Quinot  <quinot@adacore.com>
9197
9198         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
9199         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
9200         to No_Socket.
9201         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
9202         W_Sig_Socket.
9203
9204 2006-10-31  Robert Dewar  <dewar@adacore.com>
9205
9206         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
9207         initial letter o as a zero.
9208
9209 2006-10-31  Robert Dewar  <dewar@adacore.com>
9210
9211         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
9212
9213 2006-10-31  Robert Dewar  <dewar@adacore.com>
9214
9215         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
9216         variant records
9217         (Layout_Variant_Record): Retrieve the discriminants from the entity
9218         rather than from the type definition, because in the case of a full
9219         type for a private type we need to take the discriminants from the
9220         partial view.
9221         (Layout_Component_List): When applying the Max operator to variants with
9222         a nonstatic size, check whether either operand is static and scale that
9223         operand from bits to storage units before applying Max.
9224         (Layout_Type): In VMS, if a C-convention access type has no explicit
9225         size clause (and does not inherit one in the case of a derived type),
9226         then the size is reset to 32 from 64.
9227
9228 2006-10-31  Vincent Celier  <celier@adacore.com>
9229
9230         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
9231         its file has already been loaded, according to the unit being loaded,
9232         not to the current value of Multiple_Unit_Index.
9233
9234 2006-10-31  Thomas Quinot  <quinot@adacore.com>
9235             Eric Botcazou  <ebotcazou@adacore.com>
9236             Arnaud Charlet  <charlet@adacore.com>
9237
9238         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
9239         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
9240         possible.
9241         (a-except.o): Pass it to the compiler.
9242         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
9243         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
9244         a-calend-mingw.adb version.
9245
9246         * Makefile.rtl: Added s-dsaser.
9247         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
9248         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
9249         Ada.Dispatching.Round_Robin.
9250         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
9251
9252         * Make-lang.in: Remove all references to gt-ada-decl.h.
9253         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
9254         sources.
9255         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
9256         Update dependencies.
9257
9258         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
9259
9260 2006-10-31  Vincent Celier  <celier@adacore.com>
9261
9262         * mlib-utl.adb (Initialized): Remove, no longer used
9263         (Initialize): Remove, no longer used
9264         (Ar): If Ar_Exec is null, get the location of the archive builder and,
9265         if there is one, the archive indexer. Fail if the archive builder cannot
9266         be found.
9267         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
9268         be found.
9269
9270 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9271
9272         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
9273         Process_Body_Clauses): If the context of a body includes a use clause
9274         for P.Q then a with_clause for P in the same body is not redundant,
9275         even if the spec also has a with_clause on P.
9276         Add missing continuation mark to error msg
9277         (Build_Limited_Views): A limited view of a type is tagged if its
9278         declaration includes a record extension.
9279         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
9280         node, even if the subunit has errors. This avoids malfunction by
9281         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
9282         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
9283         generation of obsolescent messages for with statements (cannot do
9284         this too early, or we cannot implement avoiding the messages in the
9285         case of obsolescent units withing obsolescent units).
9286         (Install_Siblings): If the with_clause is on a remote descendant of
9287         an ancestor of the current compilation unit, find whether there is
9288         a sibling child unit that is immediately visible.
9289         (Remove_Private_With_Clauses): New procedure, invoked after completing
9290         the analysis of the private part of a nested package, to remove from
9291         visibility the private with_clauses of the enclosing package
9292         declaration.
9293         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
9294         now centralized in Generate_Reference.
9295         (Install_Limited_Context_Clauses): Remove superfluous error
9296         message associated with unlimited view visible through use
9297         and renamings. In addition, at the point in which the error
9298         is reported, we add the backslash to the text of the error
9299         to ensure that it is reported as a single error message.
9300         Use new // insertion for some continuation messages
9301         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
9302         to create implicit with_clause for parent unit mentioned in original
9303         limited_with_clause.
9304         (Install_Limited_With_Unit): Set entity of parent identifiers if the
9305         unit is a child unit. For ASIS queries.
9306         (Analyze_Subunit): If the subunit appears within a child unit, make all
9307         ancestor child units directly visible again.
9308
9309 2006-10-31  Robert Dewar  <dewar@adacore.com>
9310
9311         * par-ch10.adb (P_Context_Clause): Minor error message fix
9312
9313 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
9314             Javier Miranda  <miranda@adacore.com>
9315
9316         * par-ch12.adb: Grammar update and cleanup.
9317         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
9318         support for synchronized derived type definitions.
9319         Add the new actual Abstract_Present to every call to
9320         P_Interface_Type_Definition.
9321         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
9322         a formal object declaration with an access definition or a subtype mark
9323         with a null exclusion.
9324         (P_Generic_Association): Handle association with box, and others_choice
9325         with box, to support Ada 2005 partially parametrized formal packages.
9326
9327 2006-10-31  Robert Dewar  <dewar@adacore.com>
9328             Javier Miranda  <miranda@adacore.com>
9329
9330         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
9331         (P_Type_Declaration): Remove barrier against the reserved word "limited"
9332         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
9333         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
9334         private extensions.
9335         (P_Type_Declaration): Add the new actual Abstract_Present to every call
9336         to P_Interface_Type_Definition.
9337         (P_Interface_Type_Definition): Addition of one formal to report an error
9338         if the reserved word abstract has been previously found.
9339         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
9340         object renaming declaration with an access definition or subtype mark
9341         with a possible null exclusion.
9342
9343         * par-ch9.adb: Minor error msg fix
9344
9345         * par-load.adb: Add missing continuation mark to error msg
9346
9347         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
9348
9349 2006-10-31  Vincent Celier  <celier@adacore.com>
9350
9351         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
9352         unknown attribute in unknown package or in package that does not need
9353         to be checked.
9354         (Parse_Package_Declaration): Do not issue warning for unknown package in
9355         quiet output.
9356
9357 2006-10-31  Vincent Celier  <celier@adacore.com>
9358
9359         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
9360         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
9361         Packages_To_Check.
9362
9363 2006-10-31  Vincent Celier  <celier@adacore.com>
9364
9365         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
9366         on VMS, change "__" to '.' before checking the name.
9367         (Record_Ada_Source): Always add the source file name in the list of
9368         of sources, even if it is not the first time, as it is for another
9369         source index.
9370         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
9371         dot, instead of replacing only the first '_'.
9372
9373         * prj-part.adb (Parse): Convert project file path to canonical form
9374
9375         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
9376         extended, the project id of the project extending it is recorded in its
9377         data, even when it has already been processed as an imported project.
9378
9379 2006-10-31  Robert Dewar  <dewar@adacore.com>
9380
9381         * repinfo.adb (List_Entities): Don't list entities from renaming
9382         declarations.
9383
9384 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
9385             Robert Dewar  <dewar@adacore.com>
9386
9387         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
9388         only a restriction warning is active for the given restriction. This is
9389         desirable because we do not want to modify code in the case where only
9390         a warning is set.
9391         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
9392         causes overriding of real restrictions.
9393         Take advantage of new No_Restrictions constant.
9394
9395         * raise.h: (__gnat_set_globals): Change profile.
9396
9397 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
9398
9399         * rtsfind.adb: Remove s-polint from comment as it exists no more.
9400
9401         * rtsfind.ads: 
9402         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
9403         Move all the entities in obsolete package System.PolyORB_Interface to
9404         System.Partition_Interface.
9405         (RE_Storage_Size): New function in System.Tasking.
9406         (RE_Get_Ceiling): New entity.
9407         (RE_Set_Ceiling): New entity.
9408         (RO_PE_Get_Ceiling): New entity.
9409         (RO_RE_Set_Ceiling): New entity.
9410         (Inherit_CPP_DT): New entity
9411
9412 2006-10-31  Robert Dewar  <dewar@adacore.com>
9413
9414         * scng.adb (Scan, case of numeric literal): Better msg for identifier
9415         starting with a digit.
9416
9417 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9418             Thomas Quinot  <quinot@adacore.com>
9419             Javier Miranda  <miranda@adacore.com>
9420             Gary Dismukes  <dismukes@adacore.com>
9421
9422         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
9423         properly an attempt to apply Unchecked_Access to a protected operation.
9424         (OK_Self_Reference): New subprogram to check the legality of an access
9425         attribute whose prefix is the type of an enclosing aggregate.
9426         Generalizes previous mechanism to handle attribute references nested
9427         arbitrarily deep within the aggregate.
9428         (Analyze_Access_Attribute): An access attribute whose prefix is a type
9429         can appear in an aggregate if this is a default-initialized aggregate
9430         for a self-referential type.
9431         (Resolve_Attribute, case Access): Ditto.
9432         Add support for new implementation defined attribute Stub_Type.
9433         (Eval_Attribute, case Attribute_Stub_Type): New case.
9434         (Analyze_Attribute, case Attribute_Stub_Type): New case.
9435         (Stream_Attribute_Available): Implement using new subprogram from
9436         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
9437         Has_Specified_Stream_Attribute flag.
9438         Disallow Storage_Size and Storage_Pool for access to subprogram
9439         (Resolve_Attribute, case 'Access et al): Take into account anonymous
9440         access types of return subtypes in extended return statements. Remove
9441         accessibility checks on anonymous access types when Unchecked_Access is
9442         used.
9443         (Analyze_Attribute): Add support for the use of 'Class to convert
9444         a class-wide interface to a tagged type.
9445         Add support for the attribute Priority.
9446         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
9447         whether the designated type is discriminated with a constrained partial
9448         view and require static matching in that case.
9449         Add local variable Des_Btyp. The Designated_Type
9450         of an access to incomplete subtype is either its non-limited view if
9451         coming from a limited with or its etype if regular incomplete subtype.
9452
9453         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
9454         Fix predicate to identify and allow cases of (expander-generated)
9455         references to tag of designated object of a RACW.
9456         (Validate_Static_Object_Name): In Ada 2005, a formal object is
9457         non-static, and therefore cannot appear as a primary in a preelaborable
9458         package.
9459         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
9460         Has_Read_Write_Attributes.
9461         (Has_Read_Write_Attributes): Reimplement in termes of
9462         Has_Stream_Attribute_Definition.
9463         (Missing_Read_Write_Attributes): When checking component types in a
9464         record, unconditionally call Missing_Read_Write_Attributes recursively
9465         (remove guard checking for Is_Record_Type / Is_Access_Type).
9466
9467 2006-10-31  Robert Dewar  <dewar@adacore.com>
9468
9469         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
9470         useless assignments here and conditionalize it on absence of exception
9471         handlers.
9472         (Analyze_Exception_Handlers): Small code reorganization of error
9473         detection code, for new handling of formal packages.
9474
9475 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9476             Hristian Kirtchev  <kirtchev@adacore.com>
9477
9478         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
9479         that has been constant-folded, preserve information of original tree,
9480         for ASIS uses.
9481         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
9482         generated private extension declaration if the formal derived type is
9483         synchronized. Carry synchronized present over to the generated private
9484         extension.
9485         (Validate_Derived_Type_Instance): Ensure that the actual of a
9486         synchronized formal derived type is a synchronized tagged type.
9487         (Instantiate_Formal_Package): When creating the instantiation used to
9488         validate the actual package of a formal declared without a box, check
9489         whether the formal itself depends on a prior actual.
9490         (Instantiate_Formal_Subprogram): Create new entities for the defining
9491         identifiers of the formals in the renaming declaration, for ASIS use.
9492         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
9493         a renaming declaration or a subtype declaration for an actual in an
9494         instance, capture location information of declaration in generic, for
9495         ASIS use.
9496         (Instantiate_Formal_Package): Add comments on needed additional tests.
9497         AI-317 (partial parametrization) is fully implemented.
9498         (Validate_Private_Type_Instance): Add check for actual which
9499         must have preelaborable initialization
9500         Use new // insertion for some continuation messages
9501         (Analyze_Formal_Object_Declaration): Change usage of Expression to
9502         Default_Expression. Add type retrieval when the declaration has an
9503         access definition. Update premature usage of incomplete type check.
9504         (Check_Access_Definition): New subsidiary routine. Check whether the
9505         current compilation version is Ada 05 and the supplied node has an
9506         access definition.
9507         (Instantiate object): Alphabetize local variables. Handle the creation
9508         of new renaming declarations with respect to the kind of definition
9509         used - either an access definition or a subtype mark. Guard against
9510         unnecessary error message in the context of anonymous access types after
9511         they have been resolved. Add check for required null exclusion in a
9512         formal object declaration.
9513         (Switch_View): A private subtype of a non-private type needs to be
9514         switched (the base type can have been switched without its private
9515         dependents because of the last branch of Check_Private_View.
9516         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
9517         value from BT.
9518         (Instantiate_Type): Emit an error message whenever a class-wide type of
9519         a tagged incomplete type is used as a generic actual.
9520         (Find_Actual_Type): Extend routine to handle a component type in a child
9521         unit that is imported from a formal package in a parent.
9522         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
9523         agree on constrainedness, rather than checking against ultimate ancestor
9524         (Instantiate_Subprogram_Body): Create a cross-reference link to the
9525         generic body, for navigation purposes.
9526
9527 2006-10-31  Robert Dewar  <dewar@adacore.com>
9528             Thomas Quinot  <quinot@adacore.com>
9529
9530         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
9531         type.
9532         (New_Stream_Subprogram): When processing an attribute definition clause
9533         for a stream-oriented subprogram, record an entity node occurring at
9534         the point of clause to use for checking the visibility of the clause,
9535         as defined by 8.3(23) as amended by AI-195.
9536         (New_Stream_Subprogram): New procedure, factoring behaviour from both
9537          New_Stream_Function and New_Stream_Procedure.
9538         (New_Stream_Function, New_Stream_Procedure): Removed.
9539         (Analyze_Attribute_Definition_Clause, case Address): Check new
9540         Alignment_Check check
9541
9542 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9543             Javier Miranda  <miranda@adacore.com>
9544             Robert Dewar  <dewar@adacore.com>
9545
9546         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
9547         generate the same errors compiling under -gnatc.
9548         (Try_Object_Operation): If no candidate interpretation succeeds, but
9549         there is at least one primitive operation with the right name, report
9550         error in call rather than on a malformed selected component.
9551         (Analyze_Selected_Component): If the prefix is an incomplete type from
9552         a limited view, and the full view is available, use the full view to
9553         determine whether this is a prefixed call to a primitive operation.
9554         (Operator_Check): Verify that a candidate interpretation is a binary
9555         operation before checking the type of its second formal.
9556         (Analyze_Call): Add additional warnings for function call contexts not
9557         yet supported.
9558         (Analyze_Allocator): Move the check for "initialization not allowed for
9559         limited types" after analyzing the expression. This is necessary,
9560         because OK_For_Limited_Init looks at the structure of the expression.
9561         Before analysis, we don't necessarily know what sort of expression it
9562         is. For example, we don't know whether F(X) is a function call or an
9563         indexed component; the former is legal in Ada 2005; the latter is not.
9564         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
9565         were missing. We also didn't handle qualified expressions. Now also
9566         allow function calls. Use new common routine OK_For_Limited_Init.
9567         (Analyze_Type_Conversion): Do not perform some legality checks in an
9568         instance, because the error message will be redundant or spurious.
9569         (Analyze_Overloaded_Selected_Component): Do not do style check when
9570         setting an entity, since we do not know it is the right entity yet.
9571         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
9572         (Analyze_Overloaded_Selected_Component): Same change
9573         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
9574         since regular incomplete subtypes are transformed into corresponding
9575         subtypes of their full views.
9576         (Complete_Object_Operation): Treat name of transformed subprogram call
9577         as coming from source, for browsing purposes.
9578         (Try_Primitive_Operation): If formal is an access parameter, compare
9579         with base type of object to determine whether it is a primitive
9580         operation.
9581         (Operator_Check): If no interpretation of the operator matches, check
9582         whether a use clause on any candidate might make the operation legal.
9583         (Try_Class_Wide_Operation): Check whether the first parameter is an
9584         access type whose designated type is class-wide.
9585
9586 2006-10-31  Robert Dewar  <dewar@adacore.com>
9587             Ed Schonberg  <schonberg@adacore.com>
9588             Gary Dismukes  <dismukes@adacore.com>
9589
9590         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
9591         warn on infinite loops.
9592         Add \\ to some continuation messages
9593         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
9594         (Process_Bounds): If the bounds are integer literals that result from
9595         constant-folding, and they carry a user-defined type, preserve that type
9596         rather than treating this as an integer range.
9597         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
9598         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
9599         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
9600         left hand side of assignment.
9601         (Analyze_Assignment): Add suport to manage assigments to the attribute
9602         priority of a protected object.
9603         (Check_Possible_Current_Value_Condition): Allow fully qualified names
9604         not just identifiers.
9605         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
9606         or AND THEN for possible tracking.
9607         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
9608         case of while loops so we can track values in the loop body.
9609
9610 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9611             Hristian Kirtchev  <kirtchev@adacore.com>
9612             Bob Duff  <duff@adacore.com>
9613
9614         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
9615         procedure cannot be a protected operation (it is a basic_declaration,
9616         not a subprogram_declaration).
9617         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
9618         Subp. Add logic for entry processing.
9619         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
9620         Determine whether an entry or subprogram of a protected or task type
9621         override an inherited primitive of an implemented interface.
9622         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
9623         Update the actual used in calls to Check_Overriding_Indicator.
9624         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
9625         generate the proper reference to the parent unit, for cross-reference.
9626         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
9627         Is_Formal.
9628         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
9629         (Add_Extra_Formal): Revise procedure to allow passing in associated
9630         entity, scope, and name suffix, and handle setting of the new
9631         Extra_Formals field.
9632         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
9633         pass new parameters. Add support for adding the new extra access formal
9634         for functions whose calls are treated as build-in-place.
9635         (Analyze_A_Return_Statement): Correct casing in error message.
9636         Move Pop_Scope to after Analyze_Function_Return, because an extended
9637         return statement really is a full-fledged scope. Otherwise, visibility
9638         doesn't work right. Correct use of "\" for continuation messages.
9639         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
9640         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
9641         the node doesn't get properly marked as analyzed.
9642         (Analyze_Subprogram_Body): If subprogram is a function that returns
9643         an anonymous access type that denotes a task, build a Master Entity
9644         for it.
9645         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
9646         proper usage of null exclusion in a result definition.
9647         (Process_Formals): Code cleanup and new error message.
9648         (Process_Formals): Detect incorrect application of null exclusion to
9649         non-access types.
9650         (Conforming_Types): Handle conformance between [sub]types and itypes
9651          generated for entities that have null exclusions applied to them.
9652         (Maybe_Primitive_Operation): Add an additional type retrieval when the
9653          base type is an access subtype. This case arrises with null exclusions.
9654         (New_Overloaded_Entity): Do not remove the overriden entity from the
9655         homonym chain if it corresponds with an abstract interface primitive.
9656         (Process_Formals): Replace membership test agains Incomplete_Kind with a
9657         call to the synthesized predicate Is_Incomplete_Type.
9658         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
9659         primitives.
9660         (Analyze_Subprogram_Declaration): Check that abstract interface
9661         primitives are abstract or null.
9662         (Analyze_Subprogram_Specification): Remove previous check for abstract
9663         interfaces because it was not complete.
9664         (Has_Interface_Formals): Removed.
9665
9666 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9667             Javier Miranda  <miranda@adacore.com>
9668
9669         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
9670         of Analyze_Package_Body, to create Itype references for anonymous
9671         access types created in the package declaration, whose designated types
9672         may have only a limited view.
9673         (Analyze_Package_Specification): For the private part of a nested
9674         package, install private_with_clauses of enclosing compilation unit if
9675         we are in its visible part.
9676         (Declare_Inherited_Private_Subprograms): Complete barrier
9677         to ensure that the primitive operation has an alias to some parent
9678         primitive. This is now required because, after the changes done for the
9679         implementation of abstract interfaces, the contents of the list of
9680         primitives has entities whose alias attribute references entities of
9681         such list of primitives.
9682         (Analyze_Package_Specification): Simplify code that handles parent units
9683         of instances and formal packages.
9684         (Uninstall_Declarations): Check the convention consistency among
9685         primitive overriding operations of a tagged record type.
9686
9687 2006-10-31  Robert Dewar  <dewar@adacore.com>
9688             Hristian Kirtchev  <kirtchev@adacore.com>
9689             Javier Miranda  <miranda@adacore.com>
9690             Ed Schonberg  <schonberg@adacore.com>
9691
9692         * sem_ch8.adb: Minor error msg rewording
9693         (Undefined): When checking for misspellings, invert arguments (to get
9694         expected and found set right)
9695         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
9696         (Analyze_Generic_Renaming): Same fix
9697         (Use_One_Package): Do not take into account the internal entities of
9698         abstract interfaces during the analysis of entities that are marked
9699         as potentially use-visible.
9700         (Find_Type): Handle the case of an attribute reference for
9701         implementation defined attribute Stub_Type (simply let the analysis of
9702         the attribute reference rewrite it).
9703         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
9704         type that appears in a Use_Type clause.
9705         (Analyze_Object_Renaming): Add support for renaming of the Priority
9706         attribute.
9707         (Find_Type): In Ada 2005, a task type can be used within its own body,
9708         when it appears in an access definition.
9709         (Analyze_Object_Renaming): Remove warning on null_exclusion.
9710         (Analyze_Object_Renaming): Introduce checks for required null exclusion
9711          in a formal object declaration or in a subtype declaration.
9712         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
9713         (Check_Null_Exclusion): New local routine to
9714         Analyze_Subprogram_Renaming. Check whether the formals and return
9715         profile of a renamed subprogram have required null exclusions when
9716         their counterparts of the renaming already impose them.
9717         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
9718         Determine whether an entity is inside a generic scope.
9719         (In_Open_Scope): First pass of documentation update.
9720         (Find_Expanded_Name): Add support for shadow entities associated with
9721         limited withed packages. This is required to handle nested packages.
9722         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
9723         that makes a renaming of a limited withed package illegal.
9724
9725 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
9726             Ed Schonberg  <schonberg@adacore.com>
9727
9728         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
9729         Check_Overriding_Indicator.
9730         (Analyze_Task_Definition): Ditto.
9731         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
9732         (Check_Overriding_Indicator): To find overridden interface operation,
9733         examine only homonyms that have an explicit subprogram declaration, not
9734         inherited operations created by an unrelated type derivation.
9735         (Check_Overriding_Indicator): When checking for the presence of "null"
9736         in a procedure, ensure that the queried node is a procedure
9737         specification.
9738         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
9739         type when the formal is an access to variable.
9740         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
9741         (Analyze_Task_Type): Same addition
9742         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
9743         provide navigation capabilities for entries.
9744
9745 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
9746             Ed Schonberg  <schonberg@adacore.com>
9747             Javier Miranda  <miranda@adacore.com>
9748             Gary Dismukes  <dismukes@adacore.com>
9749
9750         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
9751         inherited from an interface ancestor by another interface in the
9752         context of an instance as 'late'.
9753         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
9754         of a call to a function that dispatches on access result.
9755         (Check_Dispatching_Operation): In case of late overriding of a primitive
9756         that covers abstract interface subprograms we register it in all the
9757         secondary dispatch tables associated with abstract interfaces.
9758         (Check_Dispatching_Call): Add check that a dispatching call is not made
9759         to a function with a controlling result of a limited type. This is a
9760         current implementation restriction.
9761         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
9762         (Check_Dispatching_Operation): Do no emit a warning if the controlling
9763         argument is an interface type that is a generic formal.
9764         (Is_Interface_Subprogram): Removed.
9765         (Check_Dispatching_Operation): If the subprogram is not a dispatching
9766         operation, check the formals to handle the case in which it is
9767         associated with an abstract interface type.
9768
9769 2006-10-31  Robert Dewar  <dewar@adacore.com>
9770             Ed Schonberg  <schonberg@adacore.com>
9771
9772         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
9773         Add new calls to this procedure during traversal
9774         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
9775         another unit if expansion is disabled.
9776
9777 2006-10-31  Robert Dewar  <dewar@adacore.com>
9778
9779         * sem_eval.adb (Compile_Time_Compare): Make use of information from
9780         Current_Value in the conditional case, to evaluate additional
9781         comparisons at compile time.
9782
9783 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9784             Hristian Kirtchev  <kirtchev@adacore.com>
9785             Javier Miranda  <miranda@adacore.com>
9786
9787         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
9788         subprogram type to provide better diagnostics in case of ambiguity.
9789         (Covers): Handle coverage of formal and actual anonymous access types in
9790         the context of generic instantiation.
9791         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
9792         abstract interface types; this is required to handle concurrent types
9793         with discriminants and abstract interface types.
9794         (Covers): Include type coverage of both regular incomplete subtypes and
9795         incomplete subtypes of incomplete type visibles through a limited with
9796         clause.
9797
9798 2006-10-31  Robert Dewar  <dewar@adacore.com>
9799             Hristian Kirtchev  <kirtchev@adacore.com>
9800             Ed Schonberg  <schonberg@adacore.com>
9801
9802         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
9803         messages for entities in packages which are not used.
9804         (Collect_Synchronized_Interfaces): New procedure.
9805         (Overrides_Synchronized_Primitive): New function.
9806         (Denotes_Discriminant): Extend predicate to apply to task types.
9807         Add missing continuation marks in error msgs
9808         (Unqualify): New function for removing zero or more levels of
9809         qualification from an expression. There are numerous places where this
9810         ought to be used, but we currently only deal properly with zero or one
9811         level.
9812         (In_Instance); The analysis of the actuals in the instantiation of a
9813         child unit is not within an instantiation, even though the parent
9814         instance is on the scope stack.
9815         (Safe_To_Capture_Value): Exclude the case of variables that are
9816         renamings.
9817         (Check_Obsolescent): Removed
9818         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
9819         is an aliased view, even when rewritten as a reference to the target
9820         object in an assignment.
9821         (Get_Subprogram_Entity): New function
9822         (Known_To_Be_Assigned): New function
9823         (Type_Access_Level): Compute properly the access level of a return
9824         subtype that is an anonymous access type.
9825         (Explain_Limited_Type): Correct use of "\" for continuation messages.
9826         (Is_Transfer): The new extended_return_statement causes a transfer of
9827         control.
9828         (Has_Preelaborable_Initialization): New function
9829         (Has_Null_Exclusion): New function. Given a node N, determine whether it
9830         has a null exclusion depending on its Nkind.
9831         Change Is_Lvalue to May_Be_Lvalue
9832         (May_Be_Lvalue): Extensive additional code to deal with subprogram
9833         arguments (IN parameters are not Lvalues, IN OUT parameters are).
9834         (Safe_To_Capture_Value): Extend functionality so it can be used for
9835         the current value condition case.
9836         (Has_Compatible_Alignment): New function
9837         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
9838         objects to handle the Ada 2005 case, where aliasedness no longer implies
9839         that the object is constrained. In particular, for dereferenced names,
9840         the designated object must be assumed to be unconstrained.
9841         (Kill_Current_Values): Properly deal with the case where we encounter
9842         a loop in the scope chain.
9843         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
9844         a value.
9845         (Compile_Time_Constraint_Error): Improve error message in error case
9846
9847         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
9848         associated with entities of abstract interface primitives.
9849         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
9850
9851 2006-10-31  Robert Dewar  <dewar@adacore.com>
9852
9853         * s-osinte-tru64.adb: 
9854         Mark Asm statements Volatile to prevent warnings (seems a
9855         reasonable change anyway)
9856         Fixes new warnings
9857
9858         * s-mastop-irix.adb: Add Volatile to Asm statements
9859         Suppresses warning, and seems appropriate in any case
9860
9861         * s-osinte-vms.adb: Add Volatile to Asm statement
9862
9863         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
9864
9865         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
9866         returned.
9867         Add call to Check_Code_Statement
9868
9869 2006-10-31  Robert Dewar  <dewar@adacore.com>
9870             Ed Schonberg  <schonberg@adacore.com>
9871             Bob Duff  <duff@adacore.com>
9872
9873         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
9874         Synchronized_Present): Add Formal_Derived_Type_Definition and
9875         Private_Extension_Declaration to the list of assertions.
9876         (Is_Entry_Barrier_Function): New flag
9877         (Has_Self_Reference): New flag on aggregates, to indicate that they
9878         contain a reference to the enclosing type, inserted through a default
9879         initialization.
9880         (Next_Rep_Item): Move from Node4 to Node5.
9881         (Entity): Add this field for N_Attribute_Definition_Clause.
9882         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
9883         (N_Return_Object_Declaration): Remove this node kind. We now use
9884         N_Object_Declaration instead.
9885         (Actual_Designated_Subtype): Move to a different place to make room in
9886         N_Extended_Return_Statement.
9887         (Procedure_To_Call): Move to a different place to make room in
9888         N_Extended_Return_Statement.
9889         (Return_Type): Removed this field to make room in return statements
9890         (both kinds).
9891         (Return_Statement_Entity): New field in return statements, in part to
9892         replace Return_Type, and in part to support the fact that return
9893         statements are now pushed on the scope stack during semantic analysis.
9894         (Return_Object_Declarations): New field to support extended return
9895         statements.
9896         (N_Extended_Return_Statement): New node for extended_return_statement
9897         nonterminal.
9898         (N_Return_Object_Declaration): New node for part of
9899         extended_return_statement nonterminal. Needed because all the necessary
9900         fields won't fit in N_Extended_Return_Statement.
9901         Generic_associations now carry the Box_Present flag, to indicate a
9902         default for an actual in a partially parametrized formal package.
9903
9904         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
9905         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
9906         and for the new predefined dispatching policies: EDF_Across_Priorities,
9907         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
9908         Introduce new name Stub_Type for implementation defined attribute.
9909         Add pragma Preelaborable_Initialization
9910         Add entry for Priority attribute.
9911         Add Pragma_Wide_Character_Encoding
9912         (Get_Convention_Name): Given a convention id, this function returns the
9913         corresponding name id from the names table.
9914
9915 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9916             Robert Dewar  <dewar@adacore.com>
9917             Bob Duff  <duff@adacore.com>
9918
9919         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
9920         print null exclusion twice in the case of an access definition,
9921         Implement new -gnatL switch
9922         Remove N_Return_Object_Declaration. We now use
9923         N_Object_Declaration instead. Implement the case for
9924         N_Extended_Return_Statement. Alphabetize the cases.
9925         Add cases for new nodes N_Extended_Return_Statement and
9926         N_Return_Object_Declaration. The code is not yet written.
9927         Update the output for N_Formal_Object_Declaration
9928         and N_Object_Renaming_Declaration.
9929         (Write_Itype): Account for the case of a modular integer subtype whose
9930         base type is private.
9931
9932 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
9933
9934         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
9935         Remove elaboration code, now done in the binder.
9936
9937         * s-rident.ads: Make this unit Preelaborate.
9938         (No_Restrictions): New constant used to clean up code and follow
9939         preelaborate constraints.
9940
9941         * s-stalib.adb: 
9942         Add System.Restrictions dependence, referenced directly from the
9943         binder generated file.
9944
9945 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
9946
9947         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
9948         True when AAMP extended floating-point is in use (48-bit). Change type
9949         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
9950         the two byte array types on AFloat. Change type of IV_Ilf overlay
9951         variable from Byte8 to ByteLF. Add appropriate initializations of
9952         floating-point overlays for AAMP cases.
9953
9954 2006-10-31  Javier Miranda  <miranda@adacore.com>
9955
9956         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
9957         (Get_Ceiling): New subprogram that returns
9958         the ceiling priority of the protected object.
9959         (Set_Ceiling): New subprogram that sets the new ceiling priority of
9960         the protected object.
9961
9962         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
9963
9964         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
9965
9966 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
9967
9968         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
9969         requeuing to the same protected object to give higher priority tasks
9970         the opportunity to execute.
9971
9972 2006-10-31  Robert Dewar  <dewar@adacore.com>
9973
9974         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
9975         add more precise check for the character sequence that follows '[' to
9976         avoid possible confusion in case if '[' is the last character of a
9977         string literals.
9978         (Scan_Wide): Always allow brackets encoding
9979
9980 2006-10-31  Olivier Hainque  <hainque@adacore.com>
9981
9982         * s-stchop.ads: make this unit preelaborate. This is desirable in
9983         general and made mandatory by the use of this unit by s-taprop which
9984         is itself preelaborate.
9985
9986         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
9987         Td_Events component.
9988
9989 2006-10-31  Vincent Celier  <celier@adacore.com>
9990
9991         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
9992         in file names.
9993
9994 2006-10-31  Vincent Celier  <celier@adacore.com>
9995
9996         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
9997
9998 2006-10-31  Vincent Celier  <celier@adacore.com>
9999
10000         * makegpr.adb (Check_Compilation_Needed): Take into account path names
10001         with spaces.
10002         (Check_Compilation_Needed): When checking a C or C++ source, do not
10003         resolve symbolic links.
10004         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
10005         When not in verbose mode and Ellipse is True, display "..." for the
10006         first argument with Display set to False.
10007         (Build_Global_Archive): Always set Display True for the first object
10008         file. Call Display_Command with Ellipse set to True.
10009
10010 2006-10-31  Matt Heaney  <heaney@adacore.com>
10011
10012         * a-crbtgo.ads: Commented each subprogram
10013
10014         * a-crbtgo.adb: Added reference to book from which algorithms were
10015         adapted.
10016
10017         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
10018         indicate which child.
10019         (Generic_Conditional_Insert): changed parameter name from "Success" to
10020         "Inserted".
10021         (Generic_Unconditional_Insert_With_Hint): improved algorithm
10022
10023         * a-coorse.adb (Replace_Element): changed parameter name in call to
10024         conditional insert operation.
10025
10026         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
10027
10028         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
10029         Generic_Iteration
10030
10031         * a-ciorse.adb (Replace_Element): changed parameter name in call to
10032         conditional insert operation.
10033
10034         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
10035         Generic_Iteration.
10036
10037         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
10038         instead of mode inout.
10039
10040         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
10041         draft
10042         (Generic_Read): preserve existing buckets array if possible
10043         (Generic_Write): don't send buckets array length anymore
10044
10045         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
10046         instead of mode inout.
10047
10048         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
10049         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
10050
10051         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
10052         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
10053         (Replace_Element): local operation is now an instantiation
10054
10055         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
10056         check current length.
10057         (Generic_Replace_Element): new operation
10058
10059 2006-10-31  Doug Rupp  <rupp@adacore.com>
10060
10061         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
10062         Call TBK$SYMBOLIZE without omitting parameters.
10063
10064 2006-10-31  Vincent Celier  <celier@adacore.com>
10065
10066         * symbols-processing-vms-ia64.adb,
10067         symbols-processing-vms-alpha.adb (Process): Do not include symbols
10068         that come from generic instantiations in bodies.
10069
10070 2006-10-31  Pat Rogers  <rogers@adacore.com>
10071
10072         * a-rttiev.ads, a-rttiev.adb: 
10073         This is a significant redesign primarily for the sake of automatic
10074         timer task termination but also to fix a design flaw.
10075         Therefore we are now using an RTS lock, instead of a protected
10076         object, to provide mutual exclusion to the queue of pending events
10077         and the type Timing_Event is no longer a protected type.
10078
10079 2006-10-31  Robert Dewar  <dewar@adacore.com>
10080             Cyrille Comar  <comar@adacore.com>
10081             Ben Brosgol  <brosgol@adacore.com>
10082
10083         * debug.adb:  Update flags documentation
10084
10085         * gnat_ugn.texi: Add documentation for new -gnatwq switch
10086         Clean up documentation for several other warning switches
10087         Clarify how task stack size can be specified with various
10088         versions of Windows.
10089         Add note that -gnatVo includes ranges including loops
10090         Add documentation for -gnatL switch
10091         Add note on elaboration warning for initializing variables
10092         Add documentation for new -gnatwt warning switch
10093         Document new form of pragma Warnings (On|Off, string)
10094         Add comment on use of pragma Warnings to control warnings
10095         Add documentation for -gnatjnn switch
10096         Modify section on interfacing with C for VMS 64-bit.
10097         Add doc for -gnatVe/E
10098         Add documentation of new warning flags -gnatww/-gnatwW
10099         Add warnings about address clause overlays to list of warnings
10100         (Exception Handling Control): Document that the option --RTS must be
10101         used consistently for gcc and gnatbind.
10102         Clarify that inlining is not always possible
10103         Update documentation on pragma Unchecked_Union.
10104
10105         * gnat_rm.texi: 
10106         Add documentation for new extended version of pragma Obsolescent
10107         Add documentation for implementation defined attribute 'Stub_Type.
10108         Add note on use of Volatile in asm statements
10109         Add documentation on use of pragma Unreferenced in context clause
10110         Document new form of pragma Warnings (On|Off, pattern)
10111         Document pragma Wide_Character_Encoding
10112         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
10113         enforced if code generation is active.
10114         Add section on pragma Suppress to document GNAT specific check
10115         Alignment_Check
10116         Clarify difference between No_Dispatching_Calls & No_Dispatch.
10117         Add documentation for pragma Restrictions (No_Elaboration_Code)
10118
10119         * gnat-style.texi: 
10120         Add comments on layout of subprogram local variables in the
10121         presence of nested subprograms.
10122
10123         * ug_words: Resync.
10124
10125         * elists.ads: Minor reformatting
10126         Node returns Node_Or_Entity_Id (doc change only)
10127
10128         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
10129
10130         * g-arrspl.ads (Create): Update comments.
10131
10132         * sem.ads: Add details on the handling of the scope stack.
10133
10134         * usage.adb: Update documentation.
10135
10136         * validsw.ads, validsw.adb: 
10137         Add definition of Validity_Check_Components and implement -gnatVe/E
10138
10139         * vms_data.ads: Add missing VMS qualifiers.
10140
10141         * s-addope.ads: Add documentation on overflow and divide by zero
10142
10143 2006-10-31  Robert Dewar  <dewar@adacore.com>
10144             Thomas Quinot  <quinot@adacore.com>
10145             Arnaud Charlet  <charlet@adacore.com>
10146
10147         * fmap.adb: Put routines in alpha order
10148
10149         * g-boumai.ads: Remove redundant 'in' keywords
10150
10151         * g-cgi.adb: Minor reformatting
10152
10153         * g-cgi.ads: Remove redundant 'in' keywords
10154
10155         * get_targ.adb: Put routines in alpha order
10156
10157         * prj-attr.ads: Minor reformatting
10158
10159         * s-atacco.ads: Minor reformatting
10160
10161         * scn.adb: Put routines in alpha order
10162
10163         * sinput-l.adb: Minor comment fix
10164
10165         * sinput-p.adb: Minor comment fix
10166
10167         * s-maccod.ads: Minor reformatting
10168
10169         * s-memory.adb: Minor reformatting
10170
10171         * s-htable.adb: Fix typo in comment.
10172
10173         * s-secsta.adb: Minor comment update.
10174
10175         * s-soflin.adb: Minor reformatting
10176
10177         * s-stoele.ads: 
10178         Add comment about odd qualification in Storage_Offset declaration
10179
10180         * s-strxdr.adb: 
10181         Remove unnecessary 'in' keywords for formal parameters.
10182
10183         * treeprs.adt: Minor reformatting
10184
10185         * urealp.adb: Put routines in alpha order
10186
10187         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
10188         taking string.
10189
10190         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
10191
10192         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
10193
10194         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
10195         workaround as on other platforms.
10196
10197         * g-eacodu-vms.adb: Remove redundant 'in' keywords
10198         * g-expect-vms.adb: Remove redundant 'in' keywords
10199
10200         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
10201         clear error message if the list-of-files file cannot be opened.
10202
10203         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
10204         equality operator is always visible.
10205
10206         * lang.opt: Woverlength-strings: New option.
10207
10208         * nmake.adt: 
10209         Update copyright, since nmake.ads and nmake.adb have changed.
10210
10211         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
10212         (Binder_Output_Time_Stamps_Set): removed.
10213         (Old_Binder_Output_Time_Stamp): idem.
10214         (New_Binder_Output_Time_Stamp): idem.
10215         (Recording_Time_From_Last_Bind): idem.
10216         (Recording_Time_From_Last_Bind): Make constant.
10217
10218         * output.ads, output.adb (Write_Str): Allow LF characters
10219         (Write_Spaces): New procedure
10220
10221         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
10222
10223         * inline.adb: Minor reformatting
10224
10225         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
10226
10227         * s-mastop-vms.adb: Remove redundant 'in' keywords
10228
10229         * s-osprim-vms.adb: Remove redundant 'in' keywords
10230
10231         * s-trafor-default.adb: Remove redundant 'in' keywords
10232
10233         * 9drpc.adb: Remove redundant 'in' keywords
10234
10235         * s-osinte-mingw.ads: Minor reformatting
10236
10237         * s-inmaop-posix.adb: Minor reformatting
10238
10239         * a-direio.ads: Remove quotes from Compile_Time_Warning message
10240
10241         * a-exexda.adb: Minor code reorganization
10242
10243         * a-filico.adb: Minor reformatting
10244
10245         * a-finali.adb: Minor reformatting
10246
10247         * a-nudira.ads: Remove quote from Compile_Time_Warning message
10248
10249         * a-numeri.ads: Minor reformatting
10250
10251         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
10252
10253         * exp_pakd.ads: Fix obsolete comment
10254
10255         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
10256         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
10257         Probably not a bug, but certainly neater and more efficient.
10258
10259         * a-tienio.adb: Minor reformatting
10260
10261         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
10262         Avoid assuming low bound of string is 1.
10263
10264         * gnatbind.adb: Change Bindusg to package and rename procedure as
10265         Display, which now ensures that it only outputs usage information once.
10266         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
10267
10268         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
10269         Table'First.
10270
10271         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
10272         warning.
10273         (Match): Add pragma Assert to ensure that Matches'First is zero
10274
10275         * g-regpat.ads (Match): Document that Matches lower bound must be zero
10276
10277         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
10278         documented preconditions (also kills warnings about bad indexes).
10279
10280         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
10281         is 1.
10282         (Build_Import_Library): Ditto;
10283
10284         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
10285
10286         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
10287
10288         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
10289         lower bound of choice table is 1.
10290
10291         * sem_case.ads (Analyze_Choices): Document that lower bound of
10292         Choice_Table is 1.
10293
10294         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
10295         string is 1.
10296
10297         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
10298         and add appropriate Assert pragma to suppress warnings.
10299
10300         * atree.h, atree.ads, atree.adb
10301         Change Elist24 to Elist25
10302         Add definitions of Field28 and Node28
10303         (Traverse_Field): Use new syntactic parent table in sinfo.
10304
10305         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
10306
10307         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
10308
10309         * exp_tss.adb: Put routines in alpha order
10310
10311         * fe.h: Remove redundant declarations.
10312
10313 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
10314
10315         * utils.c (builtin_function): Rename to gnat_builtin_function.
10316         Move common code to add_builtin_function.
10317         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
10318         gnat_builtin_function.
10319         * gigi.h (builtin_function): Rename to gnat_builtin_function.
10320         Change the signature.
10321
10322 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
10323
10324         * Makefile.in: Add TEXI2PDF definition.
10325         * Make-lang.in: Add "ada.pdf" target.
10326
10327 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
10328
10329         * decl.c, utils.c: Fix comment typos.
10330         * utils.c: Fix a typo.
10331
10332 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
10333
10334         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
10335         on "pure" Ada subprograms if SJLJ exceptions are used.
10336         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
10337         on the declaration node of JMPBUF_SAVE.
10338         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
10339         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
10340         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
10341
10342 2006-08-20  Laurent GUERBY  <laurent@guerby.net>
10343
10344         PR ada/28716
10345         g-socket.adb (Bind_Socket): Call Set_Address.
10346
10347 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
10348
10349         PR ada/15802
10350         * decl.c (same_discriminant_p): New static function.
10351         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
10352         subtype and we have discriminants, fix up the COMPONENT_REFs
10353         for the discriminants to make them reference the corresponding
10354         fields of the parent subtype after it has been built.
10355
10356 2006-09-15  Roger Sayle  <roger@eyesopen.com>
10357
10358         PR ada/18817
10359         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
10360         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
10361
10362 2006-09-13  Olivier Hainque  <hainque@adacore.com>
10363
10364         PR ada/29025
10365         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
10366         of a SAVE_EXPR, just make the operand addressable/not-readonly and
10367         let the common gimplifier code make and propagate a temporary copy.
10368         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
10369         out/in-out actuals and defer setting the addressable/readonly bits
10370         to the gimplifier.
10371
10372 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
10373
10374         PR ada/28591
10375         * decl.c (components_to_record): Defer emitting debug info for the
10376         record type associated with the variant until after we are sure to
10377         actually use it.
10378
10379 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
10380
10381         PR ada/21952
10382         * gigi.h (gnat_internal_attribute_table): Declare.
10383         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
10384         * utils.c (gnat_internal_attribute_table): New global variable.
10385         (builtin_function): Always call decl_attributes on the builtin.
10386         (handle_const_attribute): New static function.
10387         (handle_nothrow_attribute): Likewise.
10388
10389 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10390
10391         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
10392
10393 2006-06-23  Olivier Hainque  <hainque@adacore.com>
10394
10395         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
10396         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
10397
10398 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
10399             Eric Botcazou  <ebotcazou@adacore.com>
10400
10401         PR ada/18692
10402         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
10403         check-gnat into check-acats.
10404
10405 2006-06-17  Karl Berry  <karl@gnu.org>
10406
10407         * gnat-style.texi (@dircategory): Use "Software development"
10408         instead of "Programming", following the Free Software Directory.
10409
10410 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10411
10412         PR ada/27944
10413         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
10414
10415 2006-06-06  Laurent GUERBY  <laurent@guerby.net>
10416
10417         PR ada/27769
10418         mlib-utl.adb: Use Program_Name.
10419
10420 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
10421
10422         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
10423         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
10424         trans.c, utils.c: Fix comment typos.  Follow spelling
10425         conventions.
10426         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
10427         conventions.
10428
10429 2006-05-19  Nicolas Setton  <setton@adacore.com>
10430
10431         * misc.c (gnat_dwarf_name): New function.
10432         (LANG_HOOKS_DWARF_NAME): Define to it.
10433
10434 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
10435
10436         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
10437         (ada/misc.o): Likewise.
10438         (ada/utils.o): Likewise.
10439
10440 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
10441
10442         * Makefile.in: Add Ada support for GNU/kFreeBSD.
10443         * s-osinte-kfreebsd-gnu.ads: New file.
10444
10445 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
10446
10447         * Make-lang.in: Rename docdir to gcc_docdir.
10448
10449 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
10450
10451         * gigi.h (get_ada_base_type): Delete.
10452         * utils2.c (get_ada_base_type): Likewise.
10453         * trans.c (convert_with_check): Operate in the real base type.
10454
10455 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10456
10457         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
10458
10459 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
10460
10461         * utils.c (create_var_decl): Use have_global_bss_p when deciding
10462         whether to make the decl common.
10463
10464 2006-02-20  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
10465
10466         * Make-lang.in (Ada): Remove.
10467         (.PHONY): Remove Ada
10468
10469 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
10470
10471         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
10472         aggregate, check the interpretations of the other operand to find one
10473         that may be a boolean array.
10474
10475         (Analyze_Selected_Component): Fix flow-of-control typo in case where
10476         the prefix is a private extension.
10477
10478 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
10479
10480         PR ada/26315
10481         * utils2.c (find_common_type): If both input types are BLKmode and
10482         have the same constant size, keep using the first one.
10483
10484         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
10485
10486         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
10487
10488         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
10489
10490 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
10491
10492         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 
10493         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
10494         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 
10495         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
10496         Abort_Defer/Undefer pairs to avoid the possibility of a task being
10497         aborted while owning a lock.
10498
10499 2006-02-17  Javier Miranda  <miranda@adacore.com>
10500             Robert Dewar  <dewar@adacore.com>
10501
10502         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
10503         through an access to class-wide interface we force the displacement of
10504         the pointer to the allocated object to reference the corresponding
10505         secondary dispatch table.
10506         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
10507         if Long_Shifts are supported on the target, even if 64 bit divides
10508         are not supported (configurable run time mode).
10509         (Expand_N_Type_Conversion): Do validity check if validity checks on
10510         operands are enabled.
10511         (Expand_N_Qualified_Expression): Do validity check if validity checks
10512         on operands are enabled.
10513
10514 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
10515
10516         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
10517         must be materialized when the renamed expression is an explicit
10518         dereference.
10519
10520 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
10521
10522         * freeze.adb (Statically_Discriminated_Components): Return false if
10523         the bounds of the type of the discriminant are not static expressions.
10524
10525         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
10526         the bounds of the discriminant type are not static.
10527
10528 2006-02-17  Robert Dewar  <dewar@adacore.com>
10529
10530         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
10531         then we close To if it is valid.
10532
10533 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
10534
10535         * init.c (facility_resignal_table): new array
10536         (__gnat_default_resignal_p): enhance default predicate to resignal if
10537         VMS condition has one of the predefined facility codes.
10538
10539 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
10540
10541         * Makefile.in: Use VMS64 specialized versions of several units in
10542         Interfaces.C hierarchy to be compatible with HP C default size choices.
10543         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
10544
10545 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
10546
10547         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
10548         instantiation, the corresponding entity is the related_instance of the
10549         wrapper package created for the instance.
10550
10551 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
10552
10553         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
10554         the current instance is nested within another instance in a child unit.
10555
10556 2006-02-17  Javier Miranda  <miranda@adacore.com>
10557             Ed Schonberg  <schonberg@adacore.com>
10558
10559         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
10560         type we cannot inherit the primitive operations; we inherit the
10561         Corresponding_Record_Type (which has the list of primitive operations).
10562         (Check_Anonymous_Access_Types): When creating anonymous access types for
10563         access components, use Rewrite in order to preserve the tree structure,
10564         for ASIS use.
10565         (Analyze_Object_Declaration): For limited types with access
10566         discriminants with defaults initialized by an aggregate, obtain
10567         subtype from aggregate as for other mutable types.
10568         (Derived_Type_Declaration): If the derived type is a limited interface,
10569         set the corresponding flag (Is_Limited_Record is not sufficient).
10570
10571 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
10572
10573         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
10574         to inline a function that returns an unconstrained type, the return
10575         expression must be the first variable declared in the body of the
10576         function.
10577
10578 2006-02-17  Javier Miranda  <miranda@adacore.com>
10579
10580         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
10581         abstract interface type, the static analysis is not enough to know if
10582         the interface is implemented or not by the source tagged type. Hence
10583         we must pass the work to the expander to generate the required code to
10584         evaluate the conversion at run-time.
10585         (Resolve_Equality_Op): Do not apply previous
10586         transformation if expansion is disasbled, to prevent anomalies when
10587         locating global references in a generic unit.
10588
10589 2006-02-17  Vincent Celier  <celier@adacore.com>
10590
10591         * snames.ads, snames.adb: New standard names for new project attributes:
10592         archive_builder, archive_indexer, compiler_pic_option,
10593         config_body_file_name, config_body_file_name_pattern,
10594         config_file_switches, config_file_unique, config_spec_file_name,
10595         config_spec_file_name_pattern, default_builder_switches,
10596         default_global_compiler_switches, default_language,
10597         dependency_file_kind, global_compiler_switches, include_path,
10598         include_path_file, language_kind, linker_executable_option,
10599         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
10600         roots, runtime_project.
10601
10602 2006-02-17  Matthew Heaney  <heaney@adacore.com>
10603
10604         * a-convec.ads, a-convec.adb: 
10605         (operator "&"): handle potential overflow for large index types
10606         (Insert): removed Contraint_Error when using large index types
10607         (Insert_Space): removed Constraint_Error for large index types
10608         (Length): moved constraint check from Length to Insert
10609
10610         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
10611         as not null access.
10612         Explicit raise statements now include an exception message.
10613         (operator "&"): handle potential overflow for large index types
10614         (Insert): removed Contraint_Error when using large index types
10615         (Insert_Space): removed Constraint_Error for large index types
10616         (Length): moved constraint check from Length to Insert
10617
10618 2006-02-17  Robert Dewar  <dewar@adacore.com>
10619
10620         * s-wchcnv.adb: Document handling of [ on output (we do not change
10621         this to ["5B"] and the new comments say why not.
10622
10623         * gnat_ugn.texi: 
10624         Add note for -gnatVo that this now includes the cases of type
10625         conversions and qualified expressions.
10626         Add comments on handling of brackets encoding for Text_IO
10627
10628 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
10629             Thomas Quinot  <quinot@adacore.com>
10630             Robert Dewar  <dewar@adacore.com>
10631             Javier Miranda  <miranda@adacore.com>
10632
10633         * expander.adb: Fix typo in comment
10634
10635         * exp_pakd.adb: Fix typo
10636         Minor comment reformatting.
10637
10638         * g-dyntab.adb: Minor reformatting
10639
10640         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
10641         aliased subprograms to look for the abstract interface subprogram.
10642
10643 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
10644
10645         * env.c (__gnat_setenv): Use size_t.
10646         (__gnat_unsetenv): Likewise.
10647         (__gnat_clearenv): Likewise.
10648
10649 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
10650
10651         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
10652
10653 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
10654
10655         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
10656         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
10657         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
10658         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
10659         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
10660         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
10661         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
10662         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
10663         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
10664         no longer used.
10665
10666 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
10667
10668         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
10669         protection against race conditions is not needed.
10670         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
10671         fallback handler.
10672         (Set_Specific_Handler): Add mutual exclusive access to the specific
10673         handler.
10674         (Specific_Handler): Add mutual exclusive access for retrieving the
10675         specific handler.
10676
10677         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
10678         back handler.
10679
10680         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
10681         Fall_Back_Handler and Specific_Handler.
10682
10683         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
10684         termination handlers.
10685         Set two different owerflow depending on the maximal stack size.
10686
10687         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
10688         protection against race conditions is not needed when executing the
10689         task termination handler.
10690
10691 2006-02-13  Robert Dewar  <dewar@adacore.com>
10692
10693         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
10694         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
10695         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
10696         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
10697         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
10698         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
10699         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
10700         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
10701         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
10702         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
10703         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
10704         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
10705         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
10706         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
10707         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
10708         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
10709         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
10710         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
10711         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
10712         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
10713         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
10714         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
10715         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
10716         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
10717         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
10718         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
10719         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
10720         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
10721         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
10722         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
10723         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
10724         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
10725         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
10726         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
10727         reformatting.
10728
10729 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
10730
10731         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
10732         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
10733         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
10734         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
10735         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
10736         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
10737         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
10738         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
10739         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
10740
10741 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
10742
10743         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
10744         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
10745         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
10746         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
10747         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
10748         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
10749         replaced by anonymous access type.
10750         (pthread_sigmask): Now take an access sigset_t
10751
10752         * s-osinte-hpux.ads:  Ditto.
10753         (pthread_mutex_t, pthread_cond_t): Update definitions to support
10754         properly 32 and 64 bit ABIs.
10755
10756 2006-02-13  Pascal Obry  <obry@adacore.com>
10757
10758         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
10759         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
10760         s-taprop-linux.adb, s-taprop-solaris.adb,
10761         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
10762         adjustement is already done when calling this routine.
10763
10764 2006-02-13  Pascal Obry  <obry@adacore.com>
10765
10766         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
10767         table to take advantage of the 16 priority levels available on Windows
10768         2000 and XP. On NT4 there are only 7 priority levels, this is properly
10769         supported by this new mapping.
10770
10771 2006-02-13  Nicolas Setton  <setton@adacore.com>
10772
10773         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
10774         (get_encoding): New subprogram. Extracts the encodings from an encoded
10775         Ada name.
10776
10777 2006-02-13  Pascal Obry  <obry@adacore.com>
10778             Nicolas Roche  <roche@adacore.com>
10779             Arnaud Charlet  <charlet@adacore.com>
10780
10781         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
10782         support.
10783         (__gnat_try_lock): Add unicode support by using a specific section on
10784         Windows.
10785         (__gnat_get_current_dir): Idem.
10786         (__gnat_open_read): Idem.
10787         (__gnat_open_rw): Idem.
10788         (__gnat_open_create): Idem.
10789         (__gnat_create_output_file): Idem.
10790         (__gnat_open_append): Idem.
10791         (__gnat_open_new): Idem.
10792         (__gnat_file_time_name): Idem.
10793         (__gnat_set_file_time_name): Idem.
10794         (__gnat_stat): Idem.
10795         (win32_no_block_spawn): Idem.
10796         (__gnat_locate_exec_on_path): Idem.
10797         (__gnat_opendir): New routine.
10798         (__gnat_closedir): Idem.
10799         (__gnat_readdir): Add new parameter length (pointer to int). Update
10800         implementation to use it and add specific Win32 code for Unicode
10801         support.
10802         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
10803         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
10804         (convert_addresses): Do not define this dummy routine on VMS.
10805
10806         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
10807         runtime Unicode support will be activated.
10808         (S2WS): String to Wide-String conversion. This version just copy a
10809         string in non Unicode version.
10810         (WS2S): Wide-String to String conversion. This version just copy a
10811         string in non Unicode version.
10812
10813         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
10814         (Open): Now import __gnat_opendir from adaint.c.
10815         (Read): Change the implementation to support unicode characters. It is
10816         not possible to use strlen() on Windows as this version supports only
10817         standard ASCII characters. So the length of the directory entry is now
10818         returned from the imported __gnat_readdir routine.
10819         Update copyright notice.
10820
10821         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
10822         (opendir): Moved to adaint.c.
10823
10824         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
10825         (Get_Directory): Fix wrong indexing.
10826         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
10827         __gnat_getenv from env.c
10828         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
10829         from env.c
10830
10831         * env.h, env.c: New file.
10832
10833         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
10834         adaint.c by __gnat_getenv from env.c
10835
10836         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
10837         adaint.c by __gnat_getenv from env.c
10838
10839         * Make-lang.in: Add env.o in the list of C object needed by gnat1
10840         and gnatbind.
10841         Update dependencies.
10842
10843 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10844             Olivier Hainque  <hainque@adacore.com>
10845             Eric Botcazou  <ebotcazou@adacore.com>
10846
10847         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
10848         
10849         * gigi.h (value_factor_p): Add prototype and description, now public.
10850
10851         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
10852         promotion for field with rep clause if the associated size was proven
10853         to be in error.
10854         Expand comments describing attempts to use a packable type.
10855         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
10856         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
10857         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
10858         necessary since these are not different types and pointers may
10859         actually designate any subtype in this hierarchy.
10860         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
10861         discriminants but put them into record only if not Unchecked_Union;
10862         pass flag to components_to_record showing Unchecked_Union.
10863         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
10864         components before variants; don't set TYPE_UNCHECKED_UNION_P.
10865         (components_to_record): New argument UNCHECKED_UNION.
10866         Remove special case code for Unchecked_Union and instead use main code
10867         with small changes.
10868
10869         PR ada/26096
10870         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
10871         variable with the expression being built, only its inner field.
10872
10873         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
10874         emit_sequence_entry_statements.
10875         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
10876         (establish_gnat_vms_condition_handler): Move before
10877         Subprogram_Body_to_gnu.
10878         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
10879         for a subprogram if it has a foreign convention or is exported.
10880         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
10881         substituted for a CONST_DECL.
10882         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
10883         Etype to assoc_to_constructor.
10884         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
10885         discriminants of Unchecked_Union.
10886         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
10887         don't need cluttering preprocessor directives.
10888         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
10889         condition handler as current in the compiled function.
10890         (body_with_handlers_p): New function. Tell whether a given sequence of
10891         statements node is attached to a package or subprogram body and involves
10892         exception handlers possibly nested within inner block statements.
10893         (emit_sequence_entry_statements): New function, to emit special
10894         statements on entry of sequences when necessary. Establish GNAT
10895         condition handler in the proper cases for VMS.
10896         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
10897         emit_sequence_entry_statements.
10898
10899         * utils2.c (find_common_type): If both input types are BLKmode and
10900         have a constant size, use the smaller one.
10901         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
10902         the same.
10903
10904         * utils.c (value_factor_p): Make public, to allow uses from other gigi
10905         units.
10906         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
10907         (convert, case UNION_TYPE): Remove special treatment for unchecked
10908         unions.
10909
10910         PR ada/18659
10911         (update_pointer_to): Update variants of pointer types to unconstrained
10912         arrays by attaching the list of fields of the main variant.
10913
10914 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
10915             Robert Dewar  <dewar@adacore.com>
10916
10917         * a-exexpr.adb, a-exexpr-gcc.adb
10918         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
10919         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
10920         Remove code unused for exception propagation for the compiler itself
10921         from a-except.adb and update to still share separate packages.
10922
10923         * a-except.ads, a-except.adb: Ditto.
10924         Add comments that this version is now used only by the compiler and
10925         other basic tools. The full version that includes the Ada 2005 stuff
10926         is in separate files a-except-2005.ads/adb. The reason is that we do
10927         not want to cause bootstrap problems with compilers not recognizing
10928         Wide_Wide_String.
10929         Add exception reason code PE_Implicit_Return
10930         Add new exception reason code (Null Exception_Id)
10931
10932         * a-except-2005.adb, a-except-2005.ads: New files.
10933
10934         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
10935
10936         * s-wchcon.adb: New file.
10937
10938         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
10939         (traceback.o deps): Likewise.
10940         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
10941         Activate build of GMEM instrumentation library on VMS targets.
10942         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
10943         Use a-except-2005.ads/adb for all run-time library builds unless
10944         specified otherwise.
10945         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
10946         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
10947         Use s-parame.adb on all native platforms.
10948         Use s-parame-vxworks.adb on all vxworks platforms.
10949         Add env.c env.h in LIBGNAT_SRCS
10950         Add env.o in LIBGNAT_OBJS
10951         (GNATMAKE_OBJS): Remove ctrl_c.o object.
10952         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
10953         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
10954         supports VxWorks 6 RTPs.
10955         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
10956         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
10957
10958         * types.h, types.ads (Terminate_Program): New exception
10959         Add comment on modifying multiple versions of a-except.adb when the
10960         table of exception reasons is modified.
10961         Add exception reason code PE_Implicit_Return
10962         Add new exception reason code (Null Exception_Id)
10963
10964         * clean.adb (Initialize): Get the target parameters before checking
10965         if target is OpenVMS. Move the OpenVMS specific code here from package
10966         body elaboration code.
10967
10968 2006-02-13  Thomas Quinot  <quinot@adacore.com>
10969             Vincent Celier  <celier@adacore.com>
10970             Robert Dewar  <dewar@adacore.com>
10971
10972         * ali-util.adb (Get_File_Checksum): Update to account for change in
10973         profile of Initialize_Scanner.
10974
10975         * gprep.adb (Gnatprep): Update to account for change in profile of
10976         Initialize_Scanner.
10977         (Process_One_File): Same.
10978
10979         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
10980         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
10981         that behaviour using the new Unit information recorded in the source
10982         files table, rather than going through all units every time.
10983         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
10984         (Get_Source_Unit): Same.
10985
10986         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
10987         change in profile of Initialize_Scanner.
10988         (Prepare_To_Preprocess): Same.
10989
10990         * lib.ads: Fix typo in comment (templace -> template).
10991
10992         * prj-part.adb (Parse_Single_Project): Update to account for change in
10993         profile of Initialize_Scanner.
10994
10995         * scn.adb (Initialize_Scanner): Account for change in profile of
10996         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
10997         Also record the association of the given Source_File_Index to the
10998         corresponding Unit_Number_Type.
10999
11000         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
11001         procedure.
11002         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
11003         Remove Unit formal for generic scanner: this formal
11004         is only relevant to Scn (the scanner instance used to parse Ada source
11005         files), not to other instances. Update comment accordingly.
11006         (Scan): Use new function Snames.Is_Keyword_Name.
11007
11008         * sinfo-cn.adb: Fix typo in comment.
11009
11010         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
11011         Unit.
11012
11013         * sinput.ads (Source_File_Record): New component Unit, used to capture
11014         the unit identifier (if any) associated to a source file.
11015
11016         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
11017         Unit in Source_File_Record.
11018
11019         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
11020         in profile of Initialize_Scanner.
11021
11022         * scans.adb (Initialize_Ada_Keywords): New procedure
11023
11024         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
11025         Ada keywords in the Namet table, without the need to call
11026         Initialize_Scanner.
11027
11028         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
11029         (Is_Keyword_Name): New function
11030
11031         * snames.ads: Add subtype Configuration_Pragma_Names
11032         Add pragma Ada_2005 (synonym for Ada_05)
11033         (Is_Keyword_Name): New function
11034
11035         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
11036
11037 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
11038
11039         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
11040         index.
11041
11042         * a-stwima.adb (To_Set): Add extra check when N = 0.
11043
11044         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
11045
11046 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
11047
11048         * s-parame-mingw.adb, s-parame-linux.adb,
11049         s-parame-solaris.adb: Removed, replaced by s-parame.adb
11050
11051         * s-parame-vxworks.ads: Fix typo.
11052
11053         * s-parame-vxworks.adb: New file.
11054
11055         * s-parame.adb: Version now used by all native platforms.
11056         (Default_Stack_Size): Use 2 megs for default stack size and use
11057         __gl_default_stack_size when available.
11058         (Minimum_Stack_Size): Use 12K.
11059
11060         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
11061         (Create_Task): Refine implementation taking advantage of the XP stack
11062         size support. On XP, we now create the thread using the flag
11063         STACK_SIZE_PARAM_IS_A_RESERVATION.
11064
11065         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
11066
11067         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
11068         XP and 0 on older Windows versions.
11069
11070         * interfac-vms.ads: Removed, no longer used.
11071
11072 2006-02-13  Matthew Heaney  <heaney@adacore.com>
11073
11074         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
11075         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
11076         a-cohase.adb: All explicit raise statements now include an exception
11077         message.
11078
11079         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
11080         (Update_Element_Preserving_Key): renamed op to just Update_Element.
11081         Explicit raise statements now include an exception message
11082
11083         * a-cihase.ads, a-cohase.ads: Removed comment.
11084
11085         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
11086         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
11087         a-szbzha.adb, a-szfzha.ads: New files.
11088
11089 2006-02-13  Matthew Heaney  <heaney@adacore.com>
11090
11091         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
11092         quicksort.
11093
11094 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
11095
11096         * lang.opt: Wvariadic-macros: New option.
11097         Wold-style-definition: Likewise.
11098         Wmissing-format-attribute: Likewise.
11099
11100         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
11101         -Wold-style-definition and -Wmissing-format-attribute.
11102
11103 2006-02-13  Robert Dewar  <dewar@adacore.com>
11104
11105         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
11106
11107         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
11108
11109 2006-02-13  Nicolas Roche  <roche@adacore.com>
11110
11111         * a-envvar.adb, a-envvar.ads: New files.
11112
11113 2006-02-13  Douglas Rupp  <rupp@adacore.com>
11114
11115         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
11116
11117         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
11118
11119 2006-02-13  Pat Rogers  <rogers@adacore.com>
11120
11121         * a-rttiev.adb, a-rttiev.ads: New files.
11122
11123 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
11124
11125         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
11126         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
11127
11128         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
11129
11130 2006-02-13  Robert Dewar  <dewar@adacore.com>
11131
11132         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
11133         sem_case.adb: Minor code reorganization (not Present should be No)
11134
11135 2006-02-13  Geert Bosch  <bosch@adacore.com>
11136             Gary Dismukes  <dismukes@adacore.com>
11137
11138         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
11139         0, since the lower bound of the actual string may be greater than one.
11140
11141         PR ada/20753
11142         * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
11143         layout is requested.
11144
11145 2006-02-13  Vincent Celier  <celier@adacore.com>
11146
11147         * back_end.adb (Scan_Compiler_Arguments): Check if
11148         Search_Directory_Present is True and, if it is, add the argument in
11149         the source search directory path.
11150
11151         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
11152         Search_Directory_Present to True.
11153
11154 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
11155
11156         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
11157         volatile, to tell the compiler to preserve this variable at any level
11158         of optimization.
11159         (Gen_Versions_Ada): Temporarily work around codegen bug.
11160
11161 2006-02-13  Vincent Celier  <celier@adacore.com>
11162
11163         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
11164         gcc to link with option -shared-libgcc.
11165         (Gnatlink): Remove duplicate switches -shared-libgcc
11166
11167 2006-02-13  Robert Dewar  <dewar@adacore.com>
11168
11169         * gnatvsn.ads (Current_Year): New constant, used to easily update
11170         copyright on all GNAT tools.
11171
11172         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
11173         copyright notice.
11174
11175 2006-02-13  Robert Dewar  <dewar@adacore.com>
11176
11177         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
11178         after hyphen (small aesthetic change useful for a range of numbers
11179         using ^-^.
11180         Suppress range checks for a couple of assignments which otherwise
11181         cause validity checks with validity checking turned on.
11182
11183         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
11184         Improvement in error message for object.
11185         (Rep_Item_Too_Late): Remove '!' in warning message.
11186
11187 2006-02-13  Robert Dewar  <dewar@adacore.com>
11188             Eric Botcazou  <ebotcazou@adacore.com>
11189
11190         * err_vars.ads: Suppress range checks for a couple of assignments
11191         which otherwise cause validity checks with validity checking turned on.
11192         Update comments.
11193
11194         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
11195         Make message unconditional if it is a warning.
11196         (Error_Msg_NEL): Always output warning messages.
11197         Suppress range checks for a couple of assignments which otherwise
11198         cause validity checks with validity checking turned on.
11199
11200         * errout.ads (Message Insertion Characters): Document that '!' is
11201         implied by '?' in error messages.
11202
11203         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
11204         (Gnat1drv): Use a goto to end of main subprogram instead of
11205         Exit_Program (E_Success) so that finalization can occur normally.
11206
11207 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
11208
11209         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
11210         wrapped around.
11211
11212 2006-02-13  Vincent Celier  <celier@adacore.com>
11213
11214         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
11215         Unchecked_Conversion functions.
11216         (Modification_Time): Use direct conversion of OS_Time to Calendar time
11217         when OpenVMS returns False.
11218
11219         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
11220         a-dirval.adb (OpenVMS): New Boolean function
11221
11222 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11223             Thomas Quinot  <quinot@adacore.com>
11224
11225         * checks.adb (Build_Discriminant_Checks): If the expression being
11226         checks is an aggregate retrieve the values of its discriminants to
11227         generate the check, rather than creating a temporary and a reference
11228         to it.
11229         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
11230         (Install_Null_Excluding_Check): Ditto
11231         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
11232         not for the renamed object, so that the actual itype is attached in the
11233         proper context.
11234
11235 2006-02-13  Robert Dewar  <dewar@adacore.com>
11236             Vincent Celier  <celier@adacore.com>
11237
11238         * debug.adb: Eliminate numeric switches for binder/gnatmake
11239
11240         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
11241         switches for the compiler.
11242         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
11243         (Scan_Make_Switches): When failing with an illegal switch, output an
11244         error message with the full switch.
11245         Eliminate numeric switches for binder/gnatmake
11246
11247         * switch.ads, switch.adb (Bad_Switch): New procedure
11248
11249         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
11250         Remove 0-9 as debug flag character possibilities
11251         -d is now controlling the primary stack size when its value is a
11252         positive. Also add checks against invalid values, and support for kb,
11253         mb. Ditto for -D switch.
11254
11255 2006-02-13  Robert Dewar  <dewar@adacore.com>
11256             Serguei Rybin  <rybin@adacore.com>
11257
11258         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
11259         save/restore routines.
11260         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
11261         were not always properly handled previously.
11262         Since we are changing the tree format anyway, also get rid of the
11263         junk obsolete Immediate_Errors flag.
11264         (Tree_Read): Change the way of reading Tree_Version_String - now we
11265         read the version string from the tree even if its length is not the
11266         same as the length of the version string computed from Gnatvsn.
11267         (Search_Directory_Present): New Boolean flag for the compiler.
11268         Define Tree_Version_String as a dynamic string.
11269         (Default_Stack_Size): new variable, used to handle switch -d.
11270
11271         * par-prag.adb: 
11272         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
11273         only for main unit.
11274         Add pragma Ada_2005 (synonym for Ada_05)
11275         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
11276         were not always properly handled previously.
11277
11278         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
11279         explicit Ada_95 to Ada_2005.
11280
11281 2006-02-13  Javier Miranda  <miranda@adacore.com>
11282             Robert Dewar  <dewar@adacore.com>
11283             Ed Schonberg  <schonberg@adacore.com>
11284
11285         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
11286         against errors in the source program: a private types for which the
11287         corresponding full type declaration is missing and pragma CPP_Virtual
11288         is used.
11289         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
11290         (Is_Known_Null): New flag
11291         (Has_Pragma_Pure): New flag
11292         (No_Return): Present in all entities, set only for procedures
11293         (Is_Limited_Type): A type whose ancestor is an interface is limited if
11294         explicitly declared limited.
11295         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
11296         entities. Only used for component marked Is_Tag. If present it stores
11297         the Offset_To_Top function used to provide this value in tagged types
11298         whose ancestor has discriminants.
11299
11300         * exp_ch2.adb: Update status of new Is_Known_Null flag
11301
11302         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
11303
11304         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
11305         the categorization sense if Is_Pure was set by pragma Pure_Function.
11306
11307 2006-02-13  Quentin Ochem  <ochem@adacore.com>
11308             Olivier Hainque  <hainque@adacore.com>
11309
11310         * bindusg.adb: Updated documentation for -d and -D switches.
11311
11312         * raise.h (__gnat_set_globals): added new parameter for
11313         Default_Stack_Size.
11314
11315         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
11316         (__gnat_handle_vms_condition): Adjust context before raise.
11317         (__gnat_install_handler): Restore the global vector setup for GCC
11318         versions before 3.4, as the frame based circtuitry is not available
11319         in this case.
11320         (__gnat_set_globals): added a parameter default_stack_size
11321         (__gl_default_stack_size): new variable.
11322
11323 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11324
11325         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
11326         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
11327         does not exist in the Ada RM.
11328         (Compatible_Int_Bounds): Determine whether two integer range bounds
11329         are of equal length and have the same start and end values.
11330         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
11331         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
11332         aggregate when it is part of an object declaration.
11333         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
11334         constrains discriminants of its parent, add explicitly the discriminant
11335         constraints of the ancestor by retrieving them from the
11336         stored_constraint of the parent.
11337
11338 2006-02-13  Robert Dewar  <dewar@adacore.com>
11339
11340         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
11341         attribute Mechanism_Code is applied to renamed subprogram, modify
11342         prefix to point to base subprogram.
11343         Max/Min attributes now violate Restriction No_Implicit_Conditionals
11344
11345         * sinfo.ads: Document that Mechanism_Code cannot be applied to
11346         renamed subprograms so that the front-end must replace the prefix
11347         appropriately.
11348
11349 2006-02-13  Javier Miranda  <miranda@adacore.com>
11350             Gary Dismukes  <dismukes@adacore.com>
11351
11352         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
11353         availability of RE_Interface_Tag.
11354         (Build_Initialization_Call): Fix wrong access to the discriminant value.
11355         (Freeze_Record_Type): Do not generate the tables associated with
11356         timed and conditional dispatching calls through synchronized
11357         interfaces if compiling under No_Dispatching_Calls restriction.
11358         When compiling for Ada 2005, for a nonabstract
11359         type with a null extension, call Make_Controlling_Function_Wrappers
11360         and insert the wrapper function declarations and bodies (the latter
11361         being appended as freeze actions).
11362         (Predefined_Primitive_Bodies): Do not generate the bodies of the
11363         predefined primitives associated with timed and conditional
11364         dispatching calls through synchronized interfaces if we are
11365         compiling under No_Dispatching_Calls.
11366         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
11367         service is available before generating a call.
11368         (Make_Controlling_Function_Wrappers): New procedure.
11369         (Expand_N_Full_Type_Declaration): Create a class-wide master for
11370         access-to-limited-interfaces because they can be used to reference
11371         tasks that implement such limited interface.
11372         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
11373         procedure spec and body of the Offset_To_Top function that is generated
11374         when the parent of a type with discriminants has secondary dispatch
11375         tables.
11376         (Init_Secondary_Tags): Handle the case in which the parent of the type
11377         containing secondary dispatch tables has discriminants to generate the
11378         correct arguments to call Set_Offset_To_Top.
11379         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
11380
11381         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
11382         Add Wide_[Wide_]Expanded_Name.
11383         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
11384         the same functionality of Get_Prim_Op_Address but applied to predefined
11385         primitive operations because the pointers to the predefined primitives
11386         are now saved in a separate table.
11387         (Parent_Size): Modified to get access to the separate table of primitive
11388         operations or the parent type.
11389         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
11390         functionality of Set_Prim_Op_Address but applied to predefined primitive
11391         operations.
11392         (Set_Signature): New subprogram used to store the signature of a DT.
11393         (Displace): If the Offset_To_Top value is not static then call the
11394         function generated by the expander to get such value; otherwise use
11395         the value stored in the table of interfaces.
11396         (Offset_To_Top): The type of the actual has been changed to Address to
11397         give the correct support to tagged types with discriminants. In this
11398         case this value is stored just immediately after the tag field.
11399         (Set_Offset_To_Top): Two new formals have been added to indicate if the
11400         offset_to_top value is static and hence pass this value to the run-time
11401         to store it in the table of interfaces, or else if this value is dynamic
11402         and then pass to the run-time the address of a function that is
11403         generated by the expander to provide this value for each object of the
11404         type.
11405
11406         * rtsfind.ads (Default_Prin_Op_Count): Removed.
11407         (Default_Prim_Op_Count): New entity
11408         (Get_Predefined_Prim_Op_Address): New entity
11409         (Set_Predefined_Prim_Op_Address): New entity
11410         (RE_Set_Signature): New entity
11411
11412 2006-02-13  Thomas Quinot  <quinot@adacore.com>
11413             Ed Schonberg  <schonberg@adacore.com>
11414
11415         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
11416         Make_Adjust_Call done for a newly-allocated object.
11417
11418         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
11419         in a subprogram are wrapped in a cleanup block, indicate that the
11420         subprogram contains an inner block with an exception handler.
11421         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
11422         Adjust call is for a newly-allocated object. In that case we must not
11423         assume that the finalization list chain pointers are correct (since they
11424         come from a bit-for-bit copy of the original object's pointers) so if
11425         the attach level would otherwise be zero (no change), we set it to 4
11426         instead to cause the pointers to be reset to null.
11427
11428         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
11429         reset chain pointers to null.
11430
11431 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11432
11433         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
11434         string, and the context requires a loop for the assignment (e.g.
11435         because the left-hand side is packed), generate a unique name for the
11436         temporary that holds the string, to prevent spurious name clashes.
11437
11438 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11439             Javier Miranda  <miranda@adacore.com>
11440             Robert Dewar  <dewar@adacore.com>
11441             Gary Dismukes  <dismukes@adacore.com>
11442
11443         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
11444         return unconstrained arrays.
11445         Update comments.
11446         (Expand_Call):  An indirect call through an access parameter of a
11447         protected operation is not a protected call.
11448         Add circuit to raise CE in Ada 2005 mode following call
11449         to Raise_Exception.
11450         (Register_DT_Entry): Do nothing if
11451         the run-time does not give support to abstract interfaces.
11452         (Freeze_Subprogram): In case of dispatching operations, do not generate
11453         code to register the operation in the dispatch table if the source
11454         is compiled with No_Dispatching_Calls.
11455         (Register_Predefined_DT_Entry): Generate code that calls the new
11456         run-time subprogram Set_Predefined_Prim_Op_Address instead of
11457         Set_Prim_Op_Address.
11458
11459         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
11460         on array assignments if the right-hand side is a function call that has
11461         been inlined. Check is performed on the assignment in the block.
11462         (Process_Bounds): If bounds and range are overloaded, apply preference
11463         rule for root operations to disambiguate, and diagnose true ambiguity.
11464         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
11465         a tag-indeterminate right-hand side even when Expander_Active is True.
11466         Needed to ensure that dispatching calls to T'Input are allowed and
11467         get the tag of the target class-wide object.
11468
11469         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
11470         an inherited primitive operation that already overrides several
11471         abstract interface primitives. For transitivity, the new entity must
11472         also override all the abstract interface primitives covered by the
11473         inherited overriden primitive.
11474         Emit warning if new entity differs from homograph in same scope only in
11475         that one has an access parameter and the other one has a parameter of
11476         a general access type with the same designated type, at the same
11477         position in the signature.
11478         (Make_Inequality_Operator): Use source locations of parameters and
11479         subtype marks from corresponding equality operator when creating the
11480         tree structure for the implicit declaration of "/=". This does not
11481         change anything in behaviour except that the decoration of the
11482         components of the subtree created for "/=" allows ASIS to get the
11483         string images of the corresponding identifiers.
11484         (Analyze_Return_Statement): Remove '!' in warning message.
11485         (Check_Statement_Sequence): Likewise.
11486         (Analyze_Subprogram_Body): For an access parameter whose designated type
11487         is an incomplete type imported through a limited_with clause, use the
11488         type of the corresponding formal in the body.
11489         (Check_Returns): Implicit return in No_Return procedure now raises
11490         Program_Error with a compile time warning, instead of beging illegal.
11491         (Has_Single_Return):  Function returning unconstrained type cannot be
11492         inlined if expression in unique return statement is not an identifier.
11493         (Build_Body_To_Inline): It is possible to inline a function call that
11494         returns an unconstrained type if all return statements in the function
11495         return the same local variable. Subsidiary procedure Has_Single_Return
11496         verifies that the body conforms to this restriction.
11497
11498         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
11499         same type, and  one of them is of an anonymous access type, convert
11500         the other operand to it, so that this is a valid binary operation for
11501         gigi.
11502         (Resolve_Type_Conversion): Handle subtypes of protected types and
11503         task types when accessing to the corresponding record type.
11504         (Resolve_Allocator): Add '\' in 2-line warning message.
11505         Remove '!' in warning message.
11506         (Resolve_Call): Add '\' in 2-line warning message.
11507         (Valid_Conversion): Likewise.
11508         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
11509         resulting type may be an access type with an implicit dereference.
11510         Obtain the proper component from the designated type.
11511         (Make_Call_Into_Operator): Handle properly a call to predefined equality
11512         given by an expanded name with prefix Standard, when the operands are
11513         of an anonymous access type.
11514         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
11515         Explicit_Dereference and Resolve_Selected_Component, to verify that the
11516         prefix of the expression is not of an incomplete type. Allows full
11517         diagnoses of all semantic errors.
11518         (Resolve_Actuals): If the actual is an allocator whose directly
11519         designated type is a class-wide interface we build an anonymous
11520         access type to use it as the type of the allocator. Later, when
11521         the subprogram call is expanded, if the interface has a secondary
11522         dispatch table the expander will add a type conversion to force
11523         the displacement of the pointer.
11524         (Resolve_Call): If a function that returns an unconstrained type is
11525         marked Inlined_Always and inlined, the call will be inlined and does
11526         not require the creation of a transient scope.
11527         (Check_Direct_Boolean_Op): Removed
11528         (Resolve_Comparison_Op): Remove call to above
11529         (Resolve_Equality_Op): Remove call to above
11530         (Resolve_Logical_Op): Inline above, since this is only call.
11531         (Valid_Conversion): Handle properly conversions between arrays of
11532         convertible anonymous access types.
11533
11534         PR ada/25885
11535         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
11536         the literal in an unchecked conversion, because GCC 4.x needs a static
11537         value for a string bound.
11538
11539 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11540             Hristian Kirtchev  <kirtchev@adacore.com>
11541
11542         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
11543         components of the corresponding record, take into account component
11544         definitions that are access definitions.
11545         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
11546         procedure is not considered a dispatching call and will be expanded
11547         properly.
11548
11549 2006-02-13  Javier Miranda  <miranda@adacore.com>
11550
11551         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
11552         controlling argument of the dispatching call is an abstract interface
11553         class-wide type then we use it directly.
11554         Check No_Dispatching_Calls restriction.
11555         (Default_Prim_Op_Position): Remove the code that looks for the last
11556         entity in the list of aliased subprograms. This code was wrong in
11557         case of renamings.
11558         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
11559         when the source is compiled with the No_Dispatching_Calls restriction.
11560         (Init_Predefined_Interface_Primitives): No need to inherit primitives
11561         if we are compiling with restriction No_Dispatching_Calls.
11562         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
11563         subprograms if we are compiling under No_Dispatching_Calls restriction.
11564         (Make_DT): Generate a dispatch table with a single dummy entry if
11565         we are compiling with the No_Dispatching_Calls restriction. In
11566         addition, in this case we don't generate code that calls to the
11567         following run-time subprograms: Set_Type_Kind, Inherit_DT.
11568         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
11569         of this subprogram if compiling with the No_Dispatching_Calls
11570         restriction.
11571         (Expand_Type_Conversion): Instead of using the actual parameter,
11572         the argument passed as parameter to the conversion function was
11573         erroneously referenced by the expander.
11574         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
11575         Set_Predefined_Primitive_Op_Address and Set_Signature.
11576         (Expand_Dispatching_Call): Generate call to
11577         Get_Predefined_Prim_Op_Address for predefined primitives.
11578         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
11579         predefined primitives.
11580         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
11581         primitives we reserve one dummy entry to ensure that the tag does not
11582         point to some memory that is associated with some other object. In
11583         addition, remove all the old code that generated the assignments
11584         associated with the signature of the dispatch table and replace them
11585         by a call to the new subprogram Set_Signature.
11586         (Set_All_DT_Position): Change the algorithm because now we have a
11587         separate dispatch table associated with predefined primitive operations.
11588         (Expand_Interface_Conversion): In case of non-static offset_to_top
11589         add explicit dereference to get access to the object after the call
11590         to displace the pointer to the object.
11591         (Expand_Interface_Thunk): Modify the generation of the actual used
11592         in the calls to the run-time function Offset_To_Top to fulfil its
11593         new interface.
11594         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
11595
11596 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11597
11598         * exp_dist.adb (Copy_Specification): For access parameters, copy
11599         Null_Exclusion flag, which will have been set for stream subprograms
11600         in Ada2005 mode.
11601
11602 2006-02-13  Pascal Obry  <obry@adacore.com>
11603
11604         * expect.c (__gnat_expect_portable_execvp): New implementation. The
11605         previous implementation was using the C runtime spawnve routine but
11606         the corresponding wait was using directly the Win32 API. This was
11607         causing some times a lock when waiting for an event using
11608         WaitForSingleObject in __gnat_waitpid. This new implementation uses
11609         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
11610         API fixes this problem.
11611
11612 2006-02-13  Robert Dewar  <dewar@adacore.com>
11613
11614         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
11615         call.
11616
11617 2006-02-13  Thomas Quinot  <quinot@adacore.com>
11618
11619         * exp_pakd.ads: Fix typos in comments.
11620
11621         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
11622         array reference that is an explicit dereference, mark the converted
11623         (packed) array reference as analyzed to prevent a forthcoming
11624         reanalysis from resetting its type to the original (non-packed) array
11625         type.
11626
11627 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11628             Javier Miranda  <miranda@adacore.com>
11629             Eric Botcazou  <ebotcazou@adacore.com>
11630
11631         * exp_util.ads, exp_util.adb (Find_Prim_Op,
11632         Is_Predefined_Primitive_Operation): When
11633         searching for the predefined equality operator, verify that operands
11634         have the same type.
11635         (Is_Predefined_Dispatching_Operation): Remove the code that looks
11636         for the last entity in the list of aliased subprograms. This code
11637         was wrong in case of renamings.
11638         (Set_Renamed_Subprogram): New procedure
11639         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
11640         Exp_Type constant computed when entering this subprogram.
11641         (Known_Null): New function
11642         (OK_To_Do_Constant_Replacement): New function
11643         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
11644         (Side_Effect_Free): An attribute reference 'Input is not free of
11645         side effect, unlike other attributes that are functions. (from code
11646         reading).
11647         (Remove_Side_Effects): Expressions that involve packed arrays or records
11648         are copied at the point of reference, and therefore must be marked as
11649         renamings of objects.
11650         (Is_Predefined_Dispatching_Operation): Return false if the operation is
11651         not a dispatching operation.
11652
11653         PR ada/18819
11654         (Remove_Side_Effects): Lift enclosing type conversion nodes for
11655         elementary types in all cases.
11656
11657 2006-02-13  Javier Miranda  <miranda@adacore.com>
11658
11659         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
11660         task types when accessing to the corresponding record type.
11661         Remove '!' in warning message.
11662
11663 2006-02-13  Olivier Hainque  <hainque@adacore.com>
11664
11665         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
11666         to avoid useless and space inefficient overalignments on targets where
11667         Max_Alignment is larger than 16.
11668
11669 2006-02-13  Pascal Obry  <obry@adacore.com>
11670
11671         * g-catiio.adb (Sec_Number): New type used to compute the number of
11672         seconds since 1-1-1970.
11673         (Image) [Natural]: The parameter was an Integer, as we can't deal with
11674         negative numbers (years, months...) it is better to have a Natural here.
11675         Code clean-up.
11676         (Image) [Number]: Change parameter from Long_Integer to Number.
11677         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
11678         overflow for dates past year 2038.
11679
11680 2006-02-13  Matthew Heaney  <heaney@adacore.com>
11681
11682         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
11683         Constraint_Error.
11684
11685 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
11686
11687         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
11688         native platforms.
11689         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
11690         finalization can occur normally.
11691
11692 2006-02-13  Vincent Celier  <celier@adacore.com>
11693
11694         * gnatcmd.adb (Rules_Switches): New table
11695         (Add_To_Rules_Switches): New procedure
11696         (GNATCmd): For command CHECK, put all options following "-rules" in the
11697         Rules_Switches table. Append these -rules switches after the -cargs
11698         switches.
11699
11700 2006-02-13  Robert Dewar  <dewar@adacore.com>
11701
11702         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
11703         These two cases were generating incorrect output, and if this unit
11704         was built with checks on, generated a discriminant mismatch constraint
11705         error.
11706
11707 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11708             Robert Dewar  <dewar@adacore.com>
11709
11710         * lib-xref.adb (Get_Type_Reference): For a private type whose full
11711         view is an array type, indicate the component type as well, for
11712         navigation purposes.
11713         (Generate_Reference): Don't consider array ref on LHS to be a case
11714         of violating pragma Unreferenced.
11715         Do not give Ada 2005 warning except on real reference.
11716
11717 2006-02-13  Vincent Celier  <celier@adacore.com>
11718
11719         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
11720         main source, add switch -mdebug-main=_ada_ so that the executable can
11721         be debugged by the standard VMS debugger.
11722         (Gnatmake): Set No_Main_Subprogram to True when there is no main
11723         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
11724         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
11725         of the last source, as the binding and linking phases are never
11726         performed.
11727         Set all executable obsolete when rebuilding a library.
11728
11729         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
11730         options.
11731
11732 2006-02-13  Javier Miranda  <miranda@adacore.com>
11733
11734         PR ada/23973
11735         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
11736         code to improve the error message reported when the program has
11737         declarations of abstract interface types and it is not compiled with
11738         the -gnat05 switch.
11739         (P_Access_Definition): Reorganize the code to improve the error
11740         message reported when the new Ada 2005 syntax for anonymous
11741         access types is used and the program is not compiled with the
11742         -gnat05 switch.
11743
11744 2006-02-13  Robert Dewar  <dewar@adacore.com>
11745
11746         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
11747         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
11748         (MODE_IN)
11749
11750 2006-02-13  Javier Miranda  <miranda@adacore.com>
11751
11752         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
11753         against source containing syntax errors.
11754
11755 2006-02-13  Vincent Celier  <celier@adacore.com>
11756
11757         * prj.adb (Reset): Initialize the first element of table Namings with
11758         the standard naming data.
11759
11760 2006-02-13  Vincent Celier  <celier@adacore.com>
11761
11762         * prj.ads (Error_Warning): New enumeration type
11763
11764         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
11765         unknown, use the location of the project to report the error.
11766         (When_No_Sources): New global variable
11767         (Report_No_Ada_Sources): New procedure
11768         (Check): New parameter When_No_Sources. Set value of global variable
11769         When_No_Sources,
11770         (Find_Sources): Call Report_No_Ada_Sources when appropriate
11771         (Get_Sources_From_File): Ditto
11772         (Warn_If_Not_Sources): Better warning messages indicating the unit name
11773         and the file name.
11774
11775         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
11776         Call Prj.Proc.Process with parameter When_No_Sources.
11777
11778         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
11779         Call Recursive_Check with parameter When_No_Sources.
11780         (Recursive_Check): New parameter When_No_Sources. Call itself and
11781         Prj.Nmsc.Check with parameter When_No_Sources.
11782         (Process): New parameter When_No_Sources. Call Check with parameter
11783         When_No_Sources.
11784         (Copy_Package_Declarations): New procedure to copy renamed parameters
11785         and setting the location of the declared attributes to the location
11786         of the renamed package.
11787         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
11788         packages.
11789
11790 2006-02-13  Vincent Celier  <celier@adacore.com>
11791
11792         * prj-makr.adb (Make): Preserve the comments from the original project
11793         file.
11794         When removing nodes (attributes Source_Dirs, Source_Files,
11795         Source_List_File and package Naming), save the comments and attach the
11796         saved comments to the newly created nodes.
11797         Do not add a with clause for the naming package if one already exists.
11798
11799 2006-02-13  Javier Miranda  <miranda@adacore.com>
11800             Gary Dismukes  <dismukes@adacore.com>
11801             Robert Dewar  <dewar@adacore.com>
11802
11803         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
11804
11805         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
11806         aliased entities to look for the overriden abstract interface
11807         subprogram.
11808         (Is_Interface_Subprogram): Complete documentation.
11809         (Check_Dispatching_Operation): Do not generate code to register the
11810         operation in the dispatch table if the source is compiled with
11811         restriction No_Dispatching_Calls.
11812         (Override_Dispatching_Operation): Check for illegal attempt to override
11813         No_Return procedure with procedure that is not No_Return
11814         (Check_Dispatching_Call): Suppress the check for an abstract operation
11815         when the original node of an actual is a tag-indeterminate attribute
11816         call, since the attribute, which must be 'Input, can never be abstract.
11817         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
11818         call to the Input attribute (even when rewritten).
11819         (Propagate_Tag): Augment comment to indicate the possibility of a call
11820         to an Input attribute.
11821
11822         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
11823         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
11824
11825         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
11826         No_Wide_Characters is no longer partition-wide
11827         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
11828         rather than GNAT
11829
11830 2006-02-13  Douglas Rupp  <rupp@adacore.com>
11831
11832         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
11833
11834 2006-02-13  Javier Miranda  <miranda@adacore.com>
11835
11836         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
11837         handles default-initialized components to keep separate the management
11838         of this feature but also avoid the unrequired resolution and
11839         expansion of components that do not have partially initialized
11840         values.
11841         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
11842         (Check_Bounds): Likewise.
11843         (Check_Length): Likewise.
11844
11845 2006-02-13  Javier Miranda  <miranda@adacore.com>
11846             Ed Schonberg  <schonberg@adacore.com>
11847
11848         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
11849         abstract interface type call analyze_and_resolve to expand the type
11850         conversion into the corresponding displacement of the
11851         reference to the base of the object.
11852         (Eval_Attribute, case Width): For systems where IEEE extended precision
11853         is supported, the maximum exponent occupies 4 decimal digits.
11854         (Accessibility_Message): Add '\' in 2-line warning message.
11855         (Resolve_Attribute): Likewise.
11856         (case Attribute_Access): Significantly revise checks
11857         for illegal access-to-subprogram Access attributes to properly enforce
11858         the rules of 3.10.2(32/2).
11859         Diagnose use of current instance with an illegal attribute.
11860
11861         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
11862         to a Node_Id.
11863         (Enclosing_Generic_Unit): New function to return a node's innermost
11864         enclosing generic declaration node.
11865         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
11866         (Type_Access_Level): The accessibility level of anonymous acccess types
11867         associated with discriminants is that of the current instance of the
11868         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
11869         (Compile_Time_Constraint_Error): Handle case of conditional expression.
11870         (Kill_Current_Values_For_Entity): New function
11871         (Enter_Name): Change formal type to Entity_Id
11872
11873 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
11874             Ed Schonberg  <schonberg@adacore.com>
11875             Gary Dismukes  <dismukes@adacore.com>
11876
11877         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
11878         Analyze_Compilation_Unit.
11879         Detect and warn on redundant with clauses detected in a package spec
11880         and/or body when -gnatwr is used.
11881         (Analyze_Context): Analyze config pragmas before other items
11882         (Install_Context_Items): Don't analyze config pragmas here
11883         (Install_Limited_Withed_Unit): Set limited entity of package in
11884         with_clause so that cross-reference information or warning messages on
11885         unused packages can be properly generated
11886         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
11887         has Error_Posted set. Prevent infinite loops in illegal programs.
11888         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
11889         to the point of the error test requiring the current unit to be private.
11890         This ensures that private with clauses are not exempted from the basic
11891         checking for being a descendant of the same library unit parent as a
11892         withed private descendant unit.
11893         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
11894         handle private with clauses properly, as well as to account for cases
11895         where the withed unit is a public descendant of a private ancestor
11896         (in which case the current unit must be a descendant of the private
11897         ancestor's parent). The spec comments were updated accordingly. Also,
11898         the old error message in this subprogram was replaced with error
11899         messages that mirror the errors tested and reported by
11900         Check_Private_Child_Unit.
11901         Parameter and variable names improved for readability.
11902         (Install_Limited_Context_Clauses): Remove test for a withed unit being
11903         private as the precondition for calling
11904         Check_Private_Limited_Withed_Unit since that subprogram has been
11905         revised to test public units as well as private units.
11906
11907 2006-02-13  Thomas Quinot  <quinot@adacore.com>
11908             Robert Dewar  <dewar@adacore.com>
11909             Ed Schonberg  <schonberg@adacore.com>
11910             Javier Miranda  <miranda@adacore.com>
11911
11912         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
11913         that Scope_Stack.First = 1.
11914         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
11915         were not always properly handled previously.
11916         (Formal_Entity): Complete rewrite, to handle properly some complex case
11917         with multiple levels of parametrization by formal packages.
11918         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
11919         to the corresponding derived type declaration for proper semantics.
11920
11921         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
11922         (Check_Component): Enforce restriction on components of
11923         unchecked_unions: a component in a variant cannot contain tasks or
11924         controlled types.
11925         (Unchecked_Union): Allow nested variants and multiple discriminants, to
11926         conform to AI-216.
11927         Add pragma Ada_2005 (synonym for Ada_05)
11928         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
11929         were not always properly handled previously.
11930         Document that pragma Propagate_Exceptions has no effect
11931         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
11932         (Set_Convention_From_Pragma): Check that if a convention is
11933         specified for a dispatching operation, then it must be
11934         consistent with the existing convention for the operation.
11935         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
11936         longer required to specify an vtable-ptr component in the record. For
11937         compatibility reasons we leave the support for the previous definition.
11938         (Analyze_Pragma, case No_Return): Allow multiple arguments
11939
11940         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
11941         non-overrideen inherited operation with a controlling result as
11942         illegal only its implicit declaration comes from the derived type
11943         declaration of its result's type.
11944         (Check_Possible_Deferred_Completion): Relocate the object definition
11945         node of the subtype indication of a deferred constant completion rather
11946         than directly analyzing it. The analysis of the generated subtype will
11947         correctly decorate the GNAT tree.
11948         (Record_Type_Declaration): Check whether this is a declaration for a
11949         limited derived record before analyzing components.
11950         (Analyze_Component_Declaration): Diagnose record types  not explicitly
11951         declared limited when a component has a limited type.
11952         (Build_Derived_Record_Type): Code reorganization to check if some of
11953         the inherited subprograms of a tagged type cover interface primitives.
11954         This check was missing in case of a full-type associated with a private
11955         type declaration.
11956         (Constant_Redeclaration): Check that the subtypes of the partial and the
11957         full view of a constrained deferred constant statically match.
11958         (Mentions_T): A reference to the current type in an anonymous access
11959         component declaration  must be an entity name.
11960         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
11961         class_wide type to refer to full type, not to the incomplete one.
11962         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
11963         available. Required to give support to the certified run-time.
11964         (Analyze_Component_Declaration): In case of anonymous access components
11965         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
11966         (Process_Discriminants): For an access discriminant, use the
11967         discriminant specification as the associated_node_for_itype, to
11968         simplify accessibility checks.
11969
11970 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11971             Javier Miranda  <miranda@adacore.com>
11972
11973         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
11974         abstract interpretations on an operator, remove interpretations that
11975         yield Address or a type derived from it, if one of the operands is an
11976         integer literal.
11977         (Try_Object_Operation.Try_Primitive_Operation,
11978         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
11979         location when creating the new reference to a primitive or class-wide
11980         operation as a part of rewriting a subprogram call.
11981         (Try_Primitive_Operations): If context requires a function, collect all
11982         interpretations after the first match, because there may be primitive
11983         operations of the same type with the same profile and different return
11984         types. From code reading.
11985         (Try_Primitive_Operation): Use the node kind to choose the proper
11986         operation when a function and a procedure have the same parameter
11987         profile.
11988         (Complete_Object_Operation): If formal is an access parameter and prefix
11989         is an object, rewrite as an Access reference, to match signature of
11990         primitive operation.
11991         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
11992         by an expanded name with prefix Standard, when the operands are of an
11993         anonymous access type.
11994         (Remove_Abstract_Operations): If the operation is abstract because it is
11995         inherited by a user-defined type derived from Address, remove it as
11996         well from the set of candidate interpretations of an overloaded node.
11997         (Analyze_Membership_Op): Membership test not applicable to cpp-class
11998         types.
11999
12000 2006-02-13  Bob Duff  <duff@adacore.com>
12001
12002         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
12003         redundant use clauses.
12004         In particular, if the scope of two use clauses overlaps, but one is not
12005         entirely included in the other, we should not warn.  This can happen
12006         with nested packages.
12007         (Analyze_Subprogram_Renaming): Protect the compiler against previously
12008         reported errors. The bug was reported when the compiler was built
12009         with assertions enabled.
12010         (Find_Type): If the node is a 'Class reference and the prefix is a
12011         synchronized type without a corresponding record, return the type
12012         itself.
12013
12014 2006-02-13  Javier Miranda  <miranda@adacore.com>
12015
12016         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
12017         if this is the full-declaration associated with a private declaration
12018         that implement interfaces, then the private type declaration must be
12019         limited.
12020         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
12021         as aliased. The use of the 'access attribute is not available for such
12022         object (for this purpose the object should be explicitly marked as
12023         aliased, but being an anonymous type this is not possible).
12024
12025 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
12026             Robert Dewar  <dewar@adacore.com>
12027
12028         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
12029         compilation unit is an elaboration scope.
12030         (Add_Task_Proc): Add '\' in 2-line warning message.
12031         (Activate_All_Desirable): Deal with case of unit with'ed by parent
12032
12033 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
12034             Javier Miranda  <miranda@adacore.com>
12035
12036         * sem_type.adb (Write_Overloads): Improve display of candidate
12037         interpretations.
12038         (Add_One_Interp): Do not add to the list of interpretations aliased
12039         entities corresponding with an abstract interface type that is an
12040         immediate ancestor of a tagged type; otherwise we have a dummy
12041         conflict between this entity and the aliased entity.
12042         (Disambiguate): The predefined equality on universal_access is not
12043         usable if there is a user-defined equality with the proper signature,
12044         declared in the same declarative part as the designated type.
12045         (Find_Unique_Type): The universal_access equality operator defined under
12046         AI-230 does not cover pool specific access types.
12047         (Covers): If one of the types is a generic actual subtype, check whether
12048         it matches the partial view of the other type.
12049
12050 2006-02-13  Thomas Quinot  <quinot@adacore.com>
12051
12052         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
12053         line. This is necessary to allow In_Extended_Main_Unit to provide
12054         correct results for itypes while writing out expanded source.
12055         (Close_File): No need to update the source_index_table here since it's
12056         now done for each line.
12057
12058 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
12059             Robert Dewar  <dewar@adacore.com>
12060
12061         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
12062         preserve the source unit where the itype is declared, and prevent a
12063         backend abort.
12064         (Note_Implicit_Run_Time_Call): New procedure
12065         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
12066         E_Subprogram_Type)
12067
12068         * sprint.ads: Document use of $ for implicit run time routine call
12069
12070 2006-02-13  Quentin Ochem  <ochem@adacore.com>
12071
12072         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
12073         task name.
12074
12075 2006-02-13  Bob Duff  <duff@adacore.com>
12076
12077         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
12078         Scan_Unsigned, so we do not scan leading blanks and sign twice.
12079         Integer'Value("- 5") and Integer'Value("-+5") now correctly
12080         raise Constraint_Error.
12081
12082         * s-vallli.adb (Scan_Long_Long_Integer): Call
12083         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
12084         do not scan leading blanks and sign twice.
12085         Integer'Value("- 5") and Integer'Value("-+5") now correctly
12086         raise Constraint_Error.
12087
12088         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
12089         Scan_Long_Long_Unsigned): Split out most of the processing from
12090         Scan_Long_Long_Unsigned out into
12091         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
12092         This prevents scanning leading blanks and sign twice.
12093         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
12094         See RM-3.5(44).
12095
12096         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
12097         out most of the processing from Scan_Unsigned out into
12098         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
12099         This prevents scanning leading blanks and sign twice.
12100
12101         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
12102         use with Modular'Value attribute.
12103         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
12104         attribute.
12105
12106 2006-02-13  Robert Dewar  <dewar@adacore.com>
12107
12108         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
12109
12110 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
12111
12112         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
12113         (PPC VxWorks): Likewise.
12114         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
12115         (forced_callee): Make non-inlinable and non-pure.
12116         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
12117
12118 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
12119             Ben Brosgol  <brosgol@adacore.com>
12120             Robert Dewar  <dewar@adacore.com>
12121
12122         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
12123         support.
12124         Document that gnatbind -M option is for cross environments only.
12125         Added description of using gnatmem to trace gnat rtl allocs and deallocs
12126         Add note on use of $ to label implicit run time calls
12127         Add documentation for -gnatyI (check mode IN)
12128         Updated chapter on compatibility with HP Ada
12129         VMS-oriented edits.
12130         Ran spell and corrected errors
12131         Add documentation for gnatbind -d and rework documentation of -D
12132         at the same time.
12133         Add subprogram/data elimination section.
12134         Minor editing of annex A.
12135         Add section for gnatcheck.
12136         Add documentation for restriction No_Dispatching_Calls
12137         Add documentation for pragma Ada_2005
12138         Remove mention of obsolete pragma Propagate_Exceptions
12139         Document that pragma Unreferenced can appear after DO in ACCEPT
12140         Clarify Pure_Function for library level units
12141         Mention Max/Min in connection with No_Implicit_Conditionals
12142         No_Wide_Characters restriction is no longer partition-wide
12143         Add a nice example for Universal_Literal_String attribute
12144         Document that pragma No_Return can take multiple arguments
12145
12146         * ug_words: Added entry for gnatcheck
12147
12148         * g-ctrl_c.ads (Install_Handler): Enhance comments
12149
12150         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
12151
12152         * g-trasym.ads: Add documentation on how to do off line symbolic
12153         traceback computation.
12154
12155         * s-fatgen.adb: Add comments for Unaligned_Valid
12156
12157         * stand.ads: Fix typo in comment
12158
12159 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12160
12161         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
12162
12163 2006-02-06  Roger Sayle  <roger@eyesopen.com>
12164
12165         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
12166
12167 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12168
12169         PR target/25926
12170         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
12171         implementation that calls __main.
12172
12173 2006-01-25  Peter O'Gorman  <peter@pogma.com>
12174
12175         PR bootstrap/25859
12176         * Makefile.in (GCC_LINK): Remove quotes.
12177         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
12178         or $(GCC_LINK).
12179
12180         (powerpc-darwin): Pass -shared-libgcc when building shared library.
12181
12182 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12183
12184         PR ada/24533
12185         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
12186
12187 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12188
12189         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
12190
12191 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
12192
12193         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
12194         needed.
12195
12196 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
12197
12198         * Make-lang.in: Update dependencies
12199
12200 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
12201
12202         * Make-lang.in: Add rule for ada/exp_sel.o
12203
12204 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
12205
12206         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
12207
12208 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
12209
12210         * gnatvsn.ads (Library_Version): Bump to version 4.2
12211         (ASIS_Version_Number): Bumped.
12212
12213 2005-12-09  Doug Rupp  <rupp@adacore.com>
12214
12215         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
12216         Ada bind file prefix on VMS from b$ to b__.
12217         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
12218         __init.
12219
12220         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
12221         Targparm.OpenVMS_On_Target.
12222         (Object_Suffix): Initialize with target object suffix.
12223         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
12224
12225         * butil.adb: Change some Hostparm.OpenVMS checks to
12226         Targparm.OpenVMS_On_Target.
12227
12228         * clean.adb: Change some Hostparm.OpenVMS checks to
12229         Targparm.OpenVMS_On_Target.
12230         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
12231         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
12232         Ada bind file prefix on VMS from b$ to b__.
12233
12234         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
12235         --GCC so that Get_Target_Parameters can find system.ads.
12236         (Gnatlink): Call Get_Target_Parameters in mainline.
12237         Initialize standard packages for Targparm.
12238         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
12239         (Process_Args): Also Check for object files with target object
12240         extension.
12241         (Make_Binder_File_Names): Create with target object extension.
12242         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
12243         to b__.
12244
12245         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
12246         Targparm.OpenVMS_On_Target.
12247         ({declaration},Build_Library,Check_Library): Change Ada bind file
12248         prefix on VMS from b$ to b__.
12249
12250         * osint-b.adb: Change some Hostparm.OpenVMS checks to
12251         Targparm.OpenVMS_On_Target.
12252         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
12253         b__.
12254
12255         * targext.c: New file.
12256
12257         * Makefile.in: add support for vxworks653 builds
12258         (../../vxaddr2line): gnatlink with targext.o.
12259         (TOOLS_LIBS): Move targext.o to precede libgnat.
12260         (init.o, initialize.o): Minor clean up in dependencies.
12261         (GNATLINK_OBJS): Add targparm.o, snames.o
12262         Add rules fo building targext.o and linking it explicitly with all
12263         tools.
12264         Also add targext.o to gnatlib.
12265
12266         * Make-lang.in: Add rules for building targext.o and linking it in
12267         with gnat1 and gnatbind.
12268         Add entry for exp_sel.o.
12269
12270         * osint.adb Change some Hostparm.OpenVMS checks to
12271         Targparm.OpenVMS_On_Target.
12272         (Object_File_Name): Use target object suffix.
12273
12274         * osint.ads (Object_Suffix): Remove, no longer used.
12275         (Target_Object_Suffix): Initialize with target object suffix.
12276
12277         * rident.ads: Add special exception to license.
12278
12279         * targparm.adb (Get_Target_Parameters): Set the value of
12280         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
12281         value.
12282         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
12283         
12284         * targparm.ads: Add special exception to license.
12285
12286         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
12287         function.
12288         (Copy_File): Make sure from file is closed if error on to file
12289         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
12290
12291         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
12292         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
12293
12294         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
12295         target object suffix.
12296
12297 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
12298             Quentin Ochem  <ochem@adacore.com>
12299             Florian Villoing  <villoing@adacore.com>
12300
12301         * a-taster.ads, a-taster.adb: New files.
12302
12303         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
12304         link to the version that does nothing. This way the task termination
12305         routine is not executed twice for the environment task when finishing
12306         because of an unhandled exception.
12307
12308         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
12309         handler because of an unhandled exception.
12310
12311         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
12312         System.Tasking.Utilities instead of that in System.Tasking.Stages.
12313
12314         * s-finimp.adb (initialization code): Modify the soft link for the
12315         finalization of the global list instead of Adafinal.
12316
12317         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
12318         non-tasking version of the soft link for task termination. We do
12319         nothing since if we are using the non-tasking version it
12320         means that the task termination functionality is not used.
12321         (Null_Finalize_Global_List): Add this null version for the procedure
12322         in charge of finalizing the global list for controlled objects.
12323         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
12324         instead for handling run-time termination in a more flexible way.
12325         (Adafinal_NT): This new procedure will take care of finalizing the
12326         global list for controlled objects if needed, but no tasking
12327         finalization.
12328
12329         * s-tarest.adb (Task_Lock): Do not try to lock again the
12330         Global_Task_Lock if we already own it. Otherwise, we get blocked in
12331         some run-time operations.
12332         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
12333         until all nested locks have been released.
12334         (Task_Wrapper): Call the fall-back task termination handler. It
12335         applies to all tasks but the environment task.
12336         (Finalize_Global_Tasks): Add the call for the task termination
12337         procedure for the environment task.
12338         (Task_Wrapper): suppress warnings around declaration of
12339         Secondary_Stack_Address.
12340
12341         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
12342         moved to the Common_ATCB record.
12343         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
12344         Common_ATCB record.
12345         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
12346         Common_ATCB record.
12347
12348         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
12349         Fall_Back_Handler, and Specific_Handler.
12350
12351         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
12352         defined in Ada.Task_Termination, to avoid circular dependencies.
12353         (Termination_Handler): Redefine this type here, alredy defined in
12354         Ada.Task_Termination, for avoiding circular dependencies.
12355         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
12356         for storing task termination handlers. In addition,
12357         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
12358         Common_ATCB because it is used by both the regular and the restricted
12359         run times.
12360         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
12361         Common_ATCB because it is used by both the regular and the restricted
12362         run times.
12363         (Common_ATCB): Added a dynamic task analyzer field.
12364
12365         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
12366         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
12367         (Task_Wrapper): Call the task termination handler. It applies to all
12368         tasks but the environment task.
12369         (Finalize_Global_Tasks): Call the task termination procedure for the
12370         environment task. The call to Finalize_Global_List is now performed
12371         using the soft links mechanism.
12372         (Task_Wrapper): added dynamic stack analysis.
12373
12374         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
12375         potentially blocking operations has been moved from
12376         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
12377         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
12378         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
12379         this run-time check.
12380
12381         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
12382         of task termination procedure.
12383         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
12384         link for the task termination procedure.
12385
12386         * bindusg.adb: (Bindusg): Added documentation for -u option.
12387
12388         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
12389         (Get_Main_C): Add handling of dynamic stack analysis.
12390         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
12391
12392         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
12393         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
12394         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
12395
12396         * opt.ads: Added flags used by dynamic stack measurement.
12397         (Max_Line_Length): Remove (not used anymore)
12398
12399         * s-io.ads, s-io.adb (Standard_Error): new subprogram
12400         (Standart_Output): new subprogram
12401         (Set_Output): new subprogram
12402         (Put): now uses the value of Current_Out to know if the output has to be
12403         send to stderr or stdout.
12404         
12405         * s-stausa.ads: Complete implementation.
12406
12407         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
12408         
12409         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
12410         list of Ada 05 files.
12411         (GNAT Library Units): Add AltiVec files.
12412
12413         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
12414         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
12415         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
12416
12417 2005-12-09  Nicolas Setton  <setton@adacore.com>
12418
12419         * adaint.c (__gnat_locate_regular_file): Return immediately if
12420         file_name is empty.
12421
12422 2005-12-09  Javier Miranda  <miranda@adacore.com>
12423             Hristian Kirtchev  <kirtchev@adacore.com>
12424
12425         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
12426         to the specification because the frontend generates code that uses this
12427         subprogram.
12428         (Set_Interface_Table): Add missing assertion.
12429         Update documentation describing the run-time structure.
12430         (Displace): New subprogram that displaces the pointer to the object
12431         to reference one of its secondary dispatch tables.
12432         (IW_Membership): Modified to use the new table of interfaces.
12433         (Inherit_TSD): Modified to use the new table of interfaces.
12434         (Register_Interface_Tag): Use the additional formal to fill the
12435         contents of the new table of interfaces.
12436         (Set_Interface_Table): New subprogram that stores in the TSD the
12437         pointer to the table of interfaces.
12438         (Set_Offset_To_Top): Use the additional formal to save copy of
12439         the offset value in the table of interfaces.
12440         Update structure of GNAT Primary and Secondary dispatch table diagram.
12441         Add comment section on GNAT dispatch table prologue.
12442         (Offset_To_Signature): Update the constant value of the Signature field.
12443         (Dispatch_Table): Update comment on hidden fields in the prologue.
12444         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
12445         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
12446         the type of formal parameter T to Tag, introduce additional assertions.
12447         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
12448         conversion.
12449         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
12450
12451         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
12452         in all the calls to Expand_Interface_Thunk. Instead of referencing the
12453         record component containing the tag of the secondary dispatch table we
12454         have to use the Offset_To_Top run-time function to get this information;
12455         otherwise if the pointer to the base of the object has been displace
12456         we get a wrong value if we use the 'position attribute.
12457
12458         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
12459         all the calls to Expand_Interface_Thunk.
12460         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
12461         interfaces; hence the call to Set_Interface_Table was clearly wrong.
12462         (Collect_All_Interfaces): Modify the internal subprogram Collect to
12463         ensure that the interfaces implemented by the ancestors are placed
12464         at the header of the generated list.
12465         (Expand_Interface_Conversion): Handle the case in which the displacement
12466         associated with the interface conversion is not statically known. In
12467         this case we generate a call to the new run-time subprogram Displace.
12468         (Make_DT): Generate and fill the new table of interfaces.
12469         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
12470         Get_Tagged_Kind and Set_Tagged_Kind.
12471         (Tagged_Kind): New function that determines the tagged kind of a type
12472         with respect to limitedness and concurrency and returns a reference to
12473         RE_Tagged_Kind.
12474         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
12475         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
12476         primary dispatch table for a type.
12477         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
12478         secondary dispatch table respectively of a tagged type.
12479
12480         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
12481         (Expand_Interface_Conversion): New subprogram to indicate if the
12482         displacement of the type conversion is statically known.
12483         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
12484
12485         * rtsfind.ads (RE_Offset_To_Top): New entity
12486         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
12487         accessible to users.
12488         (Re_Displace): New entity
12489         (RE_Interface_Data): New entity
12490         (RE_Set_Interface_Data): New_Entity
12491         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
12492         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
12493         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
12494         RE_TK_Tagged, RE_TK_Task.
12495
12496         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
12497         Init_Secondary_Tags_Internal to allow its use with interface types and
12498         also to generate the code for the new additional actual required
12499         by Set_Offset_To_Top.
12500         (Build_Init_Statements): In case of components associated with abstract
12501         interface types there is no need to generate a call to its IP.
12502         (Freeze_Record_Type): Generate Select Specific Data tables only for
12503         concurrent types.
12504         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
12505         the bodies and specifications of the predefined primitive operations
12506         dealing with dispatching selects and abort, 'Callable, 'Terminated only
12507         for concurrent types.
12508
12509         * exp_sel.ads, exp_sel.adb: New files.
12510
12511         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
12512         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
12513         properly protected objects and attach handler in the case of the
12514         restricted profile.
12515         Move embeded package Select_Expansion_Utilities into a separate external
12516         package.
12517         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
12518         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
12519         (Build_K, Build_S_Assignment): New subprograms, part of the select
12520         expansion utilities.
12521         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
12522         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
12523         where the trigger is a dispatching procedure of a limited tagged type.
12524
12525 2005-12-09  Olivier Hainque  <hainque@adacore.com>
12526
12527         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
12528         pointer initialization values. Make a SAVE_EXPR instead. Add comments
12529         about the use and expansion of SAVE_EXPRs in the various possible
12530         renaming handling cases.
12531         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
12532         abusing DECL_FCONTEXT.
12533
12534 2005-12-09  Matthew Heaney  <heaney@adacore.com>
12535
12536         * a-convec.adb (Merge): Added assertions to check whether vector params
12537         are sorted.
12538
12539         * a-coinve.adb (Merge): Added assertions to check whether vector params
12540         are sorted.
12541
12542         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
12543         draft.
12544         (Cursor'Read): raises PE
12545
12546         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
12547         to its default value.
12548
12549         * a-cihama.adb: Manually check whether cursor's key and elem are
12550         non-null
12551
12552         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
12553         (Merge): Assert that target and source lists are in order
12554         (Swap): Declare non-const temporaries, to pass to Splice
12555
12556         * a-cdlili.ads: (Splice): Changed param name and param mode
12557
12558         * a-cdlili.adb: (Splice): Changed param name and param mode
12559         (Merge): Assert that target and source lists are in order
12560         (Swap): Declare non-const temporaries, to pass to Splice
12561
12562         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
12563         (Write): declare Stream param as not null
12564
12565         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
12566         an exception message.
12567
12568 2005-12-09  Thomas Quinot  <quinot@adacore.com>
12569             Robert Dewar  <dewar@adacore.com>
12570
12571         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
12572         which is the absolute maximum length we can support.
12573
12574         * frontend.adb: For the processing of configuration pragma files,
12575         remove references to Opt.Max_Line_Length, which is not checked anymore.
12576
12577         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
12578         length.
12579
12580         * scn.adb, scng.adb: 
12581         Always check line length against the absolute supported maximum,
12582         Hostparm.Max_Line_Length.
12583
12584         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
12585         value for the maximum line length is Max_Line_Length (not
12586         Column_Number'Last).
12587         Minor error msg update
12588         (Set_Style_Check_Options): New interface returning error msg
12589         Minor code reorganization (processing for 'M' was out of alpha order)
12590
12591         * switch-c.adb: New interface for Set_Style_Check_Options
12592
12593         * stylesw.ads (Set_Style_Check_Options): New interface returning error
12594         msg.
12595
12596 2005-12-09  Javier Miranda  <miranda@adacore.com>
12597
12598         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
12599         with IP subprogram were only supported if there were limited types.
12600
12601         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
12602         records with IP subprogram were only supported if there were limited
12603         types.
12604
12605 2005-12-09  Olivier Hainque  <hainque@adacore.com>
12606             Eric Botcazou  <ebotcazou@adacore.com>
12607
12608         * trans.c (tree_transform, emit_check): Adjust calls to
12609         build_call_raise, passing the now expected GNAT_NODE argument.
12610
12611         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
12612         source line information than what the current global locus indicates
12613         when appropriate.
12614
12615         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
12616         field has overflowed.
12617         (build_call_raise): Add a GNAT_NODE argument to convey better source
12618         line information than what the current global locus indicates when
12619         appropriate.
12620         (build_component_ref): Adjust call to build_call_raise.
12621
12622 2005-12-09  Pascal Obry  <obry@adacore.com>
12623
12624         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
12625         the iterator is quitting iteration on parent directory.
12626
12627 2005-12-09  Javier Miranda  <miranda@adacore.com>
12628
12629         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
12630         and the assignment to a class-wide object, before the assignment we
12631         generate a run-time check to ensure that the tag of the Target is
12632         covered by the tag of the source.
12633
12634 2005-12-09  Robert Dewar  <dewar@adacore.com>
12635
12636         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
12637         parameter in call to Image_Wide_Character.
12638
12639         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
12640         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
12641         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
12642         annoying FFFE/FFFF inconsistency.
12643
12644 2005-12-09  Robert Dewar  <dewar@adacore.com>
12645             Javier Miranda  <miranda@adacore.com>
12646             Ed Schonberg  <schonberg@adacore.com>
12647
12648         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
12649         of type conversion.
12650         (Find_Interface): New subprogram that given a tagged type and one of its
12651         component associated with the secondary table of an abstract interface
12652         type, return the entity associated with such abstract interface type.
12653         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
12654         base type to create anonymous subtype, because entity may be a locally
12655         declared subtype or generic actual.
12656         (Find_Interface): New subprogram that given a tagged type and one of its
12657         component associated with the secondary table of an abstract interface
12658         type, return the entity associated with such abstract interface type.
12659
12660         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
12661         conversion cannot be handled at compile time. In this case we pass this
12662         information to the expander to generate the appropriate code.
12663
12664 2005-12-09  Robert Dewar  <dewar@adacore.com>
12665             Ed Schonberg  <schonberg@adacore.com>
12666             Gary Dismukes  <dismukes@adacore.com>
12667             Javier Miranda  <miranda@adacore.com>
12668             Hristian Kirtchev  <kirtchev@adacore.com>
12669
12670         * einfo.adb (Itype_Printed): New flag
12671         (Is_Limited_Type): Derived types do not inherit limitedness from
12672         interface progenitors.
12673         (Is_Return_By_Reference_Type): Predicate does not apply to limited
12674         interfaces.
12675
12676         * einfo.ads (Itype_Printed): New flag
12677         Move Is_Wrapper_Package to proper section
12678         Add missing Inline for Is_Volatile
12679
12680         * output.ads, output.adb (Write_Erase_Char): New procedure
12681         (Save/Restore_Output_Buffer): New procedures
12682         (Save/Restore_Output_Buffer): New procedures
12683
12684         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
12685         Add missing support for anonymous access type
12686         (Write_Id): Insert calls to Write_Itype
12687         (Write_Itype): New procedure to output itypes
12688
12689         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
12690         use of "limited" in declaration.
12691
12692         * sinfo.ads, sinfo.adb: 
12693         Formal derived types can carry an explicit "limited" indication.
12694
12695         * sem_ch3.adb: Add with and use of Targparm.
12696         (Create_Component): If Frontend_Layout_On_Target is True and the
12697         copied component does not have a known static Esize, then reset
12698         the size and positional fields of the new component.
12699         (Analyze_Component_Declaration): A limited component is
12700         legal within a protected type that implements an interface.
12701         (Collect_Interfaces): Do not add to the list the interfaces that
12702         are implemented by the ancestors.
12703         (Derived_Type_Declaration): If the parent of the full-view is an
12704         interface perform a transformation of the tree to ensure that it has
12705         the same parent than the partial-view. This simplifies the job of the
12706         expander in order to generate the correct object layout, and it is
12707         needed because the list of interfaces of the full-view can be given in
12708         any order.
12709         (Process_Full_View): The parent of the full-view does not need to be
12710         a descendant of the parent of the partial view if both parents are
12711         interfaces.
12712         (Analyze_Private_Extension_Declaration): If declaration has an explicit
12713         "limited" the parent must be a limited type.
12714         (Build_Derived_Record_Type): A derived type that is explicitly limited
12715         must have limited ancestor and progenitors.
12716         (Build_Derived_Type): Ditto.
12717         (Process_Full_View): Verify that explicit uses of "limited" in partial
12718         and full declarations are consistent.
12719         (Find_Ancestor_Interface): Remove function.
12720         (Collect_Implemented_Interfaces): New procedure used to gather all
12721         implemented interfaces by a type.
12722         (Contain_Interface): New function used to check whether an interface is
12723         present in a list.
12724         (Find_Hidden_Interface): New function used to determine whether two
12725         lists of interfaces constitute a set equality. If not, the first
12726         differing interface is returned.
12727         (Process_Full_View): Improve the check for the "no hidden interface"
12728         rule as defined by AI-396.
12729
12730 2005-12-09  Robert Dewar  <dewar@adacore.com>
12731
12732         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
12733         types, not on record subtypes.
12734         (Freeze_Entity): Code cleanup. Add barrier to the loop
12735         that generates the references for primitive operations. This allows to
12736         remove an unnecessary exception handler.
12737         Code reformatting and comment clean ups.
12738
12739 2005-12-09  Vincent Celier  <celier@adacore.com>
12740
12741         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
12742         If GNAT CHECK is called with a project file, but with no
12743         source on the command line, call gnatcheck with all the compilable
12744         sources of the project.
12745         Take into account the new command Check, for gnatcheck. Treat as for
12746         other ASIS tools: take into account project, specific package Check and
12747         Compiler switches.
12748         For ASIS tools, add the switches in package Compiler for
12749         the invocation of the compiler.
12750
12751         * prj-attr.adb: Add package Check and its attributes
12752
12753         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
12754
12755         * vms_conv.adb (Initialize): Change Params of command Check to
12756         unlimited files.
12757         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
12758         Add data for new command Check
12759
12760         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
12761         ELIM.
12762         Add qualifiers for Check command options
12763         (Command_Type): New command Check
12764
12765 2005-12-09  Thomas Quinot  <quinot@adacore.com>
12766
12767         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
12768         command line switch overruns the output buffer.
12769
12770 2005-12-09  Robert Dewar  <dewar@adacore.com>
12771
12772         * sem_prag.adb: Processing for new pragma Complete_Representation
12773         (Analyze_Pragma, case Debug): Implement two argument form.
12774
12775         * par-prag.adb: Entry for new pragma Complete_Representation
12776         (Prag, case Debug): Recognize two argument form of pragma Debug
12777         New interface for Set_Style_Check_Options.
12778
12779         * sem_ch13.adb: Implement new pragma Complete_Representation.
12780
12781         * snames.adb, snames.ads, snames.h: Entry for new pragma
12782         Complete_Representation.
12783
12784 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
12785
12786         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
12787         available user-specified stream attributes on limited parameters to
12788         also test the type directly rather than only its underlying type (for
12789         Ada 95) and, in the case of Ada 2005, to check that the user-specified
12790         attributes are visible at the point of the subprogram declaration.
12791         For Ada 2005, the error message is modified to indicate that the
12792         type's stream attributes must be visible (again, only for -gnat05).
12793
12794 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
12795
12796         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
12797         anonymous access types.
12798
12799         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
12800         matching of anonymous access types and anonymous access to subprogram
12801         types. 'R'M 4.9.1 (2/2).
12802
12803 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
12804
12805         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
12806         rule prematurely when operands are universal, remaining ambiguities
12807         will be removed during resolution.
12808         Code cleanup.
12809
12810         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
12811         that are Ada 2005 functions.
12812         (Has_Abstract_Interpretation): Subsidiary to
12813         Remove_Conversions, to remove ambiguities caused by abstract operations
12814         on numeric types when operands are universal.
12815
12816 2005-12-09  Robert Dewar  <dewar@adacore.com>
12817
12818         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
12819         for case where spec is categorized.
12820
12821 2005-12-09  Javier Miranda  <miranda@adacore.com>
12822
12823         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
12824         types use the corresponding record type. This was not needed before
12825         the implementation of Ada 2005 synchronized types because
12826         concurrent types were never tagged types in Ada 95.
12827
12828 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
12829
12830         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
12831         first subtype of the type of the expression to verify that it is a
12832         legal Time type.
12833
12834 2005-12-09  Robert Dewar  <dewar@adacore.com>
12835
12836         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
12837         decoded names.
12838
12839 2005-12-09  Quentin Ochem  <ochem@adacore.com>
12840             Robert Dewar  <dewar@adacore.com>
12841             Ed Falis  <falis@adacore.com>
12842             Florian Villoing  <villoing@adacore.com>
12843             Thomas Quinot  <quinot@adacore.com>
12844             Arnaud Charlet  <charlet@adacore.com>
12845
12846         * gnat_ugn.texi: Created section "Stack Related Tools"
12847         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
12848         "Stack Related Tools"
12849         Added subsection "Static Stack Usage Analysis"
12850         Added subsection "Dynamic Stack Usage Analysis"
12851         Include documentation of itypes in sprint listing (-gnatG)
12852         Documented gnatbind -D switch (default sec stack size for fixed sec
12853         stacks).
12854         Added Interrupt_State and Persistent_BSS to list of configuration
12855         pragmas.
12856         Add missing doc for maximum value of nnn in -gnatyMnnn
12857
12858         * gnat_rm.texi: Document the AltiVec binding.
12859         Add documentation for pragma Complete_Representation
12860         Shortened an overly long line (> 79 chars)
12861         Clarify documentation of unchecked conversion in implementation
12862         defined cases.
12863         Document two argument form of pragma Debug
12864
12865         * types.ads (Column_Number): Update documentation.
12866
12867         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
12868         library level Finalize_Storage_Only objects (these are not attached to
12869         any finalization list).
12870
12871         * system-mingw.ads: (Underlying_Priorities): Update comment.
12872
12873 2005-12-09  Robert Dewar  <dewar@adacore.com>
12874
12875         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
12876         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
12877         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
12878         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
12879         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
12880         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
12881         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
12882         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
12883         reformatting.
12884
12885 2005-12-09  Robert Dewar  <dewar@adacore.com>
12886
12887         * s-vaflop-vms-alpha.adb: (Ne_F): New function
12888         (Ne_G): New function
12889
12890         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
12891         for tag assignment.
12892         (Rewrite_Comparison): Handle case where operation is not a comparison
12893         and ignore, and also handle type conversion case.
12894
12895 2005-12-09  Thomas Quinot  <quinot@adacore.com>
12896
12897         * exp_aggr.ads: Fix typo in comment.
12898         ???-mark Convert_Aggr_In_Assignment as needing documentation.
12899
12900 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
12901
12902         * layout.adb: Replace various uses of byte by storage unit throughout.
12903         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
12904         static size, convert to storage units before returning, to conform to
12905         spec.
12906
12907 2005-12-09  Matthew Gingell  <gingell@adacore.com>
12908
12909         * g-exctra.ads: Fix typo in comment.
12910
12911 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12912
12913         * utils.c: Minor reformatting.
12914
12915 2005-12-09  Robert Dewar  <dewar@adacore.com>
12916
12917         * g-soccon.ads: 
12918         Further comment fixes to make the status of the default file clear
12919
12920         * s-bitops.adb: Clarify comment for Bits_Array
12921
12922 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
12923
12924         * Make-lang.in (ada.install-normal): Remove.
12925
12926 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
12927
12928         * Make-lang.in: Remove all dependencies on s-gtype.
12929
12930 2005-12-05  Richard Guenther  <rguenther@suse.de>
12931
12932         * utils.c (convert): Use fold_convert where appropriate.
12933
12934 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
12935
12936         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
12937         a period is meant.
12938
12939 2005-12-02  Richard Guenther  <rguenther@suse.de>
12940
12941         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
12942
12943 2005-12-01  Roger Sayle  <roger@eyesopen.com>
12944
12945         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
12946         nodes.
12947
12948 2005-11-23  Laurent GUERBY  <laurent@guerby.net>
12949
12950         * mlib-prj.adb (Build_Library): Initialize Delete.
12951
12952 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
12953
12954         * socket.c: Add extern int h_errno for rtems since networking header
12955         files are not available at this point in a tool bootstrap. Newlib
12956         only has basic C library header files.
12957
12958 2005-11-19  Richard Guenther  <rguenther@suse.de>
12959         Roger Sayle  <roger@eyesopen.com>
12960
12961         PR ada/23717
12962         * misc.c (internal_error_function): Don't use vsprintf to format
12963         the error message text, instead use pp_format_text and the new
12964         pretty printer APIs.  This allows handling of %qs, %w, etc.
12965
12966 2005-11-18  Laurent GUERBY  <laurent@guerby.net>
12967
12968         PR ada/24857
12969         * Makefile.in: Use s-auxdec-empty for RTEMS.
12970
12971 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12972
12973         PR ada/22333
12974         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
12975         a temporary if taking the address of something that is neither
12976         reference, declaration, or constant, since the gimplifier
12977         can't handle that case.
12978
12979 2005-11-17  Laurent GUERBY  <laurent@guerby.net>
12980
12981         PR ada/24857
12982         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
12983
12984 2005-11-16  Richard Guenther  <rguenther@suse.de>
12985
12986         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
12987
12988 2005-11-16  Joel Sherrill <joel.sherrill@oarcorp.com>
12989
12990         PR ada/24855
12991         * raise-gcc.c: Add missing stdarg.h include.
12992  
12993 2005-11-16  Richard Guenther  <rguenther@suse.de>
12994
12995         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
12996         (ada/misc.o): Likewise.
12997
12998 2005-11-14  Thomas Quinot  <quinot@adacore.com>
12999
13000         * g-soccon.ads: Minor reformatting. Update comments.
13001
13002         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
13003         gain visibility on the declaration of struct timeval.
13004
13005         * g-soccon-freebsd.ads,
13006         g-soccon-darwin.ads,
13007         g-soccon-tru64.ads,
13008         g-soccon-aix.ads,
13009         g-soccon-irix.ads,
13010         g-soccon-hpux.ads,
13011         g-soccon-solaris.ads,
13012         g-soccon-vms.ads,
13013         g-soccon-mingw.ads,
13014         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
13015
13016         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
13017         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
13018         g-soccon-linux-x86.ads: New files.
13019
13020         * g-socthi-mingw.adb: 
13021         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
13022
13023         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
13024         (time_t, suseconds_t): New types constructed to match the tv_sec
13025         and tv_usec fields of C struct timeval.
13026         (Timeval): Construct structure in terms of the new types.
13027         (Host_Errno): New function (imported from socket.c), returns last hosts
13028         database error.
13029
13030         * g-socthi-vxworks.adb:  Add error handling circuitry.
13031
13032         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
13033         components of struct timeval.
13034         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
13035         (Check_Selector): In error conditions, clear internal socket sets to
13036         avoid a memory leak.
13037         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
13038         Send_Timeout, Receive_Timeout.
13039
13040         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
13041         the tv_sec and tv_usec fields of C struct timeval.
13042         (Timeval): Construct structure in terms of the new types.
13043         (Host_Errno): New function (imported from socket.c), returns last hosts
13044         database error.
13045
13046         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
13047         hosts database last error code.
13048
13049         * gen-soccon.c: Complete value expansion should not be performed on
13050         TARGET, as it has the form of a math expression, and some components
13051         may be platform-defined macros.
13052         For VxWorks, generate the OK and ERROR values.
13053         New constants giving the sizes of the components of C struct timeval.
13054
13055 2005-11-14  Robert Dewar  <dewar@adacore.com>
13056             Ed Schonberg  <schonberg@adacore.com>
13057
13058         PR ada/18434
13059         * types.ads: Include All_Checks in Suppress_Array
13060
13061         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
13062         not(a=b), since we no longer do this rewriting, and hence it is not
13063         needed.
13064         (Elaboration_Checks_Suppressed): Add special casing to
13065         deal with different cases of static and dynamic elaboration checks (all
13066         checks does not count in the first case, but does in the second).
13067         (Expr_Known_Valid): Do not assume that the result of any arbitrary
13068         function call is valid, since this is not the case.
13069         (Ensure_Valid): Do not apply validity check to a real literal
13070         in a universal or fixed context
13071
13072         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
13073         elementary types using the operator in standard. It is cleaner not to
13074         modify the programmers intent, especially in the case of floating-point.
13075         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
13076         it did not matter because we always rewrote a/=b to not(a=b).
13077         (Expand_Allocator_Expression): For an allocator expression whose nominal
13078         subtype is an unconstrained packed type, convert the expression to its
13079         actual constrained subtype.
13080         Implement warning for <= or >= where < or > not possible
13081         Fix to Vax_Float tests (too early in many routines, causing premature
13082         Vax_Float expansions.
13083
13084         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
13085         to be used with packages and generic packages as well as with
13086         subprograms.
13087         (Suppress): Set All_Checks, but not Elaboration_Check, for case
13088         of pragma Suppress (All_Checks)
13089         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
13090         a string literal for precise control over warnings.
13091         Avoid raise of pragma in case of unrecognized pragma and just return
13092         instead.
13093
13094         * sem_prag.ads: Minor reformatting
13095
13096         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
13097         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
13098         Switch. Do not handle any exception.
13099         Include -gnatwx as part of -gnatg (warn on redundant parens)
13100         Allow optional = after -gnatm
13101         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
13102         longer sets Elaboration_Checks.
13103         Code to set warning mode moved to Sem_Warn
13104         so that it can be shared by pragma processing.
13105
13106         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
13107         statement.
13108
13109         * s-taprop-solaris.adb: 
13110         Change some <= to =, to avoid new warning
13111
13112         * a-exexda.adb, prj-proc.adb: 
13113         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
13114         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
13115
13116 2005-11-14  Robert Dewar  <dewar@adacore.com>
13117
13118         * exp_vfpt.adb: Handle /= case
13119         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
13120         so that we do not get duplicate scaling for fixed point conversions.
13121
13122         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
13123
13124 2005-11-14  Matthew Gingell  <gingell@adacore.com>
13125
13126         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
13127         Increase default priority on Lynx from 15 to 17, and meet the Ada
13128         requirement that Default_Priority be ((Priority'First +
13129         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
13130
13131 2005-11-14  Vincent Celier  <celier@adacore.com>
13132
13133         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
13134         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
13135         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
13136         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
13137         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
13138         mlib-tgt-lynxos.adb (DLL_Prefix): New function
13139
13140 2005-11-14  Doug Rupp  <rupp@adacore.com>
13141
13142         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
13143         private part.
13144
13145 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
13146
13147         * s-traces-default.adb, s-trafor-default.ads,
13148         s-tratas-default.adb: Fix compilation errors.
13149
13150 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
13151
13152         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
13153         raising the exception so the memory used is freed.
13154
13155 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
13156
13157         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
13158         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
13159         (convert_address): Update comments and list of platforms using this.
13160
13161         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
13162         no longer used.
13163
13164 2005-11-14  Pascal Obry  <obry@adacore.com>
13165             Vincent Celier  <celier@adacore.com>
13166
13167         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
13168         GNAT.Command_Line.
13169
13170         * memroot.adb: Remove redundant with/use clause on
13171         System.Storage_Elements.
13172
13173 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
13174
13175         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
13176         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
13177         related code to a-exexpr.adb
13178         (Save_Occurrence_And_Private): Move GCC EH related code to
13179         a-exexpr-gcc.adb
13180         (Raise_Current_Excep): Add new variable Id with pragma
13181         volatile, to ensure that the variable lives on stack.
13182
13183         * a-exexpr-gcc.adb, raise-gcc.c: New file.
13184
13185         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
13186         from a-except.adb.
13187         Move GCC EH related code to a-exexpr-gcc.adb
13188
13189         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
13190         64-bit Solaris
13191         Split the Linux version of g-soccon into separate variants for 32 and 64
13192         bit platforms.
13193         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
13194         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
13195         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
13196         of host variable $(RANLIB_FLAGS).
13197         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
13198         Code clean up: remove unused/obsolete targets.
13199         (EH_MECHANISM): New variable introduced to differenciate between the
13200         two EH mechanisms statically.
13201         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
13202         (LIBGNAT_OBJS): Add raise-gcc.o
13203         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
13204         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
13205         supports VxWorks 6 RTPs.
13206         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
13207         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
13208
13209         * raise.c: Move all GCC EH-related routines to raise-gcc.c
13210
13211 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
13212
13213         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
13214         deferral level, when abort is not allowed, to a later stage (the
13215         Task_Wrapper).
13216         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
13217         it will not get changed by the generated code. It was previously done
13218         in Create_Task.
13219
13220 2005-11-14  Thomas Quinot  <quinot@adacore.com>
13221             Olivier Hainque  <hainque@adacore.com>
13222             Eric Botcazou  <ebotcazou@adacore.com>
13223
13224         * decl.c:
13225         Factor common code to build a storage type for an unconstrained object
13226         from a fat or thin pointer type and a constrained object type.
13227         (annotate_value): Handle BIT_AND_EXPR.
13228         (annotate_rep): Don't restrict the back annotation of inherited
13229         components to the type_annotate_only case.
13230         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
13231         we are not defining the type.
13232         <E_Record_Type>: Likewise.
13233         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
13234         to get advantage of the new maybe_stabilize_reference interface, to
13235         ensure that what we reference is indeed stabilized instead of relying
13236         on assumptions on what the stabilizer does.
13237         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
13238         type imported through a limited_with clause, use its non-limited view.
13239         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
13240         differentiation.
13241         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
13242         of #if sections + explicit comparisons of convention identifiers.
13243         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
13244         before early-returning for certain types when code generation is
13245         disabled.
13246         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
13247         nullification of gnu_expr we do for objects with address clause and
13248         that we are not defining.
13249         (elaborate_expression_1): Do not create constants when creating
13250         variables needed by the debug info: the dwarf2 writer considers that
13251         CONST_DECLs is used only to represent enumeration constants, and emits
13252         nothing for them.
13253         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
13254         object with an address clause into an indirect reference, drop the
13255         initializing expression.
13256         Include "expr.h".
13257         (STACK_CHECK_BUILTIN): Delete.
13258         (STACK_CHECK_PROBE_INTERVAL): Likewise.
13259         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
13260         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
13261         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
13262         corresponding to the renamed object as ignored for debugging purposes.
13263
13264         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
13265         related): For a prefix that is a dereference of a fat or thin pointer,
13266         if there is an actual subtype provided by the front-end, use that
13267         subtype to build an actual type with bounds template.
13268         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
13269         is provided by the front-end, use that subtype to compute the size of
13270         the deallocated object.
13271         (gnat_to_gnu): When adding a statement into an elaboration procedure,
13272         check for a potential violation of a No_Elaboration_Code restriction.
13273         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
13274         with extra arguments to control whether to recurse through non-values
13275         and to let the caller know if the stabilization has succeeded.
13276         (gnat_stabilize_reference): Now a simple wrapper around
13277         maybe_stabilize, for common uses without restriction on lvalues and
13278         without need to check for the success indication.
13279         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
13280         pass false instead of 0 as the FORCE argument which is a bool.
13281         (Identifier_to_gnu): Remove checks ensuring that an renamed object
13282         attached to a renaming pointer has been properly stabilized, as no such
13283         object is attached otherwise.
13284         (call_to_gnu): Invoke create_var_decl to create the temporary when the
13285         function uses the "target pointer" return mechanism.
13286         Reinstate conversion of the actual to the type of the formal
13287         parameter before any other specific treatment based on the passing
13288         mechanism. This turns out to be necessary in order for PLACEHOLDER
13289         substitution to work properly when the latter type is unconstrained.
13290
13291         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
13292         common pattern.
13293         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
13294         with extra arguments to control whether to recurse through non-values
13295         and to let the caller know if the stabilization has succeeded.
13296
13297         * utils2.c (gnat_build_constructor): Only sort the fields for possible
13298         static output of record constructor if all the components are constant.
13299         (gnat_build_constructor): For a record type, sort the list of field
13300         initializers in increasing bit position order.
13301         Factor common code to build a storage type for an unconstrained object
13302         from a fat or thin pointer type and a constrained object type.
13303         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
13304         types variants, and process special cases of VIEW_CONVERT expressions
13305         as their NOP_EXPR counterpart to ensure we get to the
13306         CORRESPONDING_VARs associated with CONST_DECls.
13307         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
13308         on the right-hand side.
13309
13310         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
13311         a common pattern.
13312         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
13313         are converting back to its original type.
13314         (convert) <JM input>: Fallthrough regular conversion code instead of
13315         extracting the object if converting to a type variant.
13316         (create_var_decl): When a variable has an initializer requiring code
13317         generation and we are at the top level, check for a potential violation
13318         of a No_Elaboration_Code restriction.
13319         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
13320         SIZE and SIZE_UNIT which we need for later back-annotations.
13321         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
13322         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
13323         is an unchecked union.
13324         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
13325         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
13326         main variant, just replace the VIEW_CONVERT_EXPR.
13327         <UNION_TYPE>: Revert 2005-03-02 change.
13328
13329         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
13330
13331         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
13332
13333 2005-11-14  Matthew Heaney  <heaney@adacore.com>
13334
13335         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
13336         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
13337         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
13338         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
13339         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
13340         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
13341         Compiles against the spec for ordered maps described in sections
13342         A.18.6 of the most recent (August 2005) AI-302 draft.
13343
13344 2005-11-14  Olivier Hainque  <hainque@adacore.com>
13345
13346         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
13347         to ensure bias adjustments take place when need be and to prevent
13348         occurrences of intermediate overflows.
13349
13350 2005-11-14  Matthew Gingell  <gingell@adacore.com>
13351             Olivier Hainque  <hainque@adacore.com>
13352
13353         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
13354         ia64 HP-UX.
13355
13356         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
13357         tracebacks on ia64 HP-UX and provide explanatory comment.
13358         Enable backtraces on ia64 GNU/Linux.
13359         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
13360         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
13361
13362 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
13363             Javier Miranda  <miranda@adacore.com>
13364
13365         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
13366         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
13367         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
13368         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
13369
13370         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
13371         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
13372         assertions).
13373
13374         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
13375         subprogram that generates the external name associated with a
13376         secondary dispatch table.
13377         (Get_Secondary_DT_External_Name): New subprogram that generates the
13378         external name associated with a secondary dispatch table.
13379
13380 2005-11-14  Emmanuel Briot  <briot@adacore.com>
13381
13382         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
13383         line in the ALI file to include both an instantiation reference, and a
13384         returned value.
13385
13386 2005-11-14  Vincent Celier  <celier@adacore.com>
13387
13388         * clean.adb (Check_Project): Look for Ada code in extending project,
13389         even if Ada is not specified as a language.
13390         Use new function DLL_Prefix for DLL_Name
13391         (Clean_Interface_Copy_Directory): New procedure
13392         (Clean_Library_Directory): New procedure
13393         (Clean_Directory): Remove procedure, no longer used
13394         (Clean_Project): Do not delete any file in an externally built project
13395
13396         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
13397         directory of an extending project, even when there are no Ada source
13398         present.
13399         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
13400         (Set_Ada_Paths.Add.Recursive_Add): Ditto
13401
13402         * mlib-prj.adb (Check_Library): For all library projects, get the
13403         library file timestamp.
13404         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
13405         (Build_Library): Use new function DLL_Prefix for the DLL_Name
13406         (Clean): Remove procedure, no longer used
13407         (Ultimate_Extension_Of): New function
13408         (Build_Library): When cleaning the library directory, only remove an
13409         existing library file and any ALI file of a source of the project.
13410         When cleaning the interface copy directory, remove any source that
13411         could be a source of the project.
13412
13413         * prj.ads, prj.adb (Project_Empty): Add values of new components
13414         Library_TS and All_Imported_Projects.
13415         (Project_Empty): Add values for new components of Project_Data:
13416         Library_ALI_Dir and Display_Library_ALI_Dir
13417
13418         * prj-attr.adb: New project level attribute name Library_ALI_Dir
13419
13420         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
13421         attribute Library_ALI_Dir.
13422         (Check_Library_Attributes): The library directory cannot be the same as
13423         any source directory of the project tree.
13424         (Check_Stand_Alone_Library): The interface copy directory cannot be
13425         the same as any source directory of the project tree.
13426
13427         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
13428         all temporary files.
13429
13430 2005-11-14  Robert Dewar  <dewar@adacore.com>
13431             Ed Schonberg  <schonberg@adacore.com>
13432
13433         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
13434         (Check_Elab_Call): A call within a protected body is never an
13435         elaboration call, and does not require checking.
13436         (Same_Elaboration_Scope): Take into account protected types for both
13437         entities.
13438         (Activate_Elaborate_All_Desirable): New procedure
13439
13440         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
13441         desirable
13442
13443         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
13444         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
13445
13446         * lib-writ.ads, lib-writ.adb: 
13447         Implement new AD/ED for Elaborate_All/Elaborate desirable
13448         Use new Elaborate_All_Desirable flag in N_With_Clause node
13449
13450         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
13451         N_Free_Statement nodes.
13452         Define new class N_Subprogram_Instantiation
13453         Add Elaborate_Desirable flag to N_With_Clause node
13454         Add N_Delay_Statement (covering two kinds of delay)
13455
13456         * debug.adb: Introduce d.f flag for compiler
13457         Add -da switch for binder
13458
13459 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13460             Cyrille Comar  <comar@adacore.com>
13461
13462         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
13463         for task component, in the case of a limited aggregate. The enclosed
13464         object declaration will create it earlier. Otherwise, in the case of a
13465         nested aggregate, the object may appear in the wrong scope.
13466         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
13467         (Gen_Assign): If the component being assigned is an array type and the
13468         expression is itself an aggregate, wrap the assignment in a block to
13469         force finalization actions on the temporary created for each row of the
13470         enclosing object.
13471         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
13472         structures are initialized after all discriminants are set so that
13473         they can be accessed even when their offset is dynamic.
13474
13475 2005-11-14  Robert Dewar  <dewar@adacore.com>
13476             Hristian Kirtchev  <kirtchev@adacore.com>
13477
13478         * sem_attr.adb: Implement Machine_Rounding attribute
13479         (Analyze_Access_Attribute): The access attribute may appear within an
13480         aggregate that has been expanded into a loop.
13481         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
13482         'Terminated whenever the prefix is of a task interface class-wide type.
13483         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
13484         the prefix is of a task interface class-wide type.
13485
13486         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
13487         to avoid warnings.
13488
13489         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
13490         Remove pragma Inline for [Unaligned_]Valid.
13491         Add comments that Valid routines do not work for Vax_Float
13492
13493         * exp_attr.adb: Implement Machine_Rounding attribute
13494
13495         * snames.h: Add entry for Machine_Rounding attribute
13496
13497 2005-11-14  Javier Miranda  <miranda@adacore.com>
13498             Robert Dewar  <dewar@adacore.com>
13499             Hristian Kirtchev  <kirtchev@adacore.com>
13500
13501         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
13502         and related): For a prefix that is an explicit dereference of an
13503         access to unconstrained packed array type, annotate the dereference
13504         with an actual subtype so GIGI can make a correct size computation.
13505         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
13506         'Unrestricted_Access, if the designated type is an interface we
13507         add a type conversion to force the displacement of the pointer
13508         to the secondary dispatch table.
13509         Use Universal_Real instead of Long_Long_Float when we need a high
13510         precision float type for the generated code (prevents gratuitous
13511         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
13512         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
13513         'Terminated for task interface class-wide objects. Generate a call to
13514         the predefined dispatching routine used to retrieve the _task_id from
13515         a task corresponding record.
13516         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
13517
13518         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
13519         (Check_Dispatching_Operation): Protect the frontend againts
13520         previously detected errors.
13521
13522         * Makefile.rtl: Add new instantiations of system.fat_gen
13523
13524         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
13525         Change name of instantiated package for better consistency
13526         with newly added system.fat_gen instantiations.
13527
13528         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
13529         s-fvagfl.ads: New files.
13530
13531 2005-11-14  Cyrille Comar  <comar@adacore.com>
13532             Thomas Quinot  <quinot@adacore.com>
13533
13534         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
13535         assignment of a value of a tagged type that has been rewritten to a
13536         block statement, it is known by construction that no checks are
13537         necessary for the statements within the block: analyze it with checks
13538         suppressed.
13539         (Expand_N_If_Statement): When killing a dead then-branch in an
13540         if-statement that has elsif_parts, recompute the Current_Value node
13541         for any entity whose value is known from the condition of the first
13542         elsif_part.
13543         (Expand_N_Return_Statement): When returning a mutable record, convert
13544         the return value into its actual subtype in order to help the backend
13545         to return the actual size instead of the maximum. This is another
13546         aftermath of not returning mutable records on the sec-stack anymore.
13547
13548         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
13549         handling of error msg for suspicious reverse range iteration.
13550         (Check_Possible_Current_Value_Condition): Move declaration from body to
13551         spec, to allow this subprogram to be called from exp_ch5.
13552
13553 2005-11-14  Thomas Quinot  <quinot@adacore.com>
13554
13555         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
13556         generate a set of nested array aggregates instead of a single flat
13557         aggregate for multi-dimensional arrays.
13558
13559 2005-11-14  Pascal Obry  <obry@adacore.com>
13560
13561         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
13562         by spawnve is a process handle, no need to convert. Add a parameter
13563         close to control wether the process handle must be closed.
13564         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
13565         a process handle, not need to convert.
13566         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
13567
13568         * g-expect.adb: (Kill): Document the new close parameter.
13569         (Close): Do not release the process handle in the kill there as
13570         waitpid() is using it.
13571         (Send_Signal): Release the process handle.
13572
13573 2005-11-14  Robert Dewar  <dewar@adacore.com>
13574
13575         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
13576         need a high precision float type for the generated code (prevents
13577         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
13578         used).
13579
13580         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
13581         need a high precision float type for the generated code (prevents
13582         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
13583         used).
13584         (Expand_Width_Attribute): In configurable run-time, the attribute is not
13585         allowed on non-static enumeration subtypes. Force a load error to emit
13586         the correct diagnostic.
13587
13588 2005-11-14  Thomas Quinot  <quinot@adacore.com>
13589             Robert Dewar  <dewar@adacore.com>
13590             Ed Schonberg  <schonberg@adacore.com>
13591
13592         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
13593         subtype to compute the size of the designated object at run-time,
13594         create such a subtype and store it in the Actual_Designated_Subtype
13595         attribute of the N_Free_Statement.
13596         Generate itype for classwide designated object in both cases of
13597         user-specified storage pool: specific and class-wide, not only in the
13598         specific case.
13599         Raise CE when trying to set a not null access type object to null.
13600         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
13601         an explicit loop, because freeze nodes make its position variable.
13602
13603         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
13604         null object.
13605
13606 2005-11-14  Javier Miranda  <miranda@adacore.com>
13607
13608         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
13609         Build_Stream_Procedure): Add the null-excluding attribute to the first
13610         formal.
13611         This has no semantic meaning under Ada95 mode but it is a
13612         requirement under Ada05 mode.
13613
13614         * par-ch3.adb (P_Access_Definition): Addition of warning message if
13615         the null exclusion is used under Ada95 mode
13616         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
13617         (P_Access_Definition): Remove assertion that forbids the use of
13618         the null-exclusion feature in Ada95.
13619
13620 2005-11-14  Robert Dewar  <dewar@adacore.com>
13621
13622         * impunit.adb: Exclude container helper units not intended for use by
13623         users.
13624
13625 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13626
13627         * freeze.adb (Freeze_Entity): For an access formal that is an access
13628         to subprogram, freeze the anonymous subprogram type at the same time,
13629         to prevent later freezing in the wrong scope, such as the enclosing
13630         subprogram body.
13631         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
13632         subprogram whenever available.
13633
13634 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
13635
13636         PR ada/23732
13637         * gnatvsn.ads (Library_Version): Bump to 4.1
13638
13639 2005-11-14  Robert Dewar  <dewar@adacore.com>
13640
13641         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
13642         Storage_Offset to avoid wrap around causing invalid results.
13643
13644 2005-11-14  Pascal Obry  <obry@adacore.com>
13645
13646         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
13647         cross-compiler.
13648         (Scan_Bind_Arg): Fail with an error message if -M option is used
13649         on a native compiler.
13650
13651 2005-11-14  Robert Dewar  <dewar@adacore.com>
13652             Vincent Celier  <celier@adacore.com>
13653
13654         * gprep.adb: Implement -C switch to scan comments
13655
13656         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
13657
13658         * scans.ads: Comment updates (including new use of Tok_Comment in
13659         preprocessing)
13660
13661         * opt.ads: Add documentation for flags that are used by gprmake,
13662         currently and in the next version of gprmake.
13663         (Verbosity_Level): New variable
13664         Add Replace_In_Comments switch
13665
13666         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
13667         and -vm.
13668         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
13669
13670 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
13671
13672         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
13673         message, friendlier.
13674
13675 2005-11-14  Robert Dewar  <dewar@adacore.com>
13676
13677         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
13678
13679 2005-11-14  Doug Rupp  <rupp@adacore.com>
13680
13681         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
13682
13683 2005-11-14  Robert Dewar  <dewar@adacore.com>
13684
13685         * interfac.ads: Change declarations of IEEE float types so that we no
13686         longer need a separate version of this package for VMS.
13687
13688 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13689
13690         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
13691         internal entity created for the declaration of a child subprogram body
13692         with no spec as coming from source, to generate proper cross-reference
13693         information.
13694
13695 2005-11-14  Vincent Celier  <celier@adacore.com>
13696
13697         * make.adb (Compile_Sources): Change verbose message to minimum
13698         verbosity level High for "is in an Ada library", "is a read-only
13699         library" and "is an internal library",
13700         (Create_Binder_Mapping_File): Path name of ALI file for library project
13701         must include the library directory, not the object directory.
13702         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
13703         for new switches -vl, -vm and -vh.
13704         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
13705         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
13706         (Compile_Sources): Do not attempt to compile if an ALI file is missing
13707         in a project that is externally built.
13708         (Compute_All_Imported_Projects): New procedure
13709         (Gnatmake): Check if importing libraries should be regenerated because
13710         at least an imported library is more recent.
13711         (Initialize): For each project compute the list of the projects it
13712         imports directly or indirectly.
13713         (Add_Library_Search_Dir): New procedure, used in place of
13714         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
13715         put in the search paths.
13716         (Add_Source_Search_Dir): New procedure, used in place of
13717         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
13718         put in the search paths.
13719         (Mark_Directory): Resolve the absolute path the directory before marking
13720         it.
13721
13722         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
13723         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
13724         Switch. Do not handle any exception.
13725         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
13726         so that the switch is recognized as valid.
13727         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
13728
13729 2005-11-14  GNAT Script  <nobody@adacore.com>
13730
13731         * Make-lang.in: Makefile automatically updated
13732
13733 2005-11-14  Pascal Obry  <obry@adacore.com>
13734
13735         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
13736         used.
13737         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
13738         In both cases the last argument was dropped.
13739
13740 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
13741
13742         * namet.h: (Column_Numbe): New type.
13743         (Get_Column_Number): Define to sinput__get_column_number.
13744         (Instantiation): Define to sinput__instantiation.
13745         (Get_Column_Number): Declare.
13746         (Instantiation): Likewise.
13747
13748 2005-11-14  Robert Dewar  <dewar@adacore.com>
13749
13750         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
13751         syntax, which could cause compiler hangs.
13752
13753 2005-11-14  Vincent Celier  <celier@adacore.com>
13754
13755         * prj-ext.adb: Take into account new environment variable
13756         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
13757         are defined.
13758         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
13759         normalize its path name, making it absolute and resolving symbolic
13760         links, and replace the original if resolved path is different.
13761
13762 2005-11-14  Vincent Celier  <celier@adacore.com>
13763
13764         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
13765         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
13766
13767 2005-11-14  Emmanuel Briot  <briot@adacore.com>
13768
13769         * prj-pp.adb (Print): Do not output the with statement if the
13770         associated name is empty, which happens for virtual extending projects.
13771         (Print): Preserve the "extends all" attribute when printing the project.
13772
13773         * prj-tree.ads (String_Value_Of): Add comment about returned value for
13774         a virtual extending project.
13775
13776 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13777
13778         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
13779         rhs of an assignment even if the type is unconstrained, when the
13780         context is non-expanding.
13781         In an inlined body, if the context type is private,
13782         resolve with its full view, which must be a composite type.
13783
13784 2005-11-14  Robert Dewar  <dewar@adacore.com>
13785             Ed Schonberg  <schonberg@adacore.com>
13786
13787         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
13788         Do not give obsolescent warning on with of subprogram (since we
13789         diagnose calls)
13790         (Analyze_With_Clause): Add test for obsolescent package
13791         (Install_Context_Clauses): If the unit is the body of a child unit, do
13792         not install twice the private declarations of the parents, to prevent
13793         circular lists of Use_Clauses in a parent.
13794         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
13795         compiling body of child unit.
13796         Use new class N_Subprogram_Instantiation
13797         (Expand_With_Clause): If this is a private with_clause for a child unit,
13798         appearing in the context of a package declaration, then the implicit
13799         with_clauses generated for parent units are private as well.
13800         (License_Check): Do not generate message if with'ed unit is internal
13801
13802 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
13803             Ed Schonberg  <schonberg@adacore.com>
13804             Thomas Quinot  <quinot@adacore.com>
13805
13806         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
13807         names are internal, because they will not have a corresponding partner
13808         in the actual package.
13809         (Analyze_Formal_Package): Move the setting of the formal package spec's
13810         Generic_Parent field so that it occurs prior to analyzing the package,
13811         to allow proper operation of Install_Parent_Private_Declarations.
13812         (Analyze_Package_Instantiation): Set the instantiated package entity's
13813         Package_Instantiation field.
13814         (Get_Package_Instantiation_Node): Move declaration to package spec.
13815         Retrieve the N_Package_Instantiation node when the Package_Instantiation
13816         field is present.
13817         (Check_Generic_Child_Unit): Within an inlined call, the only possible
13818         instantiation is Unchecked_Conversion, for which no parents are needed.
13819         (Inline_Instance_Body): Deinstall and record the use_clauses for all
13820         parent scopes of a scope being removed prior to inlining an instance
13821         body.
13822         (Analyze_Package_Instantiation): Do not perform front-end inlining when
13823         the current context is itself an instance within a non-instance child
13824         unit, to prevent scope stack errors.
13825         (Save_References): If the node is an aggregate that is an actual in a
13826         call, rewrite as a qualified expression to preserve some type
13827         information, to resolve possible ambiguities in the instance.
13828         (Instance_Parent_Unit): New global variable to record the ultimate
13829         parent unit associated with a generic child unit instance (associated
13830         with the existing Parent_Unit_Visible flag).
13831         (type Instance_Env): New component Instance_Parent_Unit for stacking
13832         parents recorded in the global Instance_Parent_Unit.
13833         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
13834         stack.
13835         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
13836         it's not a top-level unit, and only do this if Instance_Parent_Unit is
13837         not already set. Replace test of Is_Child_Unit with test of parent's
13838         scope against package Standard. Add comments and a ??? comment.
13839         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
13840         on a child instance parent to test that the parent equals
13841         Instance_Parent rather than simply checking that the unit is not a
13842         child unit.
13843         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
13844         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
13845         a formal interface are ancestors of the corresponding actual.
13846         (Validate_Formal_Interface_Type): Additional legality checks.
13847         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
13848         interface types with ancestors.
13849         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
13850         to diagnose attempts to use generic within its own declaration.
13851
13852 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13853             Javier Miranda  <miranda@adacore.com>
13854
13855         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
13856         discriminant.
13857         (Build_Private_Derived_Type): The entity of the created full view of the
13858         derived type does not come from source. If after installing the private
13859         declarations of the parent scope the parent is still private, use its
13860         full view to construct the full declaration of the derived type.
13861         (Build_Derived_Record_Type): Relax the condition that controls the
13862         execution of the check that verifies that the partial view and
13863         the full view agree in the set of implemented interfaces. In
13864         addition, this test now only takes into account the progenitors.
13865         (Derive_Interface_Subprograms): No need to derive subprograms
13866         of ancestors that are interfaces.
13867         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
13868         associated code.
13869         Change name Is_Package to Is_Package_Or_Generic_Package
13870         (Complete_Subprograms_Derivation): Handle the case in which the full
13871         view is a transitive derivation of the ancestor of the partial view.
13872         (Process_Full_View): Rename local subprogram Find_Interface_In_
13873         Descendant to Find_Ancestor_Interface to leave the code more clear.
13874         Remove wrong code that avoids the generation of an error message
13875         when the immediate ancestor of the partial view is an interface.
13876         In addition some minor reorganization of the code has been done to
13877         leave it more clear.
13878         (Analyze_Type_Declaration): If type has previous incomplete tagged
13879         partial view, inherit properly its primitive operations.
13880         (Collect_Interfaces): Make public, for analysis of formal
13881         interfaces.
13882         (Analyze_Interface_Declaration): New procedure for use for regular and
13883         formal interface declarations.
13884         (Build_Derived_Record_Type): Add support for private types to the code
13885         that checks if a tagged type implements abstract interfaces.
13886         (Check_Aliased_Component_Type): The test applies in the spec of an
13887         instance as well.
13888         (Access_Type_Declaration): Clean up declaration of malformed type
13889         declared as an access to its own classwide type, to prevent cascaded
13890         crash.
13891         (Collect_Interfaces): For private extensions and for derived task types
13892         and derived protected types, the parent may be an interface that must
13893         be included in the interface list.
13894         (Access_Definition): If the designated type is an interface that may
13895         contain tasks, create Master_Id for it before analyzing the expression
13896         of the declaration, which may be an allocator.
13897         (Record_Type_Declaration): Set properly the interface kind, for use
13898         in allocators, the creation of master id's for task interfaces, etc.
13899
13900 2005-11-14  Javier Miranda  <miranda@adacore.com>
13901             Ed Schonberg  <schonberg@adacore.com>
13902
13903         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
13904         omitted in case of stream attribute subprograms.
13905         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
13906         appear immediately after a subprogram body, when there is no previous
13907         subprogram declaration.
13908         Change name Is_Package to Is_Package_Or_Generic_Package
13909         (Process_Formals): A non null qualifier on a non null named access
13910         type is not an error, and is a warning only if Redundant_Constructs
13911         are flagged.
13912
13913 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
13914             Ed Schonberg  <schonberg@adacore.com>
13915
13916         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
13917         nested within Analyze_Package_Specification to install the private
13918         declarations and use clauses within each of the parent units of a
13919         package instance of a generic child package.
13920         (Analyze_Package_Specification): When entering a private part of a
13921         package associated with a generic instance or formal package, the
13922         private declarations of the parent must be installed (by calling new
13923         procedure Install_Parent_Private_Declarations).
13924         Change name Is_Package to Is_Package_Or_Generic_Package
13925         (Preserve_Full_Attributes): For a synchronized type, the corresponding
13926         record is absent in a generic context, which does not indicate a
13927         compiler error.
13928
13929 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13930
13931         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
13932         not try to rewrite a renamed stream attribute, because the operations
13933         on the type may not have been generated.
13934         Handle properly a renaming_as_body generated for a stream operation
13935         whose default is abstract because the object type itself is abstract.
13936         (Find_Type): If the type is incomplete and appears as the prefix of a
13937         'Class reference, it is tagged, and its list of primitive operations
13938         must be initialized properly.
13939         (Chain_Use_Clauses): When chaining the use clauses that appear in the
13940         private declaration of a parent unit, prior to compiling the private
13941         part of a child unit, find on the scope stack the proper parent entity
13942         on which to link the use clause.
13943         (Note_Redundant_Use): Emit a warning when a redundant use clause is
13944         detected.
13945         (Analyze_Object_Renaming): An attribute reference is not a legal object
13946         if it is not a function call.
13947
13948 2005-11-14  Robert Dewar  <dewar@adacore.com>
13949             Ed Schonberg  <schonberg@adacore.com>
13950
13951         * sem_eval.adb: Implement d.f flag
13952         (Subtype_Statically_Match): A generic actual type has unknown
13953         discriminants when the corresponding actual has a similar partial view.
13954         If the routine is called to validate the signature of an inherited
13955         operation in a child instance, the generic actual matches the full view,
13956
13957 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
13958             Ed Schonberg  <schonberg@adacore.com>
13959             Robert Dewar  <dewar@adacore.com>
13960             Thomas Quinot  <quinot@adacore.com>
13961
13962         * sem_res.adb (Resolve_Call): Provide a better error message whenever
13963         a procedure call is used as a select statement trigger and is not an
13964         entry renaming or a primitive of a limited interface.
13965         (Valid_Conversion): If the operand has a single interpretation do not
13966         remove address operations.
13967         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
13968         statement to inhibit warning.
13969         (Resolve_Unary_Op): Do not produce a warning when
13970         processing an expression of the form -(A mod B)
13971         Use Universal_Real instead of Long_Long_Float when we need a high
13972         precision float type for the generated code (prevents gratuitous
13973         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
13974         (Resolve_Concatenation_Arg): Improve error message when argument is an
13975         ambiguous call to a function that returns an array.
13976         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
13977         there is an implicit operator in the given scope if we are within an
13978         instance: legality check has been performed on the generic.
13979         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
13980         after resolving operand, to avoid false warnings on overloaded calls.
13981
13982 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13983             Javier Miranda  <miranda@adacore.com>
13984
13985         PR ada/15604
13986         * sem_type.adb (Covers): In an inlined body, a composite type matches
13987         a private type whose full view is a composite type.
13988         (Interface_Present_In_Ancestor): Protect the frontend against
13989         previously detected errors to ensure that its compilation
13990         with assertions enabled gives the same output that its
13991         compilation without assertions.
13992         (Interface_Present_In_Ancestor): Add support for private types.
13993         Change name In_Actual to In_Generic_Actual (clean up)
13994         (Disambiguate): New predicate In_Actual, to recognize expressions that
13995         appear in the renaming declaration generated for generic actuals, and
13996         which must be resolved in the outer context.
13997
13998 2005-11-14  Robert Dewar  <dewar@adacore.com>
13999             Thomas Quinot  <quinot@adacore.com>
14000             Hristian Kirtchev  <kirtchev@adacore.com>
14001             Ed Schonberg  <schonberg@adacore.com>
14002
14003         * sem_util.ads, sem_util.adb: Change name Is_Package to
14004         Is_Package_Or_Generic_Package.
14005         (Check_Obsolescent): New procedure.
14006         (Set_Is_Public): Remove obsolete junk test.
14007         (Set_Public_Status): Do not set Is_Public on an object whose declaration
14008         occurs within a handled_sequence_of_statemets.
14009         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
14010         for a parameterless procedure.
14011         (Enter_Name): Recognize renaming declarations created for private
14012         component of a protected type within protected operations, so that
14013         the source name of the component can be used in the debugger.
14014
14015 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
14016             Robert Dewar  <dewar@adacore.com>
14017
14018         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
14019         of a generic subprogram are not visible outside the body.
14020         (Set_Warning_Switch): New procedure (code to set warning mode moved
14021         here from Switch.C so that it can be shared by pragma processing.
14022         (Check_References): Special case warning for non-modified non-imported
14023         volatile objects.
14024         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
14025         form with a string literal argument
14026
14027 2005-11-14  Javier Miranda  <miranda@adacore.com>
14028
14029         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
14030         anonymous access.
14031         (Write): Addition of "not null" to the anonymous access.
14032         (Read): Addition of "not null" to the anonymous access.
14033         (Write): Addition of "not null" to the anonymous access.
14034
14035         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
14036         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
14037         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
14038         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
14039         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
14040         "not null" to the anonymous access.
14041
14042 2005-11-14  Robert Dewar  <dewar@adacore.com>
14043
14044         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
14045         offset values
14046
14047 2005-11-14  Vincent Celier  <celier@adacore.com>
14048
14049         * switch.adb (Bad_Switch): New procedure
14050         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
14051         message when in error.
14052
14053         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
14054         Too_Many_Output_Files): Remove declarations, no longer used.
14055         (Scan_Nat): New parameter Switch
14056         (Scan_Pos): Ditto
14057         (Bad_Switch): New procedure
14058
14059         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
14060         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
14061         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
14062         to Osint.Fail. Do not handle any exception.
14063
14064 2005-11-14  Vincent Celier  <celier@adacore.com>
14065
14066         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
14067         designates a non existent directory.
14068
14069 2005-11-14  Robert Dewar  <dewar@adacore.com>
14070
14071         * xgnatugn.adb: Replace invalid membership test by 'Valid
14072
14073 2005-11-14  Vincent Celier  <celier@adacore.com>
14074
14075         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
14076         there is no object directory.
14077
14078 2005-11-14  Robert Dewar  <dewar@adacore.com>
14079
14080         * usage.adb: Minor adjustment to output format, use nn instead of nnn
14081         (so that -gnateInnn does not run into next column)
14082
14083 2005-11-14  Ed Falis  <falis@adacore.com>
14084
14085         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
14086         "constrained"
14087
14088 2005-11-14  Cyrille Comar  <comar@adacore.com>
14089
14090         * s-chepoo.ads: Add comments on Dereference.
14091         Remove unnecessary inherited abstract primitives.
14092         Cosmetic cleanup.
14093
14094 2005-11-14  Robert Dewar  <dewar@adacore.com>
14095
14096         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
14097         node parameter, not needed, since it is available as Declaration_Node.
14098
14099 2005-11-14  Geert Bosch  <bosch@adacore.com>
14100
14101         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
14102         grammatically correct.
14103
14104 2005-11-14  Vincent Celier  <celier@adacore.com>
14105
14106         * s-fileio.ads: Correct spelling error in comment
14107
14108 2005-11-14  Cyrille Comar  <comar@adacore.com>
14109             Robert Dewar  <dewar@adacore.com>
14110             Vincent Celier  <celier@adacore.com>
14111             Ben Brosgol  <brosgol@adacore.com>
14112             Jose Ruiz  <ruiz@adacore.com>
14113             Pascal Obry  <obry@adacore.com>
14114
14115         * gnat_ugn.texi: 
14116         Document that -fstack-check is needed for strict compliance with the
14117         Ada 95 Reference Manual.
14118         Correct reference to VAX systems to meet HP guidelines
14119         Add documentation for new gnatmake switches -vl, -vm and -vh
14120         Replace DEC Ada by HP Ada
14121         Replace DIGITAL by HP
14122         Remove empty section on tools in compatibility section
14123         Clarify the Windows convention semantics.
14124         Document the Win32 calling convention.
14125         The Stdcall, Win32 and DLL convention are synonyms.
14126         Add a note in -gnatR description about zero size record components
14127         Note on new >= and <= warnings for -gnatwc
14128         Document that equal sign after -gnatm is optional.
14129         Note that strip is working fine on DLL built with a Library
14130         Project. The restriction apply only to DLL built with gnatdll.
14131         Update section about the way to debug a DLL.
14132         Update information about the DLL convention.
14133         Document -C switch for gnatprep
14134         Document new attribute Library_ALI_Dir
14135         Update elaboration doc to include implicit Elaborate pragmas now
14136         generated for subprogram instantiations.
14137         Document limitation on executable names that include spaces for --GCC,
14138         --GNATBIND, and --GNATLINK switches.
14139         Document that -w causes -gnatws to be added at start of gcc switches
14140
14141         * gnat_rm.texi: Document that -mieee is needed for generating infinite
14142         and NaN values in case of overflow on machines that are not fully
14143         compliant with the IEEE floating-point standard.
14144         Create a section describing the set of compiler options needed for
14145         strict compliance with the Ada 95 Reference Manual.
14146         Add documentation for pragma Obsolescent applied to a package
14147         Clarify potential issues of mixed language programs related to the
14148         I/O buffering enabling in the elaboration of the GNAT runtime.
14149         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
14150         This documentation only patch adds extra documentsion for pragma
14151         Restrictions (No_Elaboration_Code), explaining why it is not possible
14152         to document this restriction in terms of allowed source constructs.
14153         Document string literal form of pragma Warnings
14154         Document new attribute Library_ALI_Dir
14155         Add documentation on stable attributes in project files that was missing
14156
14157         * gnat-style.texi: Indicate that paragraphs within a single comment
14158         should be separated by empty comment lines
14159
14160         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
14161         /05 respectively)
14162
14163         * bindusg.adb: Minor cleanup, put -m before -M for consistency
14164
14165 2005-11-14  Robert Dewar  <dewar@adacore.com>
14166
14167         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
14168         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
14169         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
14170         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
14171         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
14172         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
14173         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
14174         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
14175         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
14176         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
14177         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
14178         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
14179         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
14180         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
14181         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
14182         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
14183         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
14184         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
14185         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
14186         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
14187         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
14188         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
14189         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
14190         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
14191         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
14192         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
14193         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
14194         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
14195         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
14196         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
14197         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
14198         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
14199         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
14200         system-interix.ads, system-solaris-sparc.ads,
14201         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
14202         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
14203         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
14204         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
14205         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
14206         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
14207         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
14208         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
14209         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
14210         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
14211         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
14212         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
14213         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
14214         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
14215         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
14216         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
14217         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
14218         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
14219         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
14220         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
14221         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
14222         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
14223         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
14224         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
14225         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
14226         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
14227         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
14228         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
14229         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
14230         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
14231         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
14232         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
14233         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
14234         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
14235         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
14236         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
14237         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
14238         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
14239         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
14240         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
14241         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
14242         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
14243         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
14244         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
14245         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
14246         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
14247         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
14248         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
14249         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
14250         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
14251         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
14252         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
14253         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
14254         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
14255         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
14256         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
14257         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
14258         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
14259         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
14260         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
14261         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
14262         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
14263         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
14264         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
14265         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
14266         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
14267         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
14268         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
14269         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
14270         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
14271         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
14272         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
14273         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
14274         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
14275         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
14276         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
14277         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
14278         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
14279         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
14280         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
14281         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
14282         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
14283         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
14284         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
14285         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
14286         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
14287         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
14288         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
14289         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
14290         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
14291         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
14292         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
14293         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
14294         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
14295         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
14296         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
14297         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
14298         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
14299         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
14300         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
14301         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
14302         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
14303         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
14304         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
14305         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
14306         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
14307         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
14308         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
14309         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
14310         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
14311         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
14312         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
14313         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
14314         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
14315         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
14316         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
14317         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
14318         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
14319         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
14320         a-numaux-darwin.ads, a-numaux-darwin.adb,
14321         a-swuwha.ads, a-stunha.ads: Minor reformatting
14322
14323 2005-11-14  Robert Dewar  <dewar@adacore.com>
14324
14325         PR ada/18434
14326         * osint-m.adb: Add pragma Elaborate_All for Osint
14327
14328 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
14329
14330         PR ada/23995
14331         * trans.c (call_to_gnu): Restore statement lost in translation.
14332
14333 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
14334
14335         * init.c: Use the Linux-specific section for the IA-64/Linux target.
14336         (__gnat_adjust_context_for_raise): Add conditional code so that the
14337         IA-64 is also supported.
14338
14339 2005-11-03  James E Wilson  <wilson@specifix.com>
14340
14341         PR ada/23427
14342         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
14343         TREE_OVERFLOW check.
14344
14345 2005-09-21  Olivier Hainque  <hainque@adacore.com>
14346
14347         PR ada/22418
14348         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
14349         as we create them to store a size in bits.
14350
14351 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
14352
14353         PR ada/21937
14354         PR ada/22328
14355         PR ada/22381
14356         PR ada/22383
14357         PR ada/22419
14358         PR ada/22420
14359         * utils2.c (build_return_expr): New helper function.
14360         * gigi.h (build_return_expr): Declare it.
14361         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
14362         of manually building the RETURN_EXPR tree.
14363         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
14364         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
14365         build_binary_op for the "target pointer" case.  Use build_return_expr
14366         instead of manually building the RETURN_EXPR tree.
14367
14368 2005-09-16  Laurent GUERBY  <laurent@guerby.net>
14369
14370         PR ada/23788
14371         * s-tpinop.ads: Make this unit Preelaborate.
14372
14373 2005-09-16  Andreas Jaeger  <aj@suse.de>
14374
14375         * socket.c: Add string.h for memcpy.
14376
14377 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
14378
14379         * dec-io.ads, dec-io.adb: Removed, no longer used.
14380
14381 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
14382
14383         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
14384
14385         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
14386         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
14387         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
14388         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
14389         dependent units are Preelaborate.
14390         (Initialize): Call Interrupt_Managemeent.Initialize and
14391         OS_Primitives.Initialize to ensure proper initialization of this unit.
14392         Remove use of System.Soft_Links
14393         Make this unit Preelaborate.
14394
14395         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
14396         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
14397         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
14398         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
14399         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
14400         s-tratas.ads, s-tasinf.ads: Minor reformatting.
14401         Add pragma Preelaborate, since these packages are suitable for this
14402         categorization.
14403         Update comments.
14404
14405         * s-traent-vms.ads, s-intman-dummy.adb,
14406         s-taprop-dummy.adb: Make this unit Preelaborate.
14407
14408         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
14409         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
14410         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
14411         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
14412         s-intman-solaris.adb, s-intman-irix-athread.adb,
14413         s-intman-irix.adb: Mark this unit Preelaborate.
14414         (Initialize): New procedure.
14415         Update comments.
14416
14417         * s-taspri-linux.ads: Removed.
14418
14419         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
14420         as done by other implementations (e.g. posix).
14421
14422         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
14423         responsible for deferring abort.
14424         Mark this unit Preelaborate.
14425
14426         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
14427         proper initialization of the tasking run-time.
14428
14429         * s-tasdeb.ads: Mark this unit Preelaborate.
14430         (Known_Tasks): Add explicit default value to avoid elaboration code.
14431
14432         * s-inmaop-vms.adb (Elaboration code): Add call to
14433         Interrupt_Management.Initialize since the elaboration code depends on
14434         proper initialization of this package.
14435
14436         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
14437         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
14438         s-osprim-posix.adb: Make this unit Preelaborate.
14439
14440         * a-calend.adb: Add call to OS_Primitives.Initialize
14441
14442         * a-elchha.adb: Update use of Except.Id.Full_Name.
14443         Minor reformatting.
14444         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
14445
14446         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
14447         Move with clauses outside Warnings Off now that dependent units are
14448         Preelaborate.
14449         Use raise xxx with "..."; Ada 2005 form.
14450
14451         * a-taside.ads, a-taside.adb:
14452         Remove some dependencies, to make it easier to make this unit truly
14453         Preelaborate.
14454         Rewrite some code to be conformant with Preelaborate rules.
14455
14456         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
14457         marked Preelaborate in the future.
14458
14459         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
14460         these units Preelaborate.
14461
14462         * s-exctab.adb: Update use of Except.Id.Full_Name.
14463
14464         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
14465         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
14466         Set_Exc_Stack_Addr): Removed, no longer used.
14467         Remove reference to *Machine_State_Addr*, no longer needed.
14468
14469         * s-stalib.ads: Mark this unit as Preelaborate[_05].
14470         (Exception_Data): Full_Name is now a System.Address so that this unit
14471         can be made Preelaborate.
14472         Clean up/simplify code thanks to Full_Name being a System.Address.
14473         Remove obsolete pragma Suppress (All_Checks), no longer needed.
14474
14475         * s-taskin.ads, s-taskin.adb:
14476         Move with clauses outside Warnings Off now that dependent units are
14477         Preelaborate.
14478         Make this unit Preelaborate.
14479         (Initialize): New proceduure, replace elaboration code and makes the
14480         set up of the tasking run-time cleaner.
14481         (Detect_Blocking): Now a function instead of a deferred boolean, to
14482         obey Preelaborate rules.
14483
14484         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
14485         soft links, no longer used.
14486
14487         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
14488         packages are suitable for this categorization.
14489
14490         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
14491         since we compile run-time sources in Ada 2005 mode.
14492         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
14493         avoid having s-taprop*.adb depend on s-soflin and to avoid code
14494         duplication.
14495         Remove reference to *Machine_State_Addr*, no longer needed.
14496
14497 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
14498
14499         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
14500         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
14501         Remove reference to System.Exceptions.
14502
14503         * s-mastop-x86.adb: Removed, no longer used.
14504
14505         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
14506
14507         * a-excach.adb: Minor reformatting.
14508
14509         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
14510         instead fix new warnings that were hidden by this change.
14511         (AAA, ZZZ): Removed, replaced by...
14512         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
14513         are used instead of constants, to help make Ada.Exception truly
14514         preelaborate.
14515         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
14516         Raise_Storage_Error): File is now a System.Address, to simplify code.
14517         (Elab code): Removed, no longer used.
14518         (Null_Occurrence): Remove Warnings Off and make this construct
14519         preelaborate.
14520         Remove code related to front-end zero cost exception handling, since
14521         it is no longer used.
14522         Remove -gnatL/-gnatZ switches.
14523
14524         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
14525         Update use of Except.Msg.
14526
14527         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
14528         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
14529         to front-end zero cost exception handling, since it is no longer used.
14530         Remove -gnatL/-gnatZ switches.
14531
14532         * lib-writ.ads: Minor reformatting
14533         Remove doc of UX
14534
14535         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
14536
14537         * Make-lang.in: Remove references to s-except.ads
14538
14539         * s-except.ads: Removed, no longer used.
14540
14541         * s-mastop.ads, s-mastop.adb:
14542         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
14543         Remove reference to System.Exceptions.
14544
14545         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
14546         switch-b.adb: Remove code related to front-end zero cost exception
14547         handling, since it is no longer used.
14548         Remove -gnatL/-gnatZ switches.
14549
14550 2005-09-01  Robert Dewar  <dewar@adacore.com>
14551             Gary Dismukes  <dismukes@adacore.com>
14552             Javier Miranda  <miranda@adacore.com>
14553
14554         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
14555         type by valid test and generate warning.
14556         (Tagged_Membership): Generate call to the run-time
14557         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
14558         Change formal name Subtype_Mark to Result_Definition in several calls to
14559         Make_Function_Specification.
14560         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
14561         check for proper accessibility of the operand of a class-wide allocator.
14562         The check can be left out if checks are suppressed or if the expression
14563         has a specific tagged type whose level is known to be safe.
14564
14565         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
14566         generates the run-time check associated with null-excluding entities.
14567         (Expand_N_Return_Statement): Add tests to determine if the accessibility
14568         check on the level of the return expression of a class-wide function
14569         can be elided. The check usually isn't needed if the expression has a
14570         specific type (unless it's a conversion or a formal parameter). Also
14571         add a test for whether accessibility checks are suppressed. Augment
14572         the comments to describe the conditions for performing the check.
14573
14574 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
14575             Javier Miranda  <miranda@adacore.com>
14576             Gary Dismukes  <dismukes@adacore.com>
14577             Ed Schonberg  <schonberg@adacore.com>
14578
14579         * a-tags.adb (IW_Membership): Give support to
14580         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
14581         subprogram has been extended to look for the tag in the ancestors tag
14582         table.
14583         Update the structure of the GNAT Dispatch Table to reflect the
14584         additional two tables used in dispatching selects.
14585         Introduce appropriate array types and record components in
14586         Type_Specific_Data to reflect the two tables.
14587         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
14588         the TSD of a tag, indexed by position.
14589         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
14590         operation kind in the TSD of a tag, indexed by position.
14591
14592         * a-tags.ads: Introduce an enumeration type to capture different
14593         primitive operation kinds. Define a constant reflecting the number of
14594         predefined primitive operations.
14595         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
14596         of an entry wrapper.
14597         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
14598         callable entity of a primitive operation.
14599
14600         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
14601         primitive operations used in dispatching selects for limited
14602         interfaces, limited tagged, task and protected types what implement a
14603         limited interface.
14604         (Freeze_Type): Generate the bodies of the primitive operations used in
14605         dispatching selects for limited tagged, task and protected types that
14606         implement a limited interface. Generate statements to populate the two
14607         auxiliary tables used for dispatching in select statements.
14608         (Freeze_Record_Type): Add call to initialize the dispatch table entries
14609         associated with predefined interface primitive operations.
14610         (Build_Dcheck_Function): Change Set_Subtype_Mark to
14611         Set_Result_Definition.
14612         (Build_Variant_Record_Equality): Change Subtype_Mark to
14613         Result_Definition.
14614         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
14615         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
14616         (Build_Assignment): Simplify the code that adds the run-time-check.
14617         (Expand_N_Object_Declaration): Code cleanup.
14618
14619         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
14620         entries when there is a protected type that implements a limited
14621         interface.
14622
14623         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
14624         common routines used in expansion of dispatching selects.
14625         (Add_Private_Declarations): Select the appropriate protection type when
14626         there is a protected type that implements a limited interface.
14627         (Build_Parameter_Block): Generate a wrapped parameter block.
14628         (Build_Protected_Subprogram_Body): Select the appropriate type for
14629         locking entries when there is a protected type that implements a
14630         limited interface.
14631         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
14632         classified as entry wrappers.
14633         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
14634         asynchronous selects.
14635         (Expand_N_Conditional_Entry_Call): Add support for expansion of
14636         dispatching conditional selects.
14637         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
14638         protection when there is a protected type that implements limited
14639         interfaces.
14640         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
14641         timed selects.
14642         (Extract_Dispatching_Call): Extract the entity of the name of a
14643         dispatching call, the object parameter, actual parameters and
14644         corresponding formals.
14645         (Make_Initialize_Protection): Correct logic of protection initialization
14646         when there is a protected type that implements a limited interface.
14647         (Parameter_Block_Pack): Populate a wrapped parameter block with the
14648         values of actual parameters.
14649         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
14650         block and assign them to the original actual parameters.
14651
14652         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
14653         (Build_Protected_Sub_Specification): Change the type and name of the
14654         last formal to account for the increased variety of protection modes.
14655
14656         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
14657         entities. Used to save the value of the Is_Hidden attribute when the
14658         limited-view is installed.
14659         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
14660         the attribute of procedures classified as entry wrappers.
14661         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
14662         entity of a primitive wrapper.
14663         (Write_Entity_Flags): Output the name and value of the
14664         Is_Primitive_Wrapper attribute.
14665         (Write_Field27_Name): Output the name and entity of the field Wrapped_
14666         Entity.
14667         (Underlying_Type): If we have an incomplete entity that comes from
14668         the limited view then we return the Underlying_Type of its non-limited
14669         view if it is already available.
14670         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
14671         including operators.
14672         (Write_Field26_Name): Add entry for Overridden_Operation
14673         (Overridden_Operation): New attribute of functions and procedures.
14674
14675         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
14676         predefined position in the dispatch table for the primitive operations
14677         used in dispatching selects.
14678         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
14679         predefined primitive operations and replace it with
14680         Default_Prim_Op_Count.
14681         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
14682         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
14683         the names of the generated primitive operations used in dispatching
14684         selects.
14685         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
14686         case of abstract interface types. They will be inherit by the objects
14687         implementing the interface.
14688         (Make_DT): There is no need to inherit the dispatch table of the
14689         ancestor interface for the elaboration of abstract interface types.
14690         The dispatch table will be inherited by the object implementing the
14691         interface.
14692         (Copy_Secondary_DTs): Add documentation.
14693         (Validate_Position): Improve this static check in case of
14694         aliased subprograms because aliased subprograms must have
14695         the same position.
14696         (Init_Predefined_Interface_Primitives): New subprogram that initializes
14697         the entries associated with predefined primitives of all the secondary
14698         dispatch tables.
14699         (Build_Anonymous_Access_Type): Removed.
14700         (Expand_Interface_Actuals): With the previous cleanup there is no need
14701         to build an anonymous access type. This allows further cleanup in the
14702         code generated by the expander.
14703         (Expand_Interface_Conversion): If the actual is an access type then
14704         build an internal function to handle the displacement. If the actual
14705         is null this function returns null because no displacement is
14706         required; otherwise performs a type conversion that will be
14707         expanded in the code that returns the value of the displaced actual.
14708         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
14709         conversions that have no effect in the generated code because no
14710         displacement is required. Code cleanup; use local variables to
14711         avoid repeated calls to the subprogram directly_designated_type().
14712
14713         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
14714         Classify the primitive operations used in dispatching selects as
14715         predefined.
14716         (Implements_Limited_Interface): Determine whether some type either
14717         directly implements a limited interface or extends a type that
14718         implements a limited interface.
14719         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
14720         (Expand_Subtype_From_Expr): Do not build actual subtype if the
14721         expression is limited.
14722         (Find_Interface_Tag): Add code to handle class-wide types and
14723         entities from the limited-view.
14724
14725         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
14726         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
14727         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
14728         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
14729         Set_Prim_Op_Kind.
14730
14731         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
14732         of procedure name or prefix that appears as a trigger in a triggering
14733         alternative.
14734
14735         * uintp.ads: Introduce constants Uint_11 and Uint_13.
14736
14737 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
14738
14739         * s-tataat.adb, a-tasatt.adb:
14740         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
14741
14742         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
14743         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
14744         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
14745         longer used.
14746
14747 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
14748             Jose Ruiz  <ruiz@adacore.com>
14749
14750         * s-taprop-vxworks.adb:
14751         Move with clauses outside Warnings Off now that dependent units are
14752         Preelaborate.
14753         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
14754         initialization of this unit.
14755         (Specific): Add new procedures Initialize and Delete so that this
14756         package can be used for VxWorks 5.x and 6.x
14757         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
14758         differences between VxWorks 5.x and 6.x
14759         Minor reformatting.
14760         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
14761         caller.
14762         Use only Preelaborate-compatible constructs.
14763
14764         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
14765         Primitives.Operations.
14766         (Delete, Initialize): New procedures.
14767
14768         * s-osinte-vxworks.adb: Body used to handle differences between
14769         VxWorks 5.x and 6.x
14770         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
14771
14772         * s-osinte-vxworks.ads: Minor reformatting.
14773         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
14774         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
14775         and 6.
14776         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
14777         between Vxworks 5 and 6.
14778         (taskLock, taskUnlock): Removeed, no longer used.
14779
14780         * adaint.c: The wait.h header is not located in the sys directory on
14781         VxWorks when using RTPs.
14782         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
14783         using RTPs.
14784         (__gnat_dup): dup is available on Vxworks when using RTPs.
14785         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
14786
14787         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
14788
14789         * expect.c: The wait.h header is not located in the sys directory on
14790         VxWorks when using RTPs.
14791
14792 2005-09-01  Thomas Quinot  <quinot@adacore.com>
14793
14794         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
14795
14796         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
14797
14798         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
14799         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
14800         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
14801         g-soccon-freebsd.ads: Add new constants:
14802          IP_MULTICAST_IF
14803          SO_RCVTIMEO/SO_SNDTIMEO
14804          IOV_MAX
14805
14806         * gen-soccon.c:
14807         Move all target-specific file inclusions and macro definitions to
14808         gsocket.h, in order to ensure that any C code in socket.c will see a
14809         set of constants that is consistent with the contents of g-soccon.ads.
14810
14811         * gsocket.h: Code imported from gen-soccon.c:
14812         Move all target-specific file inclusions and macro definitions to
14813         gsocket.h, in order to ensure that any C code in socket.c will see a set
14814         of constants that is consistent with the contents of g-soccon.ads.
14815         This change also makes gen-soccon self-contained (removing dependencies
14816         upon GCC internal headers).
14817
14818         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
14819         iovecs at a time.
14820         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
14821
14822         * socket.c: Minor reformatting.
14823
14824 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
14825             Thomas Quinot  <quinot@adacore.com>
14826
14827         * fname-sf.adb, mlib-tgt.ads,
14828         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
14829         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
14830         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
14831         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
14832         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
14833         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
14834         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
14835         makegpr.adb: Remove redundant use_clauses.
14836
14837 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
14838
14839         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
14840         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
14841         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
14842         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
14843         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
14844         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
14845         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
14846         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
14847         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
14848         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
14849         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
14850         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
14851         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
14852         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
14853         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
14854         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
14855         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
14856         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
14857         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
14858         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
14859         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
14860         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
14861         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
14862         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
14863         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
14864         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
14865         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
14866         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
14867         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
14868         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
14869         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
14870         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
14871         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
14872         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
14873         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
14874         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
14875         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
14876         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
14877         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
14878         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
14879         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
14880         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
14881         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
14882         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
14883         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
14884         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
14885         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
14886         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
14887         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
14888         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
14889         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
14890         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
14891         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
14892         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
14893         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
14894         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
14895         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
14896         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
14897         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
14898         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
14899         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
14900         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
14901         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
14902         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
14903         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
14904         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
14905         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
14906         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
14907         and always use the no parameter form for consistency.
14908
14909         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
14910
14911 2005-09-01  Robert Dewar  <dewar@adacore.com>
14912
14913         * binde.adb: Minor reformatting
14914         (Find_Elab_Order): Output warning if -p used with static elab order
14915
14916 2005-09-01  Robert Dewar  <dewar@adacore.com>
14917
14918         * checks.adb (Check_Needed): New procedure, deals with removing checks
14919         based on analysis of short-circuited forms. Also generates warnings for
14920         improper use of non-short-circuited forms.
14921         Code clean ups.
14922
14923 2005-09-01  Robert Dewar  <dewar@adacore.com>
14924
14925         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
14926         with 'Valid tests.
14927
14928 2005-09-01  Robert Dewar  <dewar@adacore.com>
14929
14930         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
14931         spec.
14932         Implement new insertion char < (conditional warning)
14933         * errutil.adb, erroutc.adb: Implement new insertion char <
14934         (conditional warning).
14935         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
14936         (Error_Msg_Warn): New variable for < insertion char.
14937         * prj-nmsc.adb: Implement new errout insertion char < (conditional
14938         warning).
14939         (Check_For_Source): Change value of Source_Id only after the current
14940         source has been dealt with.
14941
14942 2005-09-01  Robert Dewar  <dewar@adacore.com>
14943             Doug Rupp  <rupp@adacore.com>
14944
14945         * exp_attr.adb: Handle vax fpt for 'Valid attribute
14946         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
14947         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
14948         (Valid_D, Valid_F, Valid_G): New functions
14949
14950 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
14951             Hristian Kirtchev  <kirtchev@adacore.com>
14952             Javier Miranda  <miranda@adacore.com>
14953
14954         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
14955         from object notation, the original node is unanalyzed and carries no
14956         semantic information, so that accessiblity checks must be performed on
14957         the type of the actual itself.
14958         (Expand_N_Subprogram_Declaration): Change last actual parameter for
14959         compatibility with Build_Protected_Sub_Specification.
14960         (Check_Overriding_Inherited_Interfaces): Add suport to handle
14961         overloaded primitives.
14962         (Register_Interface_DT_Entry): Use the new name of the formal
14963         the the calls to Expand_Interface_Thunk
14964
14965         * exp_dbug.ads: Augment comments on encoding of protected types to
14966         include the generation of dispatching subprograms when the type
14967         implements at least one interface.
14968
14969         * lib.ads: Extend information in Load_Stack to include whether a given
14970         load comes from a Limited_With_Clause.
14971
14972         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
14973         whether a potential circularity is harmless, because it includes units
14974         loaded through a limited_with clause. Extends previous treatment which
14975         did not handle properly arbitrary combinations of limited and
14976         non-limited clauses.
14977
14978 2005-09-01  Nicolas Setton  <setton@adacore.com>
14979
14980         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
14981         to be encoded as typ___XBLU_lowerbound__upperbound instead of
14982         typ___XB_lowerbound__upperbound.
14983
14984 2005-09-01  Thomas Quinot  <quinot@adacore.com>
14985
14986         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
14987         dummy access formal for RACW/RAS TypeCode TSS.
14988         (Build_TypeCode_Call): Do not generate dummy null access actual for
14989         calls to the TypeCode TSS.
14990
14991 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
14992
14993         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
14994         fully qualified name, to distinguish instances with the same local name.
14995
14996         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
14997         fully qualified.
14998
14999 2005-09-01  Robert Dewar  <dewar@adacore.com>
15000
15001         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
15002         packed arrays.
15003
15004 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
15005
15006         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
15007         (Free): New deallocation procedure for filter elements
15008         (Close): Deallocate any existing filter for the concerned connection
15009
15010 2005-09-01  Laurent Pautet  <pautet@adacore.com>
15011
15012         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
15013         position set is provided, we compute one in order to reduce the maximum
15014         length of the keys.  This computation first selects a character
15015         position between 1 and the minimum length of the keys in order to
15016         avoid reducing one of the keys to an empty string.
15017         (Initialize, Compute): When the ratio V to K is too low, the algorithm
15018         does not converge. The initialization procedure now comes with a
15019         maximum number of iterations such that when exceeded, an exception is
15020         raised in Compute. The user can initialize this ratio to another value
15021         and try again
15022         Reformating and updated headers.
15023
15024 2005-09-01  Javier Miranda  <miranda@adacore.com>
15025
15026         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
15027         that given an entity T creates and returns an Itype that duplicates the
15028         contents of T. The returned Itype has the null-exclusion
15029         attribute set to True, and its Etype attribute references T
15030         to keep the association between the two entities.
15031         Update copyright notice
15032
15033         * sem_aggr.adb (Check_Can_Never_Be_Null,
15034         Aggregate_Constraint_Checks, Resolve_Aggregate,
15035         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
15036
15037         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
15038
15039 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
15040             Robert Dewar  <dewar@adacore.com>
15041             Hristian Kirtchev  <kirtchev@adacore.com>
15042
15043         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
15044         Result_Definition.
15045
15046         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
15047         function specs.
15048         Call Set_Result_Definition instead of Set_Subtype_Mark.
15049         (P_Subprogram_Specification): Add parsing of anonymous access result
15050         plus null exclusions. Call Set_Result_Definition instead of
15051         Set_Subtype_Mark.
15052
15053         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
15054         (P_Access_Type_Definition): Add parsing for an anonymous access result
15055         subtype, plus parsing for null exclusions. Call Set_Result_Definition
15056         instead of Set_Subtype_Mark.
15057
15058         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
15059         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
15060         (Result_Definition): New function for N_Function_Specifications.
15061         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
15062         N_Function_Specification.
15063         (Set_Null_Exclusion_Present): Allow this flag for
15064         N_Function_Specification.
15065         (Set_Result_Definition): New procedure for N_Function_Specifications.
15066         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
15067         and N_Function_Specification.
15068
15069         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
15070         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
15071         Add support for LIMITED NEW for Ada 2005 AI-419
15072         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
15073         syntax for anonymous access results.
15074         Replace Subtype_Mark field by Result_Definition in
15075         N_Function_Specification and N_Access_Definition specs.
15076         Add Null_Exclusion_Present to spec of N_Function_Specification.
15077         (Result_Definition): New function for N_Function_Specification and
15078         N_Access_Function_Definition.
15079         (Set_Result_Definition): New procedure for N_Function_Specification and
15080         N_Access_Function_Definition.
15081
15082         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
15083         Result_Definition for cases of N_Access_Function_Definition and
15084         N_Function_Specification.
15085         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
15086
15087 2005-09-01  Vincent Celier  <celier@adacore.com>
15088
15089         * lib-writ.adb: Update Copyright notice
15090         (Write_With_Lines): On platforms where file names are case-insensitive,
15091         record the file names in lower case.
15092         (Write_ALI): For D lines, on platforms where file names are
15093         case-insensitive, record the file names in lower case.
15094
15095 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
15096             Emmanuel Briot  <briot@adacore.com>
15097
15098         * lib-xref.adb (Output_Overridden_Op): Display information on
15099         overridden operation.
15100
15101         * lib-xref.ads: Add documentation on overridden operations.
15102
15103         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
15104         information.
15105
15106         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
15107         overriding entity information.
15108
15109 2005-09-01  Vincent Celier  <celier@adacore.com>
15110
15111         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
15112         including those that are inherited.
15113
15114 2005-09-01  Robert Dewar  <dewar@adacore.com>
15115
15116         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
15117
15118         * par-prag.adb: Implement new pragma Debug_Policy
15119
15120         * sem_prag.adb Implement new pragma Debug_Policy
15121         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
15122         Component_Size attribute specification. Give warning for ignored pragma
15123         Pack.
15124
15125         * snames.h, snames.ads, snames.adb: Introduce entries in
15126         Preset_Names for Name_Disp_Asynchronous_Select,
15127         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
15128         Name_Disp_Timed_Select.
15129         New pragma Debug_Policy
15130
15131         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
15132         explicitly.
15133         Switch -gnata also sets Debug_Pragmas_Enabled
15134
15135         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
15136         handle an explicit -gnata when compiling predefined files.
15137
15138 2005-09-01  Vincent Celier  <celier@adacore.com>
15139
15140         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
15141         directories of projects that have no Ada sources.
15142
15143 2005-09-01  Robert Dewar  <dewar@adacore.com>
15144
15145         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
15146         (makes a difference for wide characters)
15147
15148         * widechar.adb, widechar.ads:
15149         Add Wide_Char_Byte_Count feature to count chars vs bytes
15150
15151 2005-09-01  Thomas Quinot  <quinot@adacore.com>
15152             Ed Schonberg  <schonberg@adacore.com>
15153             Robert Dewar  <dewar@adacore.com>
15154
15155         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
15156         'Address attribute reference with an overloaded prefix, use the
15157         location of the prefix (not the location of the attribute reference) as
15158         the error location.
15159         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
15160         a function renaming thereof, is a valid prefix for 'Size (where it is
15161         intepreted as a function call).
15162         (Statically_Denotes_Entity): New predicate to determine whether the
15163         prefix of an array attribute can be considered static.
15164
15165         PR ada/9087
15166         (Eval_Attr): Fix failure to evaluate Component_Size for
15167         unconstrained arrays (resulted in wrong value in packed case, since
15168         back end cannot handle this case)
15169
15170 2005-09-01  Robert Dewar  <dewar@adacore.com>
15171
15172         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
15173         error msgs for most common cases.
15174         Use new errout insertion char < (conditional warning)
15175
15176 2005-09-01  Javier Miranda  <miranda@adacore.com>
15177             Ed Schonberg  <schonberg@adacore.com>
15178
15179         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
15180         become local to the whole package.
15181         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
15182         the package was already analyzed the new algorithm "replaces" the
15183         real entities by the shadow ones. This is required to ensure that
15184         the order of these entities in the homonym chains does not change;
15185         otherwise we can have undefined references at linking time because
15186         in case of conflicts the external name of the entities will have
15187         a suffix that depends on the order of the entities in the chain.
15188         (Remove_Limited_With_Clause): Complementary code that completes the
15189         new algorithm and replaces the shadow entities by the real ones.
15190         (Install_Limited_Withed_Unit): When unchaining entities before the
15191         installation of the shadow entities, only regular entities of the
15192         public part must be taken into account. This is required to
15193         keep this routine in synch with the work done by Remove_Limited_
15194         With_Clause
15195         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
15196         even if unit is analyzed, because the analysis of the unit is
15197         idempotent in any case, and the limited view of the unit may have to
15198         be installed for proper visibility.
15199         (Expand_Limited_With_Clause): Even if the unit in the implicit
15200         with_clause has been analyzed already, a limited view of the package
15201         must be built for the current context, if it does not exist yet.
15202
15203 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
15204             Javier Miranda  <miranda@adacore.com>
15205             Gary Dismukes  <dismukes@adacore.com>
15206
15207         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
15208         defining entity for the instance body, make a new defining identifier
15209         rather than copying the entity of the spec, to prevent accidental
15210         sharing of the entity list.
15211         (Check_Private_View): When exchanging views of private types, build the
15212         list of exchanged views as a stack, to ensure that on exit the exchanges
15213         are undone in the proper order.
15214         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
15215         Restore the compilation environment in case of instantiation_error.
15216         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
15217         for an anonymous access result.
15218         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
15219         (Formal_Entity): Handle properly the case of a formal package that
15220         denotes a generic package renaming.
15221
15222 2005-09-01  Thomas Quinot  <quinot@adacore.com>
15223
15224         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
15225         clause if the array aggregate is surrounded by parentheses.
15226
15227 2005-09-01  Cyrille Comar  <comar@adacore.com>
15228             Gary Dismukes  <dismukes@adacore.com>
15229             Ed Schonberg  <schonberg@adacore.com>
15230             Javier Miranda  <miranda@adacore.com>
15231
15232         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
15233         underlying type
15234         to check if a type is Constrained in cases related to code generation
15235         (rather than semantic checking) since otherwise we do not generate
15236         similar code for mutable private types depending if their
15237         discriminants are visible or not.
15238         (Check_Abstract_Overriding): Do not complain about failure to override
15239         the primitive operations used in dispatching selects since they will
15240         always be overriden at the freeze point of the type.
15241         (Access_Definition): Separate out handling for resetting the scope
15242         of an anonymous access function result type. Retrieve the scope
15243         of the associated function rather than using Current_Scope, which
15244         does not have a consistent value (depends on whether we're in the
15245         middle of analyzing formal parameters). Add ??? comment about
15246         finding a cleaner way to handle the special cases of scope setting.
15247         (Process_Incomplete_Dependents): A protected operation is never a
15248         dispatching operation (only its wrapper may be).
15249         (Build_Derived_Record_Type): In case of tagged private types that
15250         implement interfaces add derivation of predefined primitive
15251         operations.
15252         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
15253         by two parameters that are used in case of derivation from abstract
15254         interface types: No_Predefined_Prims is used to avoid the derivation
15255         of predefined primitives from the interface, and Predefined
15256         Prims_Only is used to complete the derivation predefined primitives
15257         in case of private tagged types implementing interfaces.
15258         Fix typo in comments
15259         (Find_Interface_In_Descendant): Protect the frontend against
15260         wrong code with large circularity chains.
15261         (Is_Private_Overriding): Add support for entities overriding interface
15262         subprograms. The test failed because Entities associated with overriden
15263         interface subprograms are always marked as hidden (and used to build
15264         the secondary dispatch table); in this case the overriden entity is
15265         available through the field abstract_interface_alias (cf. override_
15266         dispatching_operation)
15267         (Access_Definition): Set the scope of the type to Current_Scope for the
15268         case of a function with an anonymous access result type.
15269         (Access_Subprogram_Declaration): Handle creation of the type entity for
15270         an access-to-function type with an anonymous access result.
15271         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
15272         in handling for N_Access_Function_Definition.
15273         (Analyze_Subtype_Declaration): Modify the text of error message.
15274         (Derived_Type_Declaration): Modify the text of error message.
15275         (Process_Subtype): Modify the text of error message plus cleanup
15276         of one redundant error message.
15277         (Analyze_Component_Declaration): Code cleanup.
15278         (Analyze_Object_Declaration): Code cleanup.
15279         (Analyze_Subtype_Declaration): Propagate the null-exclusion
15280         attribute in case of access types. Code cleanup.
15281         (Array_Type_Declaration): Code cleanup.
15282         (Process_Discriminants): Create the new null-excluding itype
15283         if required. Code cleanup.
15284         (Process_Subtype): Create the new null-excluding itype if
15285         required. Code cleanup.
15286         (Build_Derived_Record_Type): Code cleanup to avoid calling
15287         twice the subprogram derive_subprograms in case of private
15288         types that implement interfaces. In this particular case the
15289         subprogram Complete_Subprograms_Derivation already does the
15290         job associated with the second call.
15291
15292         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
15293         conversion to the full view when generating an operation for a
15294         discriminant whose type may currently be private.
15295
15296 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
15297             Javier Miranda  <miranda@adacore.com>
15298
15299         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
15300         V (Obj.F), the rewriting does not involve the indexed component, but
15301         only the selected component itself.
15302         Do not apply the transformation if the analyzed node is an actual of a
15303         call to another subprogram.
15304         (Complete_Object_Operation): Retain the entity of the
15305         dispatching operation in the selector of the rewritten node. The
15306         entity will be used in the expansion of dispatching selects.
15307         (Analyze_One_Call): Improve location of the error message associated
15308         with interface.
15309         (Analyze_Selected_Component): No need to resolve prefix when it is a
15310         function call, resolution is done when parent node is resolved, as
15311         usual.
15312         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
15313         when attempting to resolve a call transformed from its object notation.
15314         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
15315         of the argument list for each interpretation of the operation.
15316         (Try_Object_Operation): The designated type of an access parameter may
15317         be an incomplete type obtained through a limited_with clause, in which
15318         case the primitive operations of the type are retrieved from its full
15319         view.
15320         (Analyze_Call): If this is an indirect call, and the return type of the
15321         access_to_subprogram is incomplete, use its full view if available.
15322
15323 2005-09-01  Javier Miranda  <miranda@adacore.com>
15324             Gary Dismukes  <dismukes@adacore.com>
15325
15326         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
15327         access types the null-exclusion and access-to-constant attributes must
15328         also match.
15329         (Analyze_Return_Statement): When the result type is an anonymous access
15330         type, apply a conversion of the return expression to the access type
15331         to ensure that appropriate accessibility checks are performed.
15332         (Analyze_Return_Type): For the case of an anonymous access result type,
15333         generate the Itype and set Is_Local_Anonymous_Access on the type.
15334         Add ??? placeholder for check to disallow returning a limited object
15335         in Ada 2005 unless it's an aggregate or a result of a function call.
15336         Change calls from Subtype_Mark to Result_Definition.
15337         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
15338         Result_Definition in call to Make_Function_Specification.
15339         (Build_Body_To_Inline): Change Set_Subtype_Mark to
15340         Set_Result_Definition.
15341         (Make_Inequality_Operator): Change formal Subtype_Mark to
15342         Result_Definition in call to Make_Function_Specification.
15343         (Process_Formals): Create the new null-excluding itype if required.
15344         (New_Overloaded_Entity): For an entity overriding an interface primitive
15345         check if the entity also covers other abstract subprograms in the same
15346         scope. This is required to handle the general case, that is, overriding
15347         other interface primitives and overriding abstract subprograms inherited
15348         from some abstract ancestor type.
15349         (New_Overloaded_Entity): For an overriding entity that comes from
15350         source, note the operation that it overrides.
15351         (Check_Conformance, Type_Conformant): Addition of one new formal
15352         to skip controlling formals in the analysis. This is used to
15353         handle overloading of abstract interfaces.
15354         (Base_Types_Match): Add missing case for types imported from
15355         limited-with clauses
15356         (New_Overloaded_Entity): Add barrier to protect the use of
15357         the "alias" attribute.
15358
15359 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
15360
15361         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
15362         verify that the procedure and the entry are mode conformant.
15363         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
15364         as a different operator, which is often a cut-and-paste error.
15365
15366 2005-09-01  Javier Miranda  <miranda@adacore.com>
15367             Ed Schonberg  <schonberg@adacore.com>
15368
15369         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
15370         used in controlling parameters exclude null because it is necessary to
15371         read the tag to dispatch, and null has no tag.
15372         (Override_Dispatching_Operation): If the previous operation is inherited
15373         from an interface, it becomes hidden  and does not participate in later
15374         name resolution.
15375
15376 2005-09-01  Javier Miranda  <miranda@adacore.com>
15377             Ed Schonberg  <schonberg@adacore.com>
15378             Gary Dismukes  <dismukes@adacore.com>
15379
15380         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
15381         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
15382         the expander will generate the corresponding run-time check to evaluate
15383         the expression.
15384         (Resolve_Call): Check for legal type of procedure name or prefix that
15385         appears as a trigger in a triggering alternative.
15386         (Valid_Conversion): If expression is ambiguous and the context involves
15387         an extension of System, remove System.Address interpretations.
15388         (Resolve_Qualified_Expression): Reject the case of a specific-type
15389         qualification applied to a class-wide argument. Enhance comment
15390         to explain checking of Original_Node.
15391         (Resolve_Type_Conversion): The location of the error message was not
15392         general enough to handle the general case and hence it has been removed.
15393         In addition, this patch improves the text of the message.
15394         (Resolve_Type_Conversion): Add missing support for access to interface
15395         types.
15396         (Resolve_Type_Conversion): If the target is a class-wide interface type,
15397         do not expand if the expression is the actual in a call, because proper
15398         expansion will take place when the call itself is expanded.
15399         (Resolve_Allocator): If the context is an unchecked conversion, the
15400         allocator inherits its storage pool, if any, from the target type of
15401         the conversion.
15402
15403 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
15404             Javier Miranda  <miranda@adacore.com>
15405
15406         * sem_type.adb (Add_One_Interp): If a candidate operation is an
15407         inherited interface operation that has an implementation, use the
15408         implementation to avoid spurious ambiguities.
15409         (Interface_Present_In_Ancestor): In case of concurrent types we can't
15410         use the Corresponding_Record_Typ attribute to look for the interface
15411         because it is set by the expander (and hence it is not always
15412         available). For this reason we traverse the list of interfaces
15413         (available in the parent of the concurrent type).
15414         (Interface_Present_In_Ancestor): Handle entities from the limited view
15415
15416 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
15417
15418         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
15419         from the list of required components.
15420         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
15421         primitive procedure of a limited interface with a controlling first
15422         parameter.
15423         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
15424         of an entry.
15425         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
15426         capture if it is generated in the second operand of a short-circuit
15427         operation.
15428         Do not capture values for variables with address clauses.
15429         (Is_Object_Reference): Treat a function call as an object reference only
15430         if its type is not Standard_Void_Type.
15431
15432 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
15433
15434         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
15435         to a variable that is statically known to be constant.
15436
15437 2005-09-01  Geert Bosch  <bosch@adacore.com>
15438             Robert Dewar  <dewar@adacore.com>
15439
15440         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
15441         (VAXGF_Safe_First): Idem.
15442
15443 2005-09-01  Robert Dewar  <dewar@adacore.com>
15444             Arnaud Charlet  <charlet@adacore.com>
15445
15446         * g-dirope.ads: Minor reformatting
15447         Document that bounds of result of Base_Name match the input index
15448         positions.
15449         Add documentation on environment variable syntax for Expand_Path
15450
15451         * gnat_ugn.texi: Update documentation to include mention of -m switches
15452         Document new treatment of wide characters in max line length
15453         style check.
15454         Remove -gnatL/-gnatZ switches, no longer used.
15455         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
15456         of -gnata switch.
15457
15458         * gnat_rm.texi: Add doc for two argument form of pragma
15459         Float_Representation.
15460         Add documentation for pragma No_Strict_Aliasing
15461         Add note that explicit component clause overrides pragma Pack.
15462         Add documentation of pragma Debug_Policy
15463
15464 2005-09-01  Matthew Heaney  <heaney@adacore.com>
15465
15466         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
15467         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
15468         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
15469         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
15470         draft (Draft 13, August 2005) of Ada Amendment 1.
15471
15472 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
15473
15474         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
15475         Note that the platform-specific version of g-soccon.ads for VMS is now
15476         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
15477         really is a package spec).
15478         Replace s-taspri-linux.ads by s-taspri-posix.ads
15479         Remove references to s-mastop-x86.adb
15480
15481         * system-vxworks-xscale.ads: Removed, no longer used.
15482         * s-vxwork-xscale.ads: Removed, no longer used.
15483
15484 2005-09-01  Robert Dewar  <dewar@adacore.com>
15485
15486         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
15487         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
15488         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
15489         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
15490         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
15491         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
15492         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
15493         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
15494         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
15495         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
15496         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
15497         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
15498         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
15499         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
15500         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
15501         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
15502         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
15503         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
15504         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
15505         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
15506         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
15507
15508 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
15509
15510         PR ada/23187
15511         * adaint.c
15512         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
15513
15514 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
15515             Doug Rupp  <rupp@adacore.com>
15516
15517         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
15518         when needed.
15519         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
15520         this code in the GNAT run-time.
15521
15522         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
15523
15524         PR ada/21053
15525         * init.c (__gnat_error_handler [many]): Mark "msg" as const
15526         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
15527
15528         (__gnat_inside_elab_final_code): Moved here from
15529         Standard_Library and only defined for the compiler.
15530         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
15531         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
15532         using RTPs because directly vectored Interrupt routines are not
15533         supported on this configuration.
15534         (getpid): Do not redefine this function on VxWorks when using RTPs
15535         because this primitive is well supported by the RTP libraries.
15536         (copy_msg): Correct the code that checks for buffer overflow.
15537         Discovered during code reading.
15538
15539 2005-08-29  Olivier Hainque  <hainque@adacore.com>
15540
15541         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
15542         a library level mutable variable with an initializer, tell
15543         build_allocator to ignore the initializer's size. It may not be large
15544         enough for all the values that might be assigned to the variable later
15545         on.
15546
15547 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
15548             Eric Botcazou  <ebotcazou@adacore.com>
15549
15550         * trans.c: Protect < in error msg with quote
15551         Replace GCC_ZCX by Back_End_Exceptions.
15552         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
15553         has been sufficiently aligned in the record.
15554
15555 2005-08-15  James E. Wilson  <wilson@specifix.com>
15556
15557         * system-linux-alpha.ads: Change ia64 to alpha.
15558
15559 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
15560
15561         * decl.c, utils.c: Fix comment typos.
15562
15563 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
15564
15565         * decl.c, init.c, initialize.c: Fix comment typos.
15566
15567 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
15568
15569         Make CONSTRUCTOR use VEC to store initializers.
15570         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
15571         CONSTRUCTOR_ELTS.
15572         * trans.c (extract_values): Likewise.
15573         * utils.c (convert, remove_conversions): Likewise.
15574         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
15575         gnat_build_constructor): Likewise.
15576
15577 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
15578
15579         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
15580         DECL_SECTION_NAME.
15581         (compare_field_bitpos): Likewise.
15582
15583 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
15584
15585         * utils.c (create_var_decl): Only set DECL_COMMON on
15586         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
15587         VAR_OR_FUNCTION_DECL_P.
15588
15589 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
15590
15591         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
15592         removed.
15593
15594 2005-07-07  Pascal Obry  <obry@adacore.com>
15595
15596         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
15597         returned type on Windows.
15598
15599         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
15600         routine.
15601
15602         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
15603         exception in this case.
15604         Simplify the code as "Image (Image'Range)" = "Image".
15605
15606 2005-07-07  Vincent Celier  <celier@adacore.com>
15607
15608         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
15609         the destructor/constructor attributes for <lib>final/<lib>init.
15610
15611         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
15612
15613 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
15614
15615         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
15616         type if the parameter is not passed by copy but reference by default.
15617
15618 2005-07-07  Javier Miranda  <miranda@adacore.com>
15619
15620         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
15621         Reimplementation of the support for abstract interface types in order
15622         to leave the code more clear and easy to maintain.
15623
15624         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
15625         abstract interface types in order to leave the code clearer and easier
15626         to maintain.
15627
15628         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
15629         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
15630         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
15631         appropriate entry of the secondary dispatch table.
15632         (Make_DT): Add code to inherit the secondary dispatch tables of
15633         the ancestors.
15634
15635         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
15636         implementing both functionalities by means of a common routine, each
15637         routine has its own code.
15638
15639 2005-07-07  Javier Miranda  <miranda@adacore.com>
15640
15641         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
15642
15643         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
15644         types:
15645         --
15646           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
15647         --
15648
15649         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
15650         use of tag incomplete types.
15651
15652         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
15653         give support to tagged incomplete types.
15654
15655         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
15656         expression is a discriminant reference and its type is private, as can
15657         happen within a stream operation for a mutable record, use the full
15658         view of the type to resolve the case alternatives.
15659         (Analyze_Assignment): Check wrong dereference of incomplete types.
15660
15661         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
15662         types.
15663
15664         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
15665         incomplete types.
15666
15667         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
15668         N_Incomplete_Type_Declaration nodes.
15669
15670         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
15671         Tag_Present to give support to tagged incomplete types:
15672         --
15673           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
15674         --
15675
15676 2005-07-07  Olivier Hainque  <hainque@adacore.com>
15677
15678         PR ada/22301
15679         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
15680         definitions for the Unwind wrappers in the compiler case.
15681
15682 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
15683             Javier Miranda  <miranda@adacore.com>
15684
15685         * par-load.adb (Load): If a child unit is loaded through a limited_with
15686         clause, each parent must be loaded as a limited unit as well.
15687
15688         * sem_ch10.adb (Previous_Withed_Unit): Better name for
15689         Check_Withed_Unit. Return true if there is a previous with_clause for
15690         this unit, whether limited or not.
15691         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
15692         the current unit.
15693         (Is_Visible_Through_Renamings): New local subprogram of install_limited
15694         _withed_unit that checks if some package installed through normal with
15695         clauses has a renaming declaration of package whose limited-view is
15696         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
15697         of the current Draft document for Ada 2005.
15698         (Analyze_Context): Complete the list of compilation units that
15699         are allowed to contain limited-with clauses. It also contains
15700         checks that were previously done by Install_Limited_Context_Clauses.
15701         This makes the code more clear and easy to maintain.
15702         (Expand_Limited_With_Clause) It is now a local subprogram of
15703         Install_Limited_Context_Clauses, and contains the code that adds
15704         the implicit limited-with clauses for parents of child units.
15705         This functionality was prevously done by Analyze_Context.
15706
15707         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
15708         incomplete type.
15709
15710         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
15711         been erroneously named in a limited-with clause of its own context.
15712         In this case the error has been previously notified by Analyze_Context.
15713
15714 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
15715
15716         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
15717         generic package that contains local declarations with the same name.
15718         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
15719
15720 2005-07-07  Bernard Banner  <banner@adacore.com>
15721
15722         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
15723         ia64 platform only on platforms that you the GCC unwind library
15724         rather than the system unwind library.
15725
15726 2005-07-07  Thomas Quinot  <quinot@adacore.com>
15727
15728         * expect.c: Minor reformatting
15729
15730 2005-07-07  Sergey Rybin  <rybin@adacore.com>
15731
15732         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
15733         --no-separate-is
15734
15735         * gnat_ugn.texi: Add description for new gnatpp option
15736         (--no-separate-is)
15737
15738 2005-07-04  Thomas Quinot  <quinot@adacore.com>
15739
15740         * g-expect-vms.adb, g-expect.ads, g-expect.adb
15741         (Get_Command_Output): New subprogram to launch a process and get its
15742         standard output as a string.
15743
15744 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
15745             Olivier Hainque  <hainque@adacore.com>
15746
15747         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
15748         fetch a code-range descriptor associated with the machine state. On
15749         failure set the machine state's PC to 0; on success, pass the
15750         descriptor to exc_virtual_unwind.
15751
15752         * init.c (Tru64 section): New function __gnat_set_code_loc.
15753
15754 2005-07-04  Vincent Celier  <celier@adacore.com>
15755
15756         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
15757         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
15758         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
15759         Remove all auto-initialization code, as this is now done through the
15760         constructor mechanism.
15761
15762         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
15763         __gnat_sals_init_using_constructors): New functions.
15764
15765         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
15766         Linker_Constructor and Linker_Destructor when switch -a is used.
15767
15768         * bindusg.adb: Add line for new switch -a
15769
15770         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
15771         (Gnatbind): When switch -a is used, check if it is allowed
15772
15773         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
15774
15775 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
15776
15777         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
15778         This prevents us from hitting a limitation during the debug info
15779         generation when using stabs.
15780         (Prims_Ptr): Likewise.
15781
15782 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
15783             Ed Schonberg  <schonberg@adacore.com>
15784             Javier Miranda  <miranda@adacore.com>
15785
15786         * checks.adb (Null_Exclusion_Static_Checks): In the case of
15787         N_Object_Declaration, only perform the checks if the Object_Definition
15788         is not an Access_Definition.
15789
15790         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
15791         where the parent of an the access definition is an N_Object_Declaration
15792         when determining the Associated_Node_For_Itype and scope of an
15793         anonymous access-to-subprogram type.
15794
15795         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
15796         Corresponding_Spec on the body created for a null procedure. Add ???
15797         comment. Remove New_Copy_Tree call on body argument to
15798         Set_Body_To_Inline.
15799
15800         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
15801         discriminants, use the type of the actual as well, because the
15802         discriminants may be read by the called subprogram.
15803
15804         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
15805         access type we do not need to handle non-limited views.
15806         (Build_Derived_Record_Type): Additional check to check that in case of
15807         private types, interfaces are only allowed in private extensions.
15808
15809 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
15810
15811         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
15812         <Pragma_Linker_Destructor>: Likewise.
15813
15814         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
15815         Pragma_Linker_Destructor.
15816
15817         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
15818         ATTR_LINK_DESTRUCTOR.
15819         (static_ctors, static_dtors): New variables.
15820
15821         * misc.c (gnat_expand_body): Output current function as constructor
15822         and destructor if requested.
15823
15824         * par-prag.adb: Add processing for pragma Linker_Constructor and
15825         Linker_Destructor.
15826
15827         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
15828         extracted from Check_Interrupt_Or_Attach_Handler.
15829         (Check_Interrupt_Or_Attach_Handler): Invoke it.
15830         Implement pragma Linker_Constructor and Linker_Destructor with the
15831         help of Find_Unique_Parameterless_Procedure.
15832         Replace Name_Alias with Name_Target for pragma Linker_Alias.
15833
15834         * snames.h, snames.ads, snames.adb:
15835         Add Name_Linker_Constructor and Name_Linker_Destructor.
15836         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
15837         * snames.adb: Remove Name_Alias.
15838
15839         * trans.c: Include cgraph.h.
15840         (build_global_cdtor): New function.
15841         (Compilation_Unit_to_gnu): Build global constructor and destructor if
15842         needed.
15843         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
15844         of objects too.
15845         (addressable_p) <COMPONENT_REF>: Unconditionally test
15846         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
15847
15848         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
15849         variable if it is external.
15850
15851         (static_ctors, static_dtors): New global variables.
15852         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
15853         <ATTR_LINK_DESTRUCTOR>: Likewise.
15854         (end_subprog_body): Chain function as constructor and destructor
15855         if requested.
15856
15857         * exp_util.adb (Force_Evaluation): Unconditionally invoke
15858         Remove_Side_Effects with Variable_Ref set to true.
15859         (Remove_Side_Effects): Handle scalar types first. Use a renaming
15860         for non-scalar types even if Variable_Ref is true and for class-wide
15861         expressions.
15862
15863 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
15864
15865         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
15866         to prevent spurious warnings.
15867
15868 2005-07-04  Thomas Quinot  <quinot@adacore.com>
15869
15870         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
15871         Itypes. Itypes are really unexpected there.
15872         (Build_TypeCode_Function): Generalise special processing for Itypes to
15873         handle the case of numeric implicit base types as well as enumerated
15874         ones.
15875
15876 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
15877
15878         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
15879         controlled, indicate the expected type of the dereference that is
15880         created for the call to Deep_Finalize, to prevent spurious errors when
15881         the designated type is private and completed with a derivation from
15882         another private type.
15883
15884 2005-07-04  Vincent Celier  <celier@adacore.com>
15885
15886         * make.adb (Change_To_Object_Directory): When unable to change the
15887         current dir to the object directory, output the full path of the
15888         directory.
15889
15890 2005-07-04  Matthew Gingell  <gingell@adacore.com>
15891
15892         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
15893
15894         * indepsw-linux.adb: Replace by...
15895
15896         * indepsw-gnu.adb: ...this new file
15897
15898 2005-07-04  Vincent Celier  <celier@adacore.com>
15899
15900         * mlib-prj.adb (Auto_Initialize): New constant String
15901         (SALs_Use_Constructors): New Boolean function
15902         (Build_Library): Call gnatbind with Auto_Initialize switch when
15903         SALs_Use_Constructors returns True.
15904
15905         * mlib-tgt.ads: Minor reformatting
15906
15907         * mlib-utl.ads: Minor reformatting
15908
15909         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
15910
15911 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
15912
15913         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
15914         single protected declarations can have an interface list.
15915         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
15916         with seriously malformed entry declarations, and lead to compilation
15917         abandoned messages.
15918
15919 2005-07-04  Javier Miranda  <miranda@adacore.com>
15920
15921         * par-load.adb: Load the context items in two rounds.
15922
15923 2005-07-04  Robert Dewar  <dewar@adacore.com>
15924
15925         * scng.adb: Do not consider Mod used as an attribute to be a keyword
15926
15927 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
15928             Javier Miranda  <miranda@adacore.com>
15929
15930         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
15931         type extension needs a limited view.
15932         Remove previous restriction on private types available through the
15933         limited-view (only tagged private types were previously allowed).
15934         (Install_Withed_Unit): In the code that implements the
15935         legality rule given in AI-377, exclude a child unit with the name
15936         Standard, because it is a homonym of the Standard environment package.
15937
15938 2005-07-04  Thomas Quinot  <quinot@adacore.com>
15939
15940         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
15941         overloaded function call, carry interpretations from the original tree
15942         to the copy.
15943
15944 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
15945
15946         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
15947         types check whether some designated type is a limited view, and use
15948         the non-limited view if available.
15949
15950 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
15951
15952         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
15953         constraint of full view of a private view T1 if present, when T2 is a
15954         discriminated full view.
15955
15956 2005-07-04  Thomas Quinot  <quinot@adacore.com>
15957
15958         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
15959         actual that is a view conversion of a bit packed array reference.
15960
15961 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
15962
15963         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
15964         present before checking whether an interface type covers a synchronized
15965         type.
15966
15967 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
15968
15969         * sem_util.adb (Is_Object_Reference): An indexed or selected component
15970         whose prefix is an implicit dereference is an object reference. Removes
15971         spurious errors when compiling with -gnatc.
15972
15973 2005-07-04  Robert Dewar  <dewar@adacore.com>
15974
15975         PR ada/22039
15976         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
15977
15978 2005-07-04  Matthew Gingell  <gingell@adacore.com>
15979
15980         * tracebak.c: Enable tracebacks on ia64 platforms
15981
15982 2005-07-04  Vincent Celier  <celier@adacore.com>
15983
15984         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
15985         the GNAT BIND command, as gnatbind accepts multiples ALI files with
15986         the -L or -n switches.
15987
15988 2005-07-04  Vincent Celier  <celier@adacore.com>
15989
15990         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
15991         correctly computed and the main project data is not modified while
15992         doing so.
15993         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
15994         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
15995         c++linker as this does not work on some platforms.
15996
15997 2005-07-04  Matthew Heaney  <heaney@adacore.com>
15998
15999         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
16000         was changed.
16001         * a-coinve.adb: Perform constraint checks explicitly.
16002
16003 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16004             Thomas Quinot  <quinot@adacore.com>
16005
16006         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
16007         new target gen-soccon.
16008
16009 2005-07-04  Robert Dewar  <dewar@adacore.com>
16010
16011         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
16012
16013 2005-07-04  Thomas Quinot  <quinot@adacore.com>
16014
16015         * g-socket.ads (Check_Selector): Minor rewording of comment.
16016
16017 2005-07-04  Vincent Celier  <celier@adacore.com>
16018
16019         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
16020
16021 2005-07-04  Thomas Quinot  <quinot@adacore.com>
16022
16023         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
16024
16025 2005-07-04  Sergey Rybin  <rybin@adacore.com>
16026
16027         * gnat_ugn.texi: Add description of --eol gnatpp option
16028
16029 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
16030             Thomas Quinot  <quinot@adacore.com>
16031
16032         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
16033         if the user wants all calls of a subprogram to be flagged,
16034         independently of whether they are made from within the same unit or
16035         another unit.
16036         Mention restriction for pragma Linker_Alias on some platforms.
16037         Document pragma Linker_Constructor and Linker_Destructor.
16038         Rewrite documentation of Weak_External, Linker_Section and
16039         Linker_Alias pragmas.
16040
16041 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
16042
16043         * s-stausa.ads, s-stausa.adb: New files.
16044
16045 2005-06-30  Kelley Cook
16046
16047         * all files:  Update FSF address in copyright headers.
16048         * gen-soccon.co (main): Output new FSF address in generated files.
16049
16050 2005-06-28  Paul Brook  <paul@codesourcery.com>
16051
16052         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
16053
16054 2005-06-14  Olivier Hainque  <hainque@adacore.com>
16055             Eric Botcazou  <ebotcazou@adacore.com>
16056
16057         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
16058         exc_unwind, now that we are generating proper .debug_frame output for
16059         that target.
16060
16061         * tracebak.c: Remove the mips-irix section, as we are now using the
16062         s-mastop based unwinder again.
16063         Under SPARC/Solaris, take into account the stack bias to compute the
16064         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
16065         ABI.
16066
16067 2005-06-14  Doug Rupp  <rupp@adacore.com>
16068
16069         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
16070
16071         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
16072
16073 2005-06-14  Pascal Obry  <obry@adacore.com>
16074
16075         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
16076         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
16077         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
16078         package name).
16079
16080         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
16081         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
16082         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
16083         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
16084         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
16085         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
16086         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
16087         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
16088         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
16089         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
16090         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
16091         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
16092         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
16093         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
16094         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
16095         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
16096         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
16097         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
16098         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
16099         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
16100         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
16101         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
16102         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
16103         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
16104         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
16105         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
16106         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
16107         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
16108         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
16109         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
16110         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
16111         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
16112         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
16113         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
16114         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
16115         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
16116         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
16117         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
16118         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
16119         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
16120         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
16121         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
16122         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
16123         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
16124         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
16125         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
16126         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
16127         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
16128         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
16129         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
16130         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
16131         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
16132         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
16133         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
16134         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
16135         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
16136         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
16137         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
16138         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
16139         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
16140         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
16141         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
16142         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
16143         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
16144         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
16145         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
16146         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
16147         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
16148         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
16149         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
16150         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
16151         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
16152         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
16153         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
16154         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
16155         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
16156         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
16157         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
16158         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
16159         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
16160         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
16161         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
16162         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
16163         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
16164         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
16165         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
16166         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
16167         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
16168         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
16169         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
16170         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
16171         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
16172         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
16173         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
16174         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
16175         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
16176         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
16177         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
16178         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
16179         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
16180         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
16181         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
16182         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
16183         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
16184         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
16185         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
16186         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
16187         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
16188         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
16189         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
16190         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
16191         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
16192         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
16193         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
16194         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
16195         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
16196         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
16197         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
16198         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
16199         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
16200         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
16201         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
16202         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
16203         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
16204         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
16205         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
16206         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
16207         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
16208         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
16209         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
16210         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
16211         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
16212         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
16213
16214 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
16215             Arnaud Charlet  <charlet@adacore.com>
16216
16217         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
16218         longer protected objects. They have been replaced by lower-level
16219         suspension objects made up by a mutex and a condition variable (or
16220         their equivalent given a particular OS) plus some internal data to
16221         reflect the state of the suspension object.
16222         (Initialize, Finalize): Add this initialization procedure for
16223         Suspension_Object, which is a controlled type.
16224         (Finalize): Add the finalization procedure for Suspension_Object,
16225         which is a controlled type.
16226
16227         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
16228         Ada.Synchronous_Task_Control because there is no longer a need for a
16229         VxWorks specific version of this package. Target dependencies
16230         has been moved to System.Task_Primitives.Operations.
16231
16232         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
16233         longer needed.
16234         (InitializeCriticalSection, EnterCriticalSection,
16235         LeaveCriticalSection, DeleteCriticalSection): Replace the type
16236         pCriticalSection by an anonymous access type so that we avoid problems
16237         of accessibility to local objects.
16238
16239         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
16240         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
16241         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
16242         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
16243         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
16244         set the environment task mask here.
16245         (Current_State): Add this function that returns the state of the
16246         suspension object.
16247         (Set_False): Add this procedure that sets the state of the suspension
16248         object to False.
16249         (Set_True): Add this procedure that sets the state of the suspension
16250         object to True, releasing the task that was suspended, if any.
16251         (Suspend_Until_True): Add this procedure that blocks the calling task
16252         until the state of the object is True. Program_Error is raised if
16253         another task is already waiting on that suspension object.
16254         (Initialize): Add this procedure for initializing the suspension
16255         object. It initializes the mutex and the condition variable which are
16256         used for synchronization and queuing, and it sets the internal state
16257         to False.
16258         (Finalize): Add this procedure for finalizing the suspension object,
16259         destroying the mutex and the condition variable.
16260
16261         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
16262         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
16263         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
16264         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
16265         which provides a low-level abstraction (using operating system
16266         primitives) for Ada.Synchronous_Task_Control.
16267         This object is made up by a mutex (for ensuring mutual exclusion), a
16268         condition variable (for queuing threads until the condition is
16269         signaled), a Boolean (State) indicating whether the object is open,
16270         and a Boolean (Waiting) reflecting whether there is a task already
16271         suspended on this object.
16272
16273         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
16274         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
16275         s-intman-vms.ads, s-intman-mingw.adb,
16276         (Initialize_Interrupts): Removed, no longer used.
16277
16278         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
16279         (Setup_Interrupt_Mask): New procedure.
16280
16281         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
16282
16283         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
16284
16285         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
16286         this is no longer done in the body of s-taprop
16287         (Server_Task): Explicitely test for Pending_Action in case
16288         System.Parameters.No_Abort is True.
16289
16290         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
16291         is no longer done in the body of s-taprop
16292
16293 2005-06-14  Robert Dewar  <dewar@adacore.com>
16294
16295         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
16296         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
16297         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
16298         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
16299         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
16300         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
16301         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
16302         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
16303         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
16304         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
16305         system-linux-hppa.ads, system-vms_64.ads,
16306         system-vxworks-alpha.ads: Minor comment update for
16307         AI-362 (unit is Pure).
16308
16309         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
16310         Add pragma Pure_05 for AI-362
16311         Make remaining conversion functions obsolescent in Ada 95
16312
16313         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
16314         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
16315         Add entries for a-wichun and a-zchuni
16316         Add a-widcha a-zchara for AI-395
16317         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
16318
16319         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
16320         Add entries for a-wichun.o and a-zchuni.o
16321         Entries for a-widcha.o and a-zchara.o
16322         Add entry for a-chacon.o
16323
16324         * a-ztenau.adb: Add with of Ada.Characters.Conversions
16325
16326         * a-chacon.ads, a-chacon.adb: New files.
16327
16328         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
16329         categorization violations.
16330
16331         * a-strmap.ads: Add pragma Pure_05 for AI-362
16332         * a-strmap.ads: Add note on implicit categorization for AI-362
16333
16334         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
16335
16336         * par-prag.adb: Dummy entry for pragma Persistent_BSS
16337         Set Ada_Version_Explicit, for implementation of AI-362
16338         Add processing for pragma Pure_05 and Preelaborate_05
16339         Add entry for Assertion_Policy pragma
16340
16341         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
16342         when needed for proper processing of categorization stuff
16343
16344         * sem_cat.adb:
16345         For several cases, make errors in preealborate units warnings,
16346         instead of errors, if GNAT_Mode is set. For AI-362.
16347
16348         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
16349         preelaborate unit is now warning if in GNAT mode
16350
16351         * s-stoele.ads: Document AI-362 for pragma preelaborate
16352
16353 2005-06-14  Doug Rupp  <rupp@adacore.com>
16354
16355         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
16356         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
16357         Default_Exception_Msg_Max_Length: new parameter.
16358
16359         * a-except.ads: (Exception_Msg_Max_Length): Set to
16360         System.Parameters.Default_Exception_Msg_Max_Length
16361         Add pragma Preelaborate_05 for AI-362
16362         Add warnings off to allow categorization violations for AI-362
16363
16364 2005-06-14  Vincent Celier  <celier@adacore.com>
16365
16366         * gnatsym.adb: Adapt to modification of package Symbols: procedure
16367         Process is now in package Processing.
16368
16369         * symbols.ads, symbols.adb:
16370         (Processing): New package, containing procedure Process
16371
16372         * symbols-vms-alpha.adb:
16373         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
16374
16375         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
16376         symbols-processing-vms-ia64.adb: New files.
16377
16378 2005-06-14  Pascal Obry  <obry@adacore.com>
16379
16380         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
16381         implementation. This new version generates the proper DllMain routine
16382         to initialize the SAL. The DllMain is generated in Ada and compiled
16383         before being added as option to the library build command.
16384
16385 2005-06-14  Doug Rupp  <rupp@adacore.com>
16386             Pascal Obry  <obry@adacore.com>
16387
16388         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
16389         call to decc$translate_vms.
16390         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
16391         need to remove those quotes before catenating the filename.
16392         (__gnat_locate_exec_on_path): improvements to the Win32 section:
16393         * avoid allocating the memory twice for better efficiency;
16394         * allocate 32K buffer for environment expansion as suggested by MSDN;
16395         * prepend ".;" to the path so that current directory is searched too.
16396
16397 2005-06-14  Robert Dewar  <dewar@adacore.com>
16398
16399         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
16400         instead of raising CE (AI-241)
16401         Add warnings off to allow categorization violations for AI-362
16402
16403 2005-06-14  Robert Dewar  <dewar@adacore.com>
16404
16405         * ali-util.adb, gnatbind.adb: Remove references to
16406         Force_RM_Elaboration_Order.
16407
16408         * switch-b.adb: Remove recognition of -f switch
16409
16410 2005-06-14  Pascal Obry  <obry@adacore.com>
16411
16412         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
16413         implementation which is slightly more efficient.
16414
16415 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
16416             Javier Miranda  <miranda@adacore.com>
16417             Ed Schonberg  <schonberg@adacore.com>
16418             Hristian Kirtchev  <kirtchev@adacore.com>
16419
16420         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
16421         allocator's designated type is a class-wide type, and compiling for
16422         Ada 2005, emit a run-time check that the accessibility level of the
16423         type given in the allocator's expression is not deeper than the level
16424         of the allocator's access type.
16425
16426         (Tagged_Membership): Modified to gives support to abstract interface
16427         types.
16428
16429         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
16430         Access_Level.
16431         (Descendant_Tag): New predefined function
16432         (Is_Descendant_At_Same_Level): New predefined function
16433         (Get_Access_Level): New private function
16434         (Set_Access_Level): New private procedure
16435         (IW_Membership): New function. Given the tag of an object and the tag
16436         associated with an interface, evaluate if the object implements the
16437         interface.
16438         (Register_Interface_Tag): New procedure used to initialize the table of
16439         interfaces used by the IW_Membership function.
16440         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
16441         of the dispatch table.
16442         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
16443         table of interfaces of the parent.
16444         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
16445         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
16446         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
16447         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
16448         Ada 2005 semantics for the new predefined function.
16449
16450         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
16451         call to Descendant_Tag rather than Internal_Tag.
16452         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
16453         the accessibility level of the attribute's Item parameter is not deeper
16454         than the level of the attribute's prefix type. Tag_Error is raised if
16455         the check fails. The check is only emitted for Ada_05.
16456         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
16457         requested stream attribute, use it.
16458         (Expand_N_Attribute_Reference): If the designated type is an interface
16459         then rewrite the referenced object as a conversion to force the
16460         displacement of the pointer to the secondary dispatch table.
16461         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
16462         is a dereference of an object with a constrained partial view.
16463
16464         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
16465         type is a class-wide type, emit a run-time check that the accessibility
16466         level of the returned object is not deeper than the level of the
16467         function's master (only when compiling for Ada 2005).
16468
16469         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
16470         Action_Nb_Arg): Add entries for new Get_Access_Level and
16471         Set_Access_Level routines in these tables.
16472         (Make_DT): Generate a call to set the accessibility level of the
16473         tagged type in its TSD.
16474         (Make_DT): Code cleanup. The functionality of generating all the
16475         secondary dispatch tables has been moved to freeze_record_type.
16476         (Make_Abstract_Interface_DT): Minor code cleanup.
16477         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
16478         this subprogram implements a new algorithm that provides the
16479         same functionality and it is more clear in case of primitives
16480         associated with abstract interfaces.
16481         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
16482         clean up, the functionality of this subprogram is now provided
16483         by Set_All_DT_Position.
16484         (Write_DT): New subprogram: a debugging procedure designed to be called
16485         within gdb to display the dispatch tables associated with a tagged
16486         type.
16487         (Collect_All_Interfaces): New subprogram that collects the whole list
16488         of interfaces that are directly or indirectly implemented by a tagged
16489         type.
16490         (Default_Prim_Op_Position): New subprogram that returns the fixed
16491         position in the dispatch table of the default primitive operations.
16492         (Expand_Interface_Actuals): New subprogram to generate code that
16493         displaces all the actuals corresponding to class-wide interfaces to
16494         reference the interface tag of the actual object.
16495         (Expand_Interface_Conversion): New subprogram. Reference the base of
16496         the object to give access to the interface tag associated with the
16497         secondary dispatch table.
16498         (Expand_Interface_Thunk): New subprogram that generates the code of the
16499         thunk. This is required for compatibility with the C+ ABI.
16500         (Make_Abstract_Interface_DT): New subprogram that generate the
16501         declarations for the secondary dispatch tables associated with an
16502         abstract interface.
16503         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
16504         attribute for each primitive operation covering interface subprograms
16505         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
16506         These subprograms were upgraded to give support to abstract interfaces
16507
16508         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
16509         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
16510         RE_Set_Access_Level.
16511         (RE_Unit_Table): Add entries for new Ada.Tags operations.
16512         Add support to call the followig new run-time subprograms:
16513         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
16514
16515         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
16516         match its full declaration when both have an access definition with
16517         statically matching designated subtypes.
16518         (Analyze_Component_Declaration): Delete commented out code that was
16519         incorrectly setting the scope of an anonymous access component's type.
16520         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
16521         an access discriminant when the containing type is nonlimited.
16522         (Make_Incomplete_Type_Declaration): Create an incomplete type
16523         declaration for a record type that includes self-referential access
16524         components.
16525         (Check_Anonymous_Access_Types): Before full analysis of a record type
16526         declaration, create anonymous access types for each self-referential
16527         access component.
16528         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
16529         an access component in this context is a Local_Anonymous_Access, for
16530         proper accessibility checks.
16531         (Access_Definition): Set properly the scope of the anonymous access type
16532         created for a stand-alone access object.
16533         (Find_Type_Of_Object): An object declaration may be given with an access
16534         definition.
16535         (Complete_Subprograms_Derivation): New subprogram used to complete
16536         type derivation of private tagged types implementing interfaces.
16537         In this case some interface primitives may have been overriden
16538         with the partial-view and, instead of re-calculating them, they
16539         are included in the list of primitive operations of the full-view.
16540         (Build_Derived_Record_Type): Modified to give support to private
16541         types implemening interfaces.
16542         (Access_Definition): Reject ALL on anonymous access types.
16543         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
16544         type derivation to occur at a deeper accessibility level than the
16545         parent type.
16546         For the case of derivation within a generic body however, disallow the
16547         derivation if the derived type has an ancestor that is a formal type
16548         declared in the formal part of an enclosing generic.
16549         (Analyze_Object_Declaration): For protected objects, remove the check
16550         that they cannot contain interrupt handlers if not declared at library
16551         level.
16552         (Add_Interface_Tag_Components): New subprogram to add the tag components
16553         corresponding to all the abstract interface types implemented by a
16554         record type or a derived record type.
16555         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
16556         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
16557         Process_Full_View, Record_Type_Declaration): Modified to give
16558         support to abstract interface types
16559         (Collect_Interfaces): New subprogram that collects the list of
16560         interfaces that are not already implemented by the ancestors
16561         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
16562         when partial view has no discriminants and full view has defaults.
16563         (Constrain_Access): Reject a constraint on a general access type
16564         if the discriminants of the designated type have defaults.
16565         (Access_Subprogram_Declaration): Associate the Itype node with the inner
16566         full-type declaration or subprogram spec. This is required to handle
16567         nested anonymous declarations.
16568         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
16569         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
16570         Process_Full_View, Record_Type_Declaration): Modified to give
16571         support to abstract interface types
16572         (Derive_Subprograms): Addition of a new formal to indicate if
16573         we are in the case of an abstact-interface derivation
16574         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
16575         to the specification because it is requied to analyze all the
16576         identifiers found in a list of interfaces
16577
16578         * debug.adb: Complete documentation of flag "-gnatdZ"
16579
16580         * exp_ch3.adb: Implement config version of persistent_bss pragma
16581         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
16582         testing for TSS presence to properly enforce visibility rules.
16583         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
16584         Make_Abstract_Interfaces_DT to generate the secondary tables
16585         associated with abstract interfaces.
16586         (Build_Init_Procedure): Modified to initialize all the tags
16587         corresponding.
16588         (Component_Needs_Simple_Initialization): Similar to other tags,
16589         interface tags do not need initialization.
16590         (Freeze_Record_Type): Modified to give support to abstract interface
16591         types.
16592         (Expand_N_Object_Declaration): Do not generate an initialization for
16593         a scalar temporary marked as internal.
16594
16595         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
16596         in-out parameter that is a component in an initialization procedure,
16597         whose constraint might depend on discriminants, and that may be
16598         misaligned because of packing or representation clauses.
16599         (Is_Legal_Copy): New predicate to determine whether a possibly
16600         misaligned in-out actual can actually be passed by copy/return. This
16601         is an error in case the type is by_reference, and a warning if this is
16602         the consequence of a DEC import pragma on the subprogram.
16603         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
16604         interface types
16605         (Expand_Inlined_Call): Mark temporary generated for the return value as
16606         internal, so that no useless scalar normalization is generated for it.
16607         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
16608         null procedure can always be inlined.
16609         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
16610         procedure, generate an explicit empty body for it.
16611
16612         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
16613         Given a type implementing an interface, returns the corresponding
16614         access_disp_table value.
16615         (Find_Interface_Tag): New subprogram. Given a type implementing an
16616         interface, returns the record component containing the tag of the
16617         interface.
16618         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
16619         previous ones that return the corresponding tag and access_disp_table
16620         entities.
16621         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
16622         is a predefined primitive operation.
16623         (Expand_Subtype_From_Expr): If the expression is a selected component
16624         within an initialization procedure, compute its actual subtype, because
16625         the component may depend on the discriminants of the enclosing record.
16626
16627         * i-cpp.ads, i-cpp.adb:
16628         This package has been left available for compatibility with previous
16629         versions of the frontend. As part of the new layout this is now a
16630         dummy package that uses declarations available at a-tags.ads
16631
16632         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
16633         "constant access" and "aliased [constant] access" when not compiling
16634         with -gnat05.
16635         Suppress Ada 2005 keyword warning if -gnatwY used
16636         (P_Identifier_Declarations): Add support for object declarations with
16637         access definitions.
16638         (Private_Extension_Declaration): Complete the documentation
16639         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
16640         attribute in case of private extension declaration
16641         (P_Type_Declaration): Mark as "abstract" the type declarations
16642         corresponding with protected, synchronized and task interfaces
16643         (P_Declarative_Items): "not" and "overriding" are overriding indicators
16644         for a subprogram or instance declaration.
16645
16646         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
16647         instantiation that is a dispatching operation has controlling access
16648         parameters that are null excluding.
16649         Save and restore Ada_Version_Explicit, for implementation of AI-362
16650         (Validate_Derived_Type_Instance): Add check for abstract interface
16651         types.
16652         (Analyze_Formal_Package): Establish Instantiation source for the copy of
16653         the generic that is created to represent the formal package.
16654         (Analyze_Package_Instantiation): Instantiate body immediately if the
16655         package is a predefined unit that contains inlined subprograms, and
16656         we are compiling for a Configurable_Run_Time.
16657         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
16658         If the program has a null default, generate an empty body for it.
16659
16660         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
16661         error message condition, null procedures are correctly detected now.
16662         (New_Overloaded_Entity): Bypass trivial overriding indicator check
16663         for subprograms in the context of protected types. Instead, the
16664         indicator is examined in Sem_Ch9 while analysing the subprogram
16665         declaration.
16666         (Check_Overriding_Indicator): Check consistency of overriding indicator
16667         on subprogram stubs as well.
16668         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
16669         the library level.
16670         (Analize_Subprogram_Specification): When analyzing a subprogram in which
16671         the type of the first formal is a concurrent type, replace this type
16672         by the corresponding record type.
16673         (Analyze_Subprogram_Body): Undo the previous work.
16674         (Analyze_Procedure_Call): If the call has the form Object.Op, the
16675         analysis of the prefix ends up analyzing the call itself, after which
16676         we are done.
16677         (Has_Interface_Formals): New subprogram subsidiary to analyze
16678         subprogram_specification that returns true if some non
16679         class-wide interface subprogram is found
16680         (New_Overloaded_Entity): Modified to give support to abstract
16681         interface types
16682         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
16683         access to subprograms must be recursive.
16684         (Is_Unchecked_Conversion): Improve the test that recognizes
16685         instantiations of Unchecked_Conversion, and allows them in bodies that
16686         are to be inlined by the front-end. When the body comes from an
16687         instantiation, a reference to Unchecked_Conversion will be an
16688         Expanded_Name, even though the body has not been analyzed yet.
16689         Replace Is_Overriding and Not_Overriding in subprogram_indication with
16690         Must_Override and Must_Not_Override, to better express intent of AI.
16691         (Analyze_Subprogram_Body): If an overriding indicator is given, check
16692         that it is consistent with the overrinding status of the subprogram
16693         at this point.
16694         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
16695         always inlined.
16696         If the subprogram is a null procedure, indicate that it does not need
16697         a completion.
16698
16699         * sem_disp.adb (Check_Controlling_Type): Give support to entities
16700         available through limited-with clauses.
16701         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
16702         allowed as the last primitive of a tagged type if it has no previous
16703         spec.
16704         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
16705         to give support to abstract interface types
16706
16707         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
16708         in the case where the target type is an anonymous access type of an
16709         object or component (that is, when Is_Local_Anonymous_Access is true).
16710         Prevent the special checks for conversions of access discriminants in
16711         the case where the discriminant belongs to a nonlimited type, since
16712         such discriminants have their accessibility level defined in the same
16713         way as a normal component of an anonymous access type.
16714         (Resolve_Allocator): When an allocator's designated type is a class-wide
16715         type, check that the accessibility level of type given in the
16716         allocator's expression or subtype indication is not statically deeper
16717         than the level of the allocator's access type.
16718         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
16719         name in a discriminant constraint of a record component.
16720         (Resolve_Explicit_Dereference): Do not check whether the type is
16721         incomplete when the dereference is a use of an access discriminant in
16722         an initialization procedure.
16723         (Resolve_Type_Conversion): Handle conversions to abstract interface
16724         types.
16725         (Valid_Tagged_Conversion): The conversion of a tagged type to an
16726         abstract interface type is always valid.
16727         (Valid_Conversion): Modified to give support to abstract interface types
16728         (Resolve_Actuals): Enable full error reporting on view conversions
16729         between unrelated by_reference array types.
16730         The rule for view conversions of arrays with aliased components is
16731         weakened in Ada 2005.
16732         Call to obsolescent subprogram is now considered to be a violation of
16733         pragma Restrictions (No_Obsolescent_Features).
16734         (Check_Direct_Boolean_Operator): If the boolean operation has been
16735         constant-folded, there is nothing to check.
16736         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
16737         check on possible violation of restriction No_Direct_Boolean_Operators
16738         until after expansion of operands, to prevent spurious errors when
16739         operation is constant-folded.
16740
16741         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
16742         Has_Compatible_Type): Modified to give support to abstract interface
16743         types.
16744         (Interface_Present_In_Ancestor): New function to theck if some ancestor
16745         of a given type implements a given interface
16746
16747         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
16748         prefix is a parameterless function that returns an access_to_procedure.
16749         (Transform_Object_Operation): Handle properly function calls of the
16750         form Obj.Op (X), which prior to analysis appear as indexed components.
16751         (Analyze_One_Call): Complete the error notification to help new Ada
16752         2005 users.
16753         (Analyze_Allocator): For an allocator without an initial value, where
16754         the designated type has a constrained partial view, a discriminant
16755         constraint is illegal.
16756
16757 2005-06-14  Robert Dewar  <dewar@adacore.com>
16758
16759         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
16760         do with treatment of Set_Col when positioned at end of line character.
16761
16762 2005-06-14  Robert Dewar  <dewar@adacore.com>
16763
16764         * atree.adb: (Elist*): Protect against uninitialized field
16765
16766 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
16767
16768         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
16769         for an attribute reference that returns an access type.
16770         (Apply_Discriminant_Check): No need for check if (designated) type has
16771         constrained partial view.
16772
16773         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
16774         both bound checks, rather than a conjunction.
16775         (Insert_Valid_Check): If the expression is an actual that is an indexed
16776         component of a bit-packed array, force expansion of the packed element
16777         reference, because it is specifically inhibited elsewhere.
16778
16779 2005-06-14  Vincent Celier  <celier@adacore.com>
16780
16781         * clean.adb (Clean_Project): Correctly delete executable specified as
16782         absolute path names.
16783
16784         * make.adb (Gnatmake): Allow relative executable path names with
16785         directory information even when project files are used.
16786         (Change_To_Object_Directory): Fail gracefully when unable to change
16787         current working directory to object directory of a project.
16788         (Gnatmake): Remove exception handler that could no longer be exercized
16789         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
16790         may be deallocated by Normalize_Arguments.
16791         (Collect_Arguments): Eliminate empty arguments
16792
16793         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
16794         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
16795         (Check_Project): Return False when Project is No_Project. Return True
16796         when All_Projects is True.
16797         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
16798         All_Projects to True.
16799         Minor reformatting
16800
16801 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
16802             Javier Miranda  <miranda@adacore.com>
16803             Thomas Quinot  <quinot@adacore.com>
16804             Robert Dewar  <dewar@adacore.com>
16805             Hristian Kirtchev  <kirtchev@adacore.com>
16806             Gary Dismukes  <dismukes@adacore.com>
16807
16808         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
16809         anonymous access types, to indicate that the accessibility level of
16810         the type is determined by that of the enclosing declaration.
16811         (Has_Persistent_BSS): New flag
16812         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
16813         of this attribute with functions.
16814         (Is_Primitive_Wrapper): Remove the barrier.
16815         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
16816         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
16817         New subprograms.
16818         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
16819         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
16820         New subprograms.
16821         (Is_Pure_Unit_Access_Type): New flag
16822         (Abstract_Interfaces): Complete the assertion to cover all usages.
16823         (Set_Is_Interface): Complete the assertion to cover all usages.
16824         (Is_Primitive_Wrapper): New attribute.
16825         (Is_Obsolescent): Now applies to all entities (though it is only set
16826         for subprograms currently)
16827         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
16828         which solves various problems concerning access subtypes.
16829         (Has_Persistent_BSS): New flag
16830         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
16831         Remove these subprograms because this attribute is currently
16832         not used.
16833         New entity flags:
16834         Has_Specified_Stream_Input (Flag190)
16835         Has_Specified_Stream_Output (Flag191)
16836         Has_Specified_Stream_Read (Flag192)
16837         Has_Specified_Stream_Write (Flag193)
16838         Present in all type and subtype entities. Set for a given view if the
16839         corresponding stream-oriented attribute has been defined by an
16840         attribute definition clause. When such a clause occurs, a TSS is set
16841         on the underlying full view; the flags are used to track visibility of
16842         the attribute definition clause for partial or incomplete views.
16843         (Is_Pure_Unit_Access_Type): New flag
16844         Clarify use of Is_Internal.
16845         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
16846         internally generated to wrap the invocation of tasks and protected
16847         types that implement interfaces.
16848         (Implementation_Base_Type): Documentation correction
16849         (Is_Obsolescent): Now applies to all entities (though it is only set
16850         for subprograms currently)
16851         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
16852         which solves various problems concerning access subtypes.
16853
16854         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
16855         for examined parameters. Identify unequal parameter list lengths as
16856         non-conformant parameters.
16857         (Overriding_Possible): Do not check for "All" qualifier in declaration
16858         of controlling access parameter, following prescription of AI-404.
16859         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
16860         that build the procedure body that wraps an entry invocation
16861         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
16862         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
16863         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
16864         give support to abstract interface types
16865
16866         * freeze.adb (Freeze_Entity): Issue error message if
16867         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
16868         type has no storage pool (Ada 2005) AI-366.
16869         Also modified to give support to abstract interface types
16870         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
16871         Inline_Always pragma.
16872
16873         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
16874         now begin an entry declaration.
16875         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
16876         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
16877         a subprogram declaration preceded by an overriding indicator.
16878         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
16879         declarations or subprogram declarations preceded by reserved words
16880         "not" or "overriding".
16881         (P_Entry_Declaration): Update comment. Parse and check overriding
16882         indicator, set semantic flags of entry declarations.
16883         (P_Task): New error message in case of private applied
16884         to a task type declaration.
16885         (P_Protected): New error message in case of private applied
16886         to a task type declaration.
16887
16888         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
16889         in which the full view of a type implementing an interface is a
16890         concurrent type.
16891         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
16892         Declare_Inherited_Private_Subprograms): If an explicit operation
16893         overrides an operation that is inherited in the private part, mark the
16894         explicit one as overriding, to enable overriding indicator checks.
16895         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
16896         full view to partial view, to simplify handling in back-end.
16897
16898         * sprint.adb: Print interface lists where needed: derived types,
16899         protected types, task types.
16900         output "is null" for null procedures. Part of implementation of
16901
16902         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
16903         relaxation of rules for access types in pure, shared passive partitions.
16904
16905         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
16906         first read discriminants into temporary objects, performing checks on
16907         the read values, then possibly performing discriminant checks on the
16908         actual (if it is constrained), and only finally reading the components
16909         into a constrained temporary object.
16910         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
16911         case of reading discriminants of a mutable record type to recognize
16912         the new form of the code generated by
16913         Build_Mutable_Record_Read_Procedure.
16914
16915         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
16916         of a simple call to Make_TSS_Name.
16917         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
16918         buffer, in order for Is_TSS to work correctly on local TSS names.
16919
16920         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
16921         Is_Local_Anonymous_Access to check legaliy of attributes in the
16922         context of  access components and stand-alone access objects.
16923         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
16924         treated as available for a limited private type if there is an
16925         attribute_definition_clause that applies to its full view, but not in
16926         other cases where the attribute is available for the full view
16927         (specifically, the sole fact that the full view is non-limited does not
16928         make the attribute available for the partial view).
16929         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
16930         non-overloaded intrinsic subprogram.
16931         (Check_Stream_Attribute): Reject an attribute reference for an
16932         unavailable stream attribute even if the prefix is not a limited type
16933         (case of a 'Input attribute reference for an abstract, non-classwide
16934         type)
16935         (Stream_Attribute_Available): New function to determine whether a stream
16936         attribute is available at a place.
16937         (Check_Attribute): Use Stream_Attribute_Available instead of just
16938         testing for TSS presence on the implementation base type.
16939         (Analyze_Attribute): Modified to give support to task interfaces.
16940         (Analyze_Access_Attribute): Add error check for use of an Access (or
16941         Unrestricted_Access) attribute with a subprogram marked as
16942         Inline_Always.
16943         (Analyze_Attribute, case Attribute_Address): Add error check for use of
16944         an Address attribute with a subprogram marked as Inline_Always.
16945         Update Eval_Attribute to handle new value of Width from AI-395
16946
16947         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
16948         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
16949         Factor common code across the stream-oriented attribute circcuits into
16950         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
16951         processing is functionally identical to the previous duplicated one,
16952         except that an expression that denotes an abstract subprogram will now
16953         be rejected, as mandated by AI-195 item 5.
16954
16955         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
16956         Is_Local_Anonymous_Access to apply accessibility checks to access
16957         components and stand-alone access objects.
16958         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
16959         elsewhere.
16960         (Is_Potentially_Persistent_Type): New function
16961         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
16962         a heap-object whose type has a constrained partial view, the object is
16963         unconstrained and the component may depend on a discriminant, making its
16964         renaming illegal.
16965
16966         * sinfo.ads, sinfo.adb
16967         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
16968         (Must_Override): Flag applicable to N_Entry_Declaration.
16969         Indicate that interface_list can appear in single task and single
16970         protected declarations.
16971         Replace Is_Overriding and Not_Overriding with Must_Override and
16972         Must_Not_Override, to better express intent of AI.
16973         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
16974         of an overriding indicator in a subprogram or instance.
16975         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
16976         Add the overriding indicator [[not] overriding] construct to the
16977         following grammar productions:
16978          ENTRY_DECLARATION
16979          GENERIC_INSTANTIATION
16980          SUBPROGRAM_SPECIFICATION
16981
16982         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
16983         can start with an overriding indicator.
16984
16985         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
16986         flags accordingly on subrogram specifications or instances.
16987
16988         * sem_ch8.adb:
16989         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
16990         overriding_indicator, if present, is consistent with status of spec.
16991         Improve error message for null-excluding checks on controlling access
16992         parameters.
16993         (Check_In_Previous_With_Clause): Protect the frontend against
16994         previously reported critical errors in the context clauses.
16995         Save and restore Ada_Version_Explicit, for implementation of AI-362
16996         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
16997         operation verify that controlling formals of the renamed entity that
16998         are access parameters are explicitly non-null.
16999         (Find_Expanded_Name): Improve error message when prefix is an illegal
17000         reference to a private child unit.
17001
17002         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
17003         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
17004         Rewrite to correspond to new wide character names in AI-395
17005
17006         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
17007         default procedures.
17008
17009 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
17010             Robert Dewar  <dewar@adacore.com>
17011
17012         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
17013         code, not on the bodies of predefined operations, to cut down on
17014         spurious noise.
17015
17016 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
17017
17018         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
17019         be expanded in place. The size computation does not require a
17020         subtraction, which would raise an exception on a compiler built with
17021         assertions when the upper bound is Integer'first.
17022         (Flatten): For an array of composite components, take into account the
17023         size of the components to determine whether it is safe to expand the
17024         array into a purely positional representation.
17025
17026 2005-06-14  Thomas Quinot  <quinot@adacore.com>
17027
17028         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
17029         denoting a formal parameter into account.
17030
17031 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
17032
17033         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
17034         the entry_call alternative of a conditional entry call, wrap the
17035         conditional entry call itself.
17036
17037 2005-06-14  Nicolas Setton  <setton@adacore.com>
17038             Ed Schonberg  <schonberg@adacore.com>
17039
17040         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
17041         the "simple_choice" member in a variant record, in accordance with the
17042         description in the package spec: the information output for a constant
17043         should be "S number", not "SS number".
17044         (Get_Encoded_Name): Return at once if not generating code. Avoids name
17045         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
17046
17047 2005-06-14  Thomas Quinot  <quinot@adacore.com>
17048
17049         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
17050         RACW without any primitives, do not generate the if statement for
17051         dispatching by name in the PolyORB/DSA case, as it would be malformed
17052         (it would have an Elsif_Parts list that is not No_List, but with a
17053         length of 0).
17054
17055 2005-06-14  Robert Dewar  <dewar@adacore.com>
17056
17057         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
17058
17059 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
17060
17061         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
17062         can determine whether pragma Suppress_Exception_Locations is in effect.
17063
17064         * utils2.c (build_call_raise): Do not pass the file name to the
17065         exception handler if pragma Suppress_Exception_Locations is in effect.
17066         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
17067
17068 2005-06-14  Emmanuel Briot  <briot@adacore.com>
17069
17070         * g-debpoo.adb (Deallocate, Dereference): Improve output.
17071
17072 2005-06-14  Nicolas Roche  <roche@adacore.com>
17073
17074         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
17075         to ""
17076         (Next_Level): Fix minor bug in handling of ../dir case
17077         (Read): Add dir separator to Directory name so that "" is understood as
17078          "/"
17079
17080 2005-06-14  Pascal Obry  <obry@adacore.com>
17081
17082         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
17083         releasing the items.
17084
17085 2005-06-14  Vincent Celier  <celier@adacore.com>
17086             Cyrille Comar  <comar@adacore.com>
17087
17088         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
17089         with output file descriptor and with output file name.
17090         (Dup, Dup2): Now global procedures as they are used by two subprograms
17091         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
17092
17093 2005-06-14  Thomas Quinot  <quinot@adacore.com>
17094
17095         PR ada/6717
17096         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
17097         broadcast address.
17098         (Create_Selector): Bind listening socket used to create the signalling
17099         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
17100         Set listen backlog to 1 to ensure that we detect socket theft by a
17101         failure of our own connect(2) call.
17102         (Check_Selector): Improve documentation of the selector mechanism.
17103         (Broadcast_Inet_Addr): New constant.
17104
17105 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
17106
17107         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
17108         type which turns out to be an incomplete and incorrect fix.
17109         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
17110         of the type is declared in a record (for determination of insertion
17111         type).
17112         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
17113         a private type and ensure that the primary entity is used for the type
17114         of the newly created function's V formal by taking the Etype of the
17115         view.
17116
17117 2005-06-14  Javier Miranda  <miranda@adacore.com>
17118             Jose Ruiz  <ruiz@adacore.com>
17119             Robert Dewar  <dewar@adacore.com>
17120             Ed Schonberg  <schonberg@adacore.com>
17121
17122         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
17123         that indicates if we are parsing a compilation unit found in a
17124         limited-with clause.
17125         It is use to avoid the circularity check.
17126
17127         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
17128         we are parsing a compilation unit found in a limited-with clause. This
17129         is use to avoid the circularity check.
17130
17131         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
17132         unit as a consequence of parsing a limited-with clause. This is used
17133         to avoid the circularity check.
17134
17135         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
17136         (Analyze_Context): Limited-with clauses are now allowed
17137         in more compilation units.
17138         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
17139         againts previously reported critical errors in context clauses
17140         (Install_Limited_Withed_Unit): Code cleanup plus static detection
17141         of two further errors: renamed subprograms and renamed packages
17142         are not allowed in limited with clauses.
17143         (Install_Siblings): Do not install private_with_clauses on the package
17144         declaration for a non-private child unit.
17145         (Re_Install_Parents): When a parent of the subunit is reinstalled,
17146         reset visibility of child units properly.
17147         (Install_Withed_Unit): When a child unit appears in a with_clause of its
17148         parent, it is immediately visible.
17149
17150 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
17151             Emmanuel Briot  <briot@adacore.com>
17152
17153         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
17154         declared within an inlined body as referenced, to prevent spurious
17155         warnings.
17156         (Output_One_Ref): If an entity renames an array component, indicate in
17157         the ALI file that this aliases (renames) the array. Capture as well
17158         function renamings that rename predefined operations.
17159         Add information about generic parent for package and subprogram
17160         instances.
17161         (Get_Type_Reference): For a subtype that is the renaming of an actual in
17162         an instantiation, use the first_subtype to ensure that we don't generate
17163         cross-reference information for internal types.
17164         For objects and parameters of a generic private type, retain the '*'
17165         indicator to distinguish such an entity from its type.
17166
17167         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
17168         to store information about instantiated entities.
17169
17170         * ali.adb (Scan_ALI): Add support for parsing the reference to the
17171         generic parent
17172
17173         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
17174         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
17175         information.
17176
17177 2005-06-10  Doug Rupp  <rupp@adacore.com>
17178             Arnaud Charlet  <charlet@adacore.com>
17179             Olivier Hainque  <hainque@adacore.com>
17180             Jose Ruiz  <ruiz@adacore.com>
17181
17182         * Make-lang.in: Add initialize.o when needed.
17183         Remove obsolete references to RT_FLAGS.
17184         Add missing dependencies for sdefault.o
17185
17186         * initialize.c: New file.
17187
17188         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
17189         [VMS] cond_signal_table: Fix problem in declaration.
17190         [VMS] __gnat_error_handler: rewrite.
17191         Move all __gnat_initialize() routines to initialize.c
17192         Specialize the former "hpux" section to "hppa hpux", as this is what the
17193         section really is here for and we now have other hpux ports that need
17194         different contents.
17195         (__gnat_adjust_context_for_raise) i386-linux: First version of this
17196         function for this target. Adjust PC by one in the machine context. This
17197         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
17198         it is more reliable to do that in the signal handler itself.
17199         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
17200         flags, so that the handler is passed the context structure to adjust
17201         prior to the raise.
17202         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
17203         SA_SIGINFO sigaction should look like. Call
17204         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
17205         Machine_State_Operations stuff.
17206         Add conditional code so that the x86_64 is also supported.
17207
17208 2005-06-14  Pascal Obry  <obry@adacore.com>
17209
17210         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
17211         the library name.
17212
17213 2005-06-14  Robert Dewar  <dewar@adacore.com>
17214
17215         * opt.ads, opt.adb: New flags for persistent_bss mode
17216         Add Ada_Version_Explicit, for implementation of AI-362
17217         Add Assertions_Enabled_Config and associated handling
17218         Needed since setting can be changed with Assertion_Policy pragma
17219         Add new flag Warn_On_Ada_2005_Compatibility
17220
17221         * switch-c.adb: Recognize -gnatwy/Y
17222         Set Ada_Version_Explicit, for implementation of AI-362
17223         The -gnatg switch now includes -gnatyu
17224
17225         * usage.adb: Add -gnatwy/Y
17226         Remove wrong asterisk on -gnatwX line
17227         Add line for -gnatyu switch
17228
17229 2005-06-14  Vincent Celier  <celier@adacore.com>
17230
17231         * osint.adb (Add_Default_Search_Dirs): Put source and object
17232         directories of project files before directories coming from
17233         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
17234
17235 2005-06-14  Robert Dewar  <dewar@adacore.com>
17236
17237         PR ada/15613
17238         * par-ch2.adb (Scan_Pragma_Argument): New procedure
17239         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
17240
17241 2005-06-14  Vincent Celier  <celier@adacore.com>
17242
17243         * prep.adb (Preprocess): Ignore error when scanning the first token of
17244         a line.
17245
17246 2005-06-14  Vincent Celier  <celier@adacore.com>
17247
17248         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
17249         (Check_Stand_Alone_Library): If the specified reference symbol file does
17250         not exist, only issue a warning when the symbol policy is not
17251         Controlled. And, when symbol policy is Compliant, set the symbol
17252         policy to Autonomous.
17253
17254 2005-06-14  Vincent Celier  <celier@adacore.com>
17255
17256         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
17257         when the project file in a with clause is not the last one, that is the
17258         project file name is followed by a comma.
17259         * prj-pp.adb: (First_With_In_List): New Boolean global variable
17260         (Print): Issue list of project files separated by commas in with clauses
17261         according to the values returned by Is_Not_Last_In_List.
17262         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
17263         (Set_Is_Not_Last_In_List): New procedure
17264
17265 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
17266
17267         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
17268
17269 2005-06-14  Robert Dewar  <dewar@adacore.com>
17270
17271         * scng.adb: Add call to new Check_EOF routine
17272         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
17273         Add some comments regarding wide character handling
17274
17275         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
17276
17277         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
17278
17279         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
17280         characters are now considered graphic characters and hence yield false
17281         in this call.
17282
17283         * nmake.adt: Modify header so that xnmake does not generate output
17284         files with multiple blank lines.
17285
17286         * treeprs.adt: Remove a blank line so that output from xtreeprs does
17287         not have an extra blank line
17288
17289 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
17290
17291         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
17292         expression when the component type is an anonymous access type to
17293         ensure that appropriate accessibility checks are done.
17294
17295         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
17296         expression of an assignment when the target object is of an anonymous
17297         access type. This ensures that required accessibility checks are done.
17298         (One_Bound): Move the check for type Universal_Integer to
17299         Process_Bounds.
17300         (Process_Bounds): Check whether the type of the preanalyzed range is
17301         Universal_Integer, and in that case set Typ to Integer_Type prior
17302         to setting the type of the original range and the calls to One_Bound.
17303
17304 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
17305
17306         * sem_case.adb (Expand_Others_Choice): Improve warning.
17307
17308 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
17309
17310         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
17311         constraint of full view if present, when other type is discriminated.
17312         (Eval_Relational_Op): Recognize tests of pointer values against Null,
17313         when the pointer is known to be non-null, and emit appropriate warning.
17314
17315 2005-06-14  Robert Dewar  <dewar@adacore.com>
17316             Ed Schonberg  <schonberg@adacore.com>
17317
17318         PR ada/10671
17319         * sem_prag.adb: Implement pragma Persistent_BSS
17320         Remove obsolete pragma Persistent_Data, Persistent_Object
17321         Set Ada_Version_Explicit, for implementation of AI-362
17322         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
17323         Add processing for pragma Pure_05 and Preelaborate_05
17324         Add processing for Assertion_Policy pragma
17325         Add pragma identifiers for Assert
17326         (Analyze_Pragma, case Assert): Check number of arguments
17327         (Process_Inline): Additional guard against an illegal program, where the
17328         argument of the pragma is undefined, and warnings on redundant
17329         constructs are enabled.
17330         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
17331         Ada_05 to this pragma, specifying that the pragma is only active in
17332         Ada_05 mode.
17333         (Check_Arg_Order): New procedure
17334         Add appropriate calls to this procedure throughout
17335         Also throughout, check entity name before doing any other checks
17336
17337         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
17338         Remove obsolete pragma Persistent_Data, Persistent_Object
17339         Add entries for pragma Pure_05 and Preelaborate_05
17340         Add entries for Assertion_Policy pragma and associated names
17341         Add some names for pragma argument processing
17342
17343         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
17344
17345 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
17346
17347         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
17348         appears within a negation (either from source or as a rewriting of
17349         inequality) adjust text of warning accordingly.
17350
17351 2005-06-14  Thomas Quinot  <quinot@adacore.com>
17352
17353         * s-strxdr.adb: Follow AI95-00132
17354
17355 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
17356
17357         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
17358
17359 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
17360             Jose Ruiz  <ruiz@adacore.com>
17361
17362         * s-tposen.adb, s-tpobop.adb
17363         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
17364         the exception id.
17365         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
17366         there is no violation of the Max_Entry_Queue_Length restriction (if it
17367         has been set); Program_Error is raised otherwise.
17368         (Requeue_Call): Before requeuing the task on the target entry queue we
17369         check that there is no violation of the Max_Entry_Queue_Length
17370         restriction (if it has been set); Program_Error is raised otherwise.
17371
17372 2005-06-14  Robert Dewar  <dewar@adacore.com>
17373
17374         * styleg.adb: Fix several remaining problems in -gnatyu switch
17375         Blank line count not reset at start
17376         Scanning outside source buffer in some cases
17377         Confusing message for blanks at end of file
17378         Non-empty blank lines not recognized
17379
17380         * nmake.adt: Modify header so that xnmake does not generate output
17381         files with multiple blank lines.
17382
17383         * treeprs.adt: Remove a blank line so that output from xtreeprs does
17384         not have an extra blank line
17385
17386 2005-06-14  Sergey Rybin  <rybin@adacore.com>
17387
17388         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
17389
17390 2005-06-14  Doug Rupp  <rupp@adacore.com>
17391             Vincent Celier  <celier@adacore.com>
17392
17393         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
17394         Update copyright.
17395
17396         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
17397         Remove "Library" command.
17398         Change keyword for style check -gnatyd from NOCRLF to
17399         DOS_LINE_ENDINGS.
17400         Remove useless second style check keyword NONE
17401         Remove help documentation for inexistent style check keyword
17402         RM_COLUMN_LAYOUT.
17403         Add help documentation for style check keywords DOS_LINE_ENDINGS,
17404         UNNECESSARY_BLANK_LINES and XTRA_PARENS
17405         Add UNNECESSARY_BLANK_LINES for -gnatyu
17406         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
17407
17408         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
17409
17410 2005-06-14  Vincent Celier  <celier@adacore.com>
17411
17412         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
17413         gprmake was invoked with -d.
17414         (Compile_Sources): If -d was used, output the "completed ..." message
17415         for each compilation.
17416         (Scan_Arg): Recognize new switch -d
17417         When -c and at least one main is specified, set
17418         Unique_Compile to True to guarantee that no other sources will be
17419         compiled.
17420
17421 2005-06-14  Matthew Heaney  <heaney@adacore.com>
17422
17423         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
17424         * a-swuwha.ads, a-swuwha.adb: New files
17425
17426         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
17427         * a-szuzha.ads, a-szuzha.adb: New files.
17428
17429         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
17430         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
17431         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
17432         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
17433         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
17434         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
17435         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
17436         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
17437         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
17438         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
17439         Ada 2005 RM.
17440
17441 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
17442             Olivier Hainque  <hainque@adacore.com>
17443             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17444             Pascal Obry  <obry@adacore.com>
17445
17446         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
17447
17448         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
17449         making a temporary around a procedure call because of non-addressable
17450         actual parameter.
17451         (process_freeze_entity): If entity is a private type, capture size
17452         information that may have been computed for the full view.
17453         (tree_transform, case N_Allocator): If have initializing expression,
17454         check type for Has_Constrained_Partial_View and pass that to
17455         build_allocator.
17456         (tree_transform, case N_Return_Statement): Pass extra arg to
17457         build_allocator.
17458
17459         * decl.c (annotate_value): Remove early return if -gnatR is not
17460         specified.
17461         (gnat_to_gnu_field): Don't make a packable type for a component clause
17462         if the position is byte aligned, the field is aliased, and the clause
17463         size isn't a multiple of the packable alignment. It serves no useful
17464         purpose packing-wise and would be rejected later on.
17465         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
17466
17467         PR ada/20515
17468         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
17469         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
17470         instead.
17471         (create_concat_name): Idem.
17472
17473 2005-06-10  Robert Dewar  <dewar@adacore.com>
17474             Eric Botcazou  <ebotcazou@adacore.com>
17475             Ben Brosgol  <brosgol@adacore.com>
17476             Cyrille Comar  <comar@adacore.com>
17477             Sergey Rybin  <rybin@adacore.com>
17478             Pascal Obry  <obry@adacore.com>
17479
17480         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
17481         Document second argument (Ada_05) of pragma Obsolescent
17482         Add note that call to subprogram marked with pragma Obsolescent
17483         is now considered to be a violation of program Restrictions
17484         (No_Obsolescent_Features).
17485         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
17486         that only machine-dependent attributes are supported.
17487
17488         * gnat_ugn.texi:
17489         Commented out menu lines and empty section for gnatclean examples
17490         Document -gnatwy/Y
17491         Fix some over long lines
17492         Clarify and enhance documentation of ADA_PROJECT_PATH.
17493         Rework section 2.11.2(3) about linking with a non-GNU compiler.
17494         Mention new switch -fcallgraph-info.
17495         Mention new switch -fstack-usage.
17496         For gnatpp, replace '-notab' with '-N' and add this option to Index
17497         Corrected VMS example.
17498         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
17499         Minor reformatting
17500         Add documentation for -gnatyu switch (unnecessary blank lines)
17501         Document new switch -U for GNAT PRETTY and GNAT METRIC
17502         Add note about Stdcall being handled as C convention on non Windows OS.
17503         Remove some junk typo in description of gnatbind -S switch
17504         Remove reference to Extensions_Allowed pragma
17505         Document the new order of the directories to be searched (source and
17506         object directories of project files before directories in ADA_*_PATH
17507         environment variables.
17508
17509         * g-trasym.ads: Document that IRIX is supported
17510
17511 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
17512
17513         * Makefile.in: Add initialize.o when needed.
17514         Adapt to new VMS package body Symbols and subunits
17515         No specialized version of a-sytaco is needed for VxWorks.
17516
17517         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
17518         * a-zchara.ads, a-widcha.ads: New files.
17519
17520         * system-hpux-ia64.ads: New file.
17521
17522         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
17523         is imported from the VxWorks kernel.
17524
17525 2005-06-14  Robert Dewar  <dewar@adacore.com>
17526
17527         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
17528         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
17529         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
17530         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
17531         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
17532         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
17533         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
17534         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
17535         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
17536         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
17537         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
17538         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
17539
17540 2005-06-14  Thomas Quinot  <quinot@adacore.com>
17541
17542         * xeinfo.adb: Fix typo in comment
17543
17544 2005-06-14  Javier Miranda  <miranda@adacore.com>
17545
17546         * repinfo.ads: Fix typo in comment
17547
17548 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
17549
17550         * s-finimp.adb (Parent_Tag): Delete this imported function (function
17551         Parent_Tag is now in the visible part of Ada.Tags).
17552         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
17553         using imported function.
17554
17555 2005-06-14  Bernard Banner  <banner@adacore.com>
17556
17557         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
17558         also apply for handling support for VxSim 653.
17559
17560 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
17561
17562         * xsnames.adb: Add automatic generation of snames.h.
17563
17564 2005-06-14  Thomas Quinot  <quinot@adacore.com>
17565
17566         * gen-soccon.c: Add IP_MULTICAST_IF constant
17567         Minor reformatting and adjustments to prevent warnings.
17568
17569 2005-06-14  Pascal Obry  <obry@adacore.com>
17570
17571         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
17572
17573 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
17574
17575         * trans.c (gnat_gimplify_expr): Call
17576         recompute_tree_invarant_for_addr_expr when we change
17577         the operand of the ADDR_EXPR.
17578
17579 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17580
17581         * misc.c: Don't include errors.h.
17582
17583 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17584
17585         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
17586
17587 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
17588
17589         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
17590         comment typos.
17591         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
17592
17593 2005-05-16  Nathanael Nerode <neroden@gcc.gnu.org>
17594
17595         PR ada/20270
17596         * Makefile.in: Make TGT_LIB behave correctly.
17597
17598 2005-04-23  DJ Delorie  <dj@redhat.com>
17599
17600         * misc.c: Adjust warning() callers.
17601
17602 2005-04-16  Laurent GUERBY  <laurent@guerby.net>
17603
17604         PR ada/18847
17605         * a-nudira.adb (Value): Check for valid string.
17606         * a-nuflra.adb (Value): Likewise.
17607
17608 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
17609
17610         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
17611
17612 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
17613
17614         * adaint.c, init.c, tracebak.c: Fix comment typos.
17615         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
17616
17617 2005-04-07  Laurent GUERBY  <laurent@guerby.net>
17618             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17619
17620         * Makefile.in: Add make ifeq define for hppa linux tasking support.
17621         * system-hpux.ads: Define Signed_Zeros to be True.
17622         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
17623
17624 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
17625
17626         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
17627         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
17628         typos.
17629
17630 2005-03-30  Tom Tromey  <tromey@redhat.com>
17631
17632         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
17633
17634 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
17635
17636         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
17637
17638 2005-03-29  Robert Dewar  <dewar@adacore.com>
17639
17640         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
17641         fixed-point expression has value that is not a multiple of the Small
17642         value.
17643
17644         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
17645
17646         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
17647         nanoseconds.
17648
17649         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
17650
17651 2005-03-29  Vincent Celier  <celier@adacore.com>
17652
17653         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
17654         (Build_Dynamic_Library.Version_String): Return the empty string when
17655         Lib_Version is empty or when the symbol policy is not Autonomous.
17656
17657         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
17658         a symbol is not in the reference symbol file, increase the Major ID
17659         and set the Minor ID to 0.
17660         Use gsmatch=lequal instead of gsmatch=equal
17661
17662 2005-03-29  Doug Rupp  <rupp@adacore.com>
17663
17664         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
17665         name and translate.
17666
17667 2005-03-29  Javier Miranda  <miranda@adacore.com>
17668
17669         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
17670         (Inherit_DT): The first formal has been redefined as a Tag.
17671         This allows us the removal of the subprogram Get_TSD.
17672         (TSD): Replace the call to Get_TSD by the actual code.
17673
17674         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
17675         (Make_DT): Upgrade the call to Inherit_TSD according to the
17676         new interface: the first formal is now a Tag.
17677
17678         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
17679         redefined as a Tag.
17680         This change allows us to remove the subprogram Get_TSD.
17681         (CPP_Get_TSD): Subprogram removed.
17682         (TSD): Replace the call to CPP_Get_TSD by the actual code.
17683
17684         * rtsfind.ads: Remove support to call the run-time
17685         subprogram Get_TSD
17686
17687 2005-03-29  Robert Dewar  <dewar@adacore.com>
17688
17689         * errutil.adb, errout.adb:
17690         Minor comment updates on Line_Terminator references
17691
17692         * par-ch10.adb: Add ??? comment about line terminator
17693
17694         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
17695         (check dos line terminator).
17696         (Check_Line_Max_Length): New procedure, split off from the existing
17697         Check_Line_Terminator routine. Separating this out allows -gnatyf to
17698         be properly recognized.
17699
17700         * styleg.adb: Add ??? comment for line terminator reference
17701
17702         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
17703         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
17704
17705         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
17706         (check dos line terminator).
17707         (Check_Line_Max_Length): New procedure, split off from the existing
17708         Check_Line_Terminator routine. Separating this out allows -gnatyf to
17709         be properly recognized.
17710
17711         * stylesw.ads, stylesw.adb:
17712         Add handling for new -gnatyd switch (check dos line terminator)
17713
17714         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
17715         Recognize -gnatwb/-gnatwB switches
17716         Include Warn_On_Bad_Fixed_Value for -gnatg
17717
17718         * usage.adb:
17719         Add line for new -gnatyd switch (check dos line terminator)
17720
17721         * usage.adb: Add lines for -gnatwb/-gnatwB
17722
17723         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
17724
17725         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
17726
17727         * gnat_ugn.texi: Fix overlong lines
17728         Document new -gnatyd switch
17729         Document new -gnatwb/-gnatwB switches
17730
17731 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
17732
17733         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
17734         order to retrieve the component list of the type, before examining
17735         individual components.
17736
17737         * sem_type.adb (Covers): Types are compatible if one is the base type
17738         of the other, even though their base types might differ when private
17739         views are involved.
17740
17741 2005-03-29  Thomas Quinot  <quinot@adacore.com>
17742
17743         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
17744         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
17745         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
17746         analyzed if expansion is disabled (which could otherwise cause spurious
17747         error messages if expansion has been disabled due to previous
17748         (unrelated) errors).
17749
17750         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
17751         is disabled, the entity denoted by the argument is the access type
17752         itself, not an underlying record type, so there is no need to go back
17753         to the Corresponding_Remote_Type.
17754
17755 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
17756             Robert Dewar  <dewar@adacore.com>
17757
17758         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
17759         expand a call to an instance of
17760         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
17761         Constructor actual of the instance. A class-wide membership
17762         check is also generated, to ensure that the tag passed to the instance
17763         denotes a type in the class.
17764         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
17765         of Name_Generic_Dispatching_Constructor.
17766
17767         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
17768         05 unit for AI-260-02).
17769
17770         * a-tgdico.ads: New file.
17771
17772         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
17773         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
17774
17775         * snames.ads, snames.adb (Preset_Names): Add entry for
17776         Generic_Dispatching_Constructor.
17777
17778         PR ada/20300
17779         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
17780         character type cases.
17781         (Analyze_Subprogram_Renaming): Add special handling for
17782         the case of renaming of stream attributes when the renaming denotes a
17783         generic formal subprogram association for an abstract formal subprogram.
17784         Check that the attribute is a primitive stream attribute (and not
17785         a class-wide stream attribute) and then rewrite the attribute name
17786         as the name of the appropriate compiler-generated stream primitive.
17787
17788 2005-03-29  Robert Dewar  <dewar@adacore.com>
17789
17790         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
17791         recursive calls.
17792         (Is_Possibly_Unaligned_Object): Correct typo that
17793         resulted in inaccurate result for unaligned scalars within records.
17794
17795 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
17796
17797         * freeze.adb (Freeze_Record_Type): If the type of the component is an
17798         itype whose parent is controlled and not yet frozen, do not create a
17799         freeze node for the itype if expansion is disabled.
17800
17801 2005-03-29  Vincent Celier  <celier@adacore.com>
17802
17803         * make.adb (Gnatmake): Don't fail if the main project file is declared
17804         as having no Ada sources. Do not display message "no sources to
17805         compile" in quiet output.
17806
17807 2005-03-29  Doug Rupp  <rupp@adacore.com>
17808
17809         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
17810         extra tools.
17811
17812 2005-03-29  Robert Dewar  <dewar@adacore.com>
17813
17814         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
17815         child.
17816
17817 2005-03-29  Robert Dewar  <dewar@adacore.com>
17818
17819         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
17820         missing TYPE Improve the error message generated when compiling a
17821         limited interface in Ada83 or Ada95 mode.
17822
17823 2005-03-29  Robert Dewar  <dewar@adacore.com>
17824
17825         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
17826         rather than proceed ahead using a junk attribute name.
17827
17828 2005-03-29  Vincent Celier  <celier@adacore.com>
17829
17830         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
17831
17832         * prj-part.adb (Parse_Single_Project): Set the location of a project
17833         on its defining identifier, rather than on the reserved word "project".
17834
17835         * prj-proc.adb (Expression): Adapt to the fact that default of external
17836         references may be string expressions, not always literal strings.
17837         (Recursive_Process): Set Display_Name equal to Name
17838         when Location is No_Location, that is when there is no actual file.
17839         Get the Display_Name of the project from the source, when it is not a
17840         virtual project.
17841         (Process): Use the Display_Name in error messages
17842
17843         * prj-strt.adb (External_Reference): Allow default to be string
17844         expressions, not only literal strings.
17845
17846 2005-03-29  Vincent Celier  <celier@adacore.com>
17847
17848         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
17849         file and the reference symbol file to be the same file.
17850
17851 2005-03-29  Thomas Quinot  <quinot@adacore.com>
17852
17853         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
17854         forbid conversion of a local access-to-subprogram type to a remote one.
17855
17856         * sem_util.adb (Wrong_Type): For a record type that is the expanded
17857         equivalent type for a remote access-to-subprogram type, go back to the
17858         original RAS entity when displaying an error message, so the casing is
17859         the original source casing.
17860
17861 2005-03-29  Robert Dewar  <dewar@adacore.com>
17862
17863         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
17864         on param update.
17865
17866 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
17867
17868         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
17869         subtype if code is being pre-analyzed, to prevent un-expanded
17870         references to protected formals, among others.
17871         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
17872         interpretation that can be a call, include the result of the call as a
17873         possible interpretation of the dereference.
17874
17875         * sem_ch5.adb (Process_Bounds): Determine type of range by
17876         pre-analyzing a copy of the original range, and then analyze the range
17877         with the expected type.
17878
17879         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
17880         with an overloaded prefix where not all interpretations yield an
17881         access to subprogram, do not rewrite node as a call.
17882         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
17883         the node as a call once the context identifies the interpretation of
17884         the prefix whose call yields the context type.
17885         (Valid_Conversion): For the case of a conversion between
17886         local access-to-subprogram types, check subtype conformance using
17887         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
17888         detailed error message.
17889
17890 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
17891
17892         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
17893         indicator, indicate that the formal can never be null.
17894         (Process_Formals): If a formal has a non_null indicator, insert the
17895         resulting subtype immediately before the enclosing subprogram decl,
17896         and not at the beginning of the corresponding declarative part, to
17897         prevent access before elaboration (Ada2005).
17898
17899 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17900
17901         PR ada/19956
17902         * utils.c (finish_record_type): Use variable_size when setting sizes.
17903
17904 2005-03-29  Robert Dewar  <dewar@adacore.com>
17905
17906         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
17907         guarantee Unix style line terminators for the output files, even when
17908         running on windows.
17909
17910 2005-03-29  Robert Dewar  <dewar@adacore.com>
17911
17912         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
17913         buffer if an exception is raised.
17914
17915 2005-03-29  Ed Falis  <falis@adacore.com>
17916
17917         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
17918         VxWorks 653 1.4
17919
17920 2005-03-29  Robert Dewar  <dewar@adacore.com>
17921
17922         * sem_util.ads: Minor reformatting
17923         * gnat_rm.texi: Minor editing.
17924
17925 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
17926
17927         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
17928         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
17929
17930 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
17931
17932         * adaint.c (__gnat_portable_spawn): Adjust cast.
17933
17934 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
17935
17936         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
17937
17938 2005-03-17  Pascal Obry  <obry@adacore.com>
17939
17940         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
17941         used.
17942
17943         * expect.c (__gnat_waitpid): Moved here from adaint.c.
17944         Reimplement under Win32 using Win32 API.
17945
17946         (__gnat_kill) [Win32]: Properly close the process handle before leaving
17947         this routine.
17948
17949 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
17950
17951         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
17952         (DECL_RENAMED_OBJECT): New accessor macro.
17953         (SET_DECL_RENAMED_OBJECT): New setter macro.
17954
17955         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
17956         object in all cases.  Attach the renamed object to the VAR_DECL.
17957         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
17958         field is not prescribed.
17959
17960         * misc.c (gnat_handle_option): Handle -gnatO separately.
17961         (gnat_print_decl) <VAR_DECL>: New case.
17962         Print the DECL_RENAMED_OBJECT node.
17963
17964         * lang.opt:  Declare separate -gnatO option.
17965
17966         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
17967         pointer, replace it with the renamed object.
17968         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
17969         pointer type if the source is not a fat pointer type whose underlying
17970         array has the same non-zero alias set as that of the destination array.
17971
17972 2005-03-17  Javier Miranda  <miranda@adacore.com>
17973
17974         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
17975         (Get_Inheritance_Depth): Removed.
17976         (Set_Inheritance_Depth): Removed.
17977
17978         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
17979         subprogram Get_Expanded_Name because it is not referenced by the
17980         frontend.
17981
17982         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
17983         (CPP_Get_Inheritance_Depth): Removed.
17984         (CPP_Set_Inheritance_Depth): Removed.
17985
17986         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
17987
17988 2005-03-17  Robert Dewar  <dewar@adacore.com>
17989
17990         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
17991         3, since we now expect GCC 3 to do all the work.
17992
17993 2005-03-17  Javier Miranda  <miranda@adacore.com>
17994
17995         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
17996         of one barrier to avoid wrong usage of this attribute.
17997
17998         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
17999         First_Private_Entity.
18000
18001         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
18002         the subprogram against wrong usage.
18003         Adapt the code to traverse the entities in the
18004         scope of a record_type because in addition to its usage regarding
18005         packages, this subprogram is also called by Expand_N_Freeze_Entity
18006         to install the visible declarations of the enclosing scope of a
18007         record_type_with_private to establish the proper visibility before
18008         freezing the entity and related subprograms.
18009
18010 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
18011
18012         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
18013         entry formals.
18014
18015 2005-03-17  Thomas Quinot  <quinot@adacore.com>
18016
18017         * exp_ch3.adb (Check_Attr): New subprogram.
18018         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
18019         into a new Check_Attr subprogram, in order to provide a more
18020         explanatory error message (including the name of the missing attribute).
18021         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
18022         subprogram determines whether a default implementation exists for a
18023         given stream attribute.
18024         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
18025         Determine whether to generate a default implementation for each stream
18026         attribute separately, as this depends on the specific attribute.
18027
18028         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
18029         limited extension where a stream attribute is missing for a limited
18030         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
18031         generate a bogus reference to the missing attribute to prevent
18032         cascaded errors. Instead, generate a null statement.
18033
18034         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
18035         available for a limited type if it has been specified for an ancestor
18036         of the type.
18037
18038 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
18039
18040         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
18041         entity is an operator.
18042
18043 2005-03-17  Thomas Quinot  <quinot@adacore.com>
18044
18045         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
18046         spec, to make this predicate available to other units.
18047
18048         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
18049         reimplementing it.
18050
18051         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
18052         when no distribution runtime library is available.
18053
18054         * sem_res.adb, sem_dist.adb: Disable expansion of remote
18055         access-to-subprogram types when no distribution runtime library is
18056         available.
18057         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
18058         predicate available to other units.
18059
18060         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
18061         spec, to make this predicate available to other units.
18062
18063 2005-03-17  Vincent Celier  <celier@adacore.com>
18064
18065         * make.adb (Insert_Project_Sources): Make sure the Q is always
18066         initialized.
18067
18068         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
18069         the default for the tree, not the global default naming.
18070
18071         * prj-proc.adb (Recursive_Process): No need to put the default naming
18072         in the project data, it's already there.
18073
18074 2005-03-17  Doug Rupp  <rupp@adacore.com>
18075
18076         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
18077
18078         * 5xcrtl.ads: Renamed to...
18079         * s-crtl-vms64.ads: ...this new file
18080
18081 2005-03-17  Robert Dewar  <dewar@adacore.com>
18082
18083         PR ada/19519
18084         * namet.adb (Copy_One_Character): Set proper wide character encoding
18085         for upper half character if we have upper half encoding.
18086
18087 2005-03-17  Robert Dewar  <dewar@adacore.com>
18088
18089         * par.adb (Par): Improved msg for attempt to recompile predefined unit
18090
18091 2005-03-17  Thomas Quinot  <quinot@adacore.com>
18092
18093         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
18094         tagged limited type, the TSS is a newly built renaming declaration:
18095         insert it using Set_TSS, not Copy_TSS.
18096
18097 2005-03-17  Javier Miranda  <miranda@adacore.com>
18098
18099         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
18100         Try_Object_Operation): Analyze the object that is accessible
18101         through the prefix of the subprogram call before we apply
18102         the transformation of the object-operation notation.
18103
18104 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
18105
18106         * s-taprob.adb (Initialize_Protection): Initialize the protected
18107         object's owner to Null_Task.
18108         (Lock): If pragma Detect_Blocking is in effect and the caller of this
18109         procedure is already the protected object's owner then Program_Error
18110         is raised. In addition the protected object's owner is updated.
18111         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
18112         of this procedure is already the protected object's owner then
18113         Program_Error is raised.
18114         In addition the protected object's owner is updated.
18115         (Unlock): Remove the ownership of the protected object.
18116
18117         * s-taprob.ads (Protection): Add the field Owner, used to store the
18118         protected object's owner.
18119         This component is needed for detecting one type of potentially blocking
18120         operations (external calls on a protected subprogram with the same
18121         target object as that of the protected action). Document the rest of
18122         the components.
18123
18124         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
18125         Initialize the protected object's owner to Null_Task.
18126         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
18127         caller of this procedure is already the protected object's owner then
18128         Program_Error is raised.
18129         Do not raise Program_Error when this procedure is called from a
18130         protected action.
18131         (Unlock_Entries): Remove the ownership of the protected object.
18132         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
18133         of this procedure is already the protected object's owner then
18134         Program_Error is raised.
18135         Do not raise Program_Error when this procedure is called from
18136         a protected action.
18137
18138         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
18139         used to store the protected object's owner.
18140
18141         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
18142         effect and this procedure (a potentially blocking operation) is called
18143         from whithin a protected action, Program_Error is raised.
18144         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
18145         and this procedure (a potentially blocking operation) is called from
18146         whithin a protected action, Program_Error is raised.
18147
18148 2005-03-17  Vincent Celier  <celier@adacore.com>
18149             Nicolas Setton  <setton@adacore.com>
18150
18151         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
18152         switch, not supported by the linker on Darwin. Add '_' before
18153         <library>init, as this character is added unconditionally by the
18154         compiler.
18155         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
18156         correct one ".dylib". This fixes detection of the archive files when
18157         building library projects.
18158
18159 2005-03-17  Vincent Celier  <celier@adacore.com>
18160
18161         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
18162         -gnat83, -gnat95 and -gnat05.
18163
18164 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
18165
18166         * gnat_ugn.texi: Document gnatmem restriction
18167
18168 2005-03-17  Thomas Quinot  <quinot@adacore.com>
18169
18170         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
18171         cleanup
18172
18173 2005-03-17  Robert Dewar  <dewar@adacore.com>
18174
18175         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
18176         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
18177         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
18178
18179         * casing.adb: Comment improvements
18180
18181 2005-03-17  Pascal Obry  <obry@adacore.com>
18182
18183         * g-expect.adb: Minor reformatting.
18184
18185 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
18186
18187         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
18188         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
18189         to dependencies.
18190
18191 2005-03-15  Vincent Celier  <celier@adacore.com>
18192
18193         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
18194         Add new parameter In_Tree to specify the project tree: needed
18195         by the project manager. Adapt to changes in project manager
18196         using new parameter In_Tree.
18197
18198 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
18199
18200         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
18201         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
18202         ada/bldtools to avoid make -jN failures.
18203
18204 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
18205
18206         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
18207         to NULL_TREE on entry.
18208
18209 2005-03-15  Robert Dewar  <dewar@adacore.com>
18210
18211         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
18212         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
18213         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
18214         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
18215         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
18216         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
18217         system-interix.ads, system-solaris-sparc.ads,
18218         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
18219         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
18220         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
18221         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
18222         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
18223         Compiler_System_Version to be False.
18224
18225         * opt.ads: Add new flag Opt.Address_Is_Private
18226
18227         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
18228         Add new parameter Compiler_System_Version to avoid checking for
18229         completeness of parameters when compiler is compiling itself.
18230         Allows old versions of GNAT to be compiled with new compiler.
18231
18232 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
18233
18234         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
18235         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
18236         calling thread.
18237         (Stack_Base_Available): New flag.
18238         (Get_Page_Size): New overloaded functions imported from C.
18239         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
18240         PROT_ON, PROT_OFF): New constants.
18241         (mprotect): New function imported from C.
18242         (pthread_teb_t): New record type.
18243
18244         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
18245         (Create_Task): Account for the Yellow Zone and the guard page.
18246
18247 2005-03-15  Vincent Celier  <celier@adacore.com>
18248
18249         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
18250         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
18251         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
18252         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
18253         Library_File_Name_For): Add new parameter In_Tree
18254         to specify the project tree: needed by the project manager.
18255         Adapt to changes in project manager using new parameter In_Tree.
18256         Remove local imports, use functions in System.CRTL.
18257
18258         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
18259         to use the project manager.
18260
18261         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
18262         In_Tree to designate the project tree. Adapt to changes in the project
18263         manager, using In_Tree.
18264
18265         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
18266         Copy_Interface_Sources): Add new parameter In_Tree to specify the
18267         project tree: needed by the project manager.
18268         (Build_Library): Check that Arg'Length >= 6 before checking if it
18269         contains "--RTS=...".
18270
18271         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
18272         Library_File_Name_For): Add new parameter In_Tree to specify the
18273         project tree: needed by the project manager.
18274
18275         * prj.ads, prj.adb: Major modifications to allow several project trees
18276         in memory at the same time.
18277         Change tables to dynamic tables and hash tables to dynamic hash
18278         tables. Move tables and hash tables from Prj.Com (in the visible part)
18279         and Prj.Env (in the private part). Move some constants from the visible
18280         part to the private part. Make other constants deferred.
18281         (Project_Empty): Make it a variable, not a function
18282         (Empty_Project): Add parameter Tree. Returns the data with the default
18283         naming data of the project tree Tree.
18284         (Initialize): After updating Std_Naming_Data, copy its value to the
18285         component Naming of Project Empty.
18286         (Register_Default_Naming_Scheme): Use and update the default naming
18287         component of the project tree, instead of the global variable
18288         Std_Naming_Data.
18289         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
18290         Tree is not defaulted, return the default naming data of the Tree.
18291         (Initial_Buffer_Size): Constant moved from private part
18292         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
18293         variables initialized in procedure Initialize.
18294         (Add_To_Buffer): Add two in out parameters to replace global variables
18295         Buffer and Buffer_Last.
18296         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
18297         functions.
18298         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
18299         hash tables.
18300         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
18301         for the project tree.
18302         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
18303         constant at the beginning of the package spec, so that they cane be used
18304         in subprograms before their full declarations.
18305         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
18306         (Empty_Project): Add parameter of type Project_Node_Ref
18307         (Private_Project_Tree_Data): Add component Default_Naming of type
18308         Naming_Data.
18309         (Buffer, Buffer_Last): remove global variables
18310         (Add_To_Buffer): Add two in out parameters to replace global variables
18311         Buffer and Buffer_Last.
18312         (Current_Packages_To_Check): Remove global variable
18313         (Empty_Name): Move to private part
18314         (No-Symbols): Make it a constant
18315         (Private_Project_Tree_Data): New type for the private part of the
18316         project tree data.
18317         (Project_Tree_Data): New type for the data of a project tree
18318         (Project_Tree_Ref): New type to designate a project tree
18319         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
18320         for the project tree.
18321
18322         * prj-attr.ads: Add with Table; needed, as package Prj no longer
18323         imports package Table.
18324
18325         * prj-com.adb: Remove empty, no longer needed body
18326
18327         * prj-com.ads: Move most of the content of this package to package Prj.
18328
18329         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
18330         designate the project node tree and Packages_To_Check to replace
18331         global variable Current_Packages_To_Check.
18332         Add new parameters In_Tree and Packages_To_Check to local subprograms,
18333         when needed. Adapt to changes in project manager with project node tree
18334         In_Tree.
18335
18336         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
18337         project tree to most subprograms. Move tables and hash tables to
18338         private part of package Prj.
18339         Adapt to changes in project manager using project tree In_Tree.
18340
18341         * prj-makr.adb (Tree): New constant to designate the project node tree
18342         Adapt to change in project manager using project node tree Tree
18343
18344         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
18345         display the Library_Src_Dir and the Library_Dir.
18346         Add new parameter In_Tree to designate the project node tree to most
18347         subprograms. Adapt to changes in the project manager, using project tree
18348         In_Tree.
18349         (Check_Naming_Scheme): Do not alter the casing on platforms where
18350         the casing of file names is not significant.
18351         (Check): Add new parameter In_Tree to designate the
18352
18353         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
18354         designate the project tree.
18355         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
18356
18357         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
18358         to replace those that were in the private part of package Prj.
18359         Add new parameter In__Tree to designate the project node tree to most
18360         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
18361         (Post_Parse_Context_Clause): When specifying the project node of a with
18362         clause, indicate that it is a limited with only if there is "limited"
18363         in the with clause, not necessarily when In_Limited is True.
18364         (Parse): Add new parameter In_Tree to designate the project node tree
18365
18366         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
18367         designate the project node tree. Adapt to change in Prj.Tree with
18368         project node tree In_Tree.
18369
18370         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
18371         tree In_Tree in the call to function Empty_Process to give its initial
18372         value to the project data Processed_Data.
18373         Add new parameters In_Tree to designate the project tree and
18374         From_Project_Node_Tree to designate the project node tree to several
18375         subprograms. Adapt to change in project manager with project tree
18376         In_Tree and project node tree From_Project_Node_Tree.
18377
18378         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
18379         to replace those that were in the private part of package Prj.
18380         Add new parameter In_Tree to designate the project node tree to most
18381         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
18382
18383         * prj-tree.ads, prj-tree.adb: Add new parameter of type
18384         Project_Node_Tree_Ref to most subprograms.
18385         Use this new parameter to store project nodes in the designated project
18386         node tree.
18387         (Project_Node_Tree_Ref): New type to designate a project node tree
18388         (Tree_Private_Part): Change table to dynamic table and hash tables to
18389         dynamic hash tables.
18390
18391         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
18392         the project tree to most subprograms. Adapt to changes in project
18393         manager using project tree In_Tree.
18394
18395         * makegpr.adb (Project_Tree): New constant needed to use project
18396         manager.
18397
18398 2005-03-15  Olivier Hainque  <hainque@adacore.com>
18399
18400         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
18401         for sigactions with SA_SIGINFO set. Call
18402         __gnat_adjust_context_for_raise before raising, to perform the
18403         potentially required adjustments to the machine context for the GCC
18404         unwinder.
18405
18406         * raise.h (__gnat_adjust_context_for_raise): New prototype.
18407
18408         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
18409         Adjust PC by one in the provided machine context.
18410         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
18411         so that the handler is passed the context structure to adjust prior to
18412         the raise.
18413         (__gnat_error_handler) HPUX: Adjust the signature to match what an
18414         SA_SIGINFO sigaction should look like. Call
18415         __gnat_adjust_context_for_raise before actually raising.
18416         (__gnat_adjust_context_for_raise): Default noop to help PC
18417         adjustments before raise from signal handlers.
18418         (__gnat_error_handler): Indirectly call a predicate function to
18419         determine if a condition should be resignaled or not.
18420         (__gnat_set_resignal_predicate): User interface to modify the predicate.
18421         (__gnat_default_resignal_p): Default GNAT predicate.
18422
18423 2005-03-15  Doug Rupp  <rupp@adacore.com>
18424
18425         * adaint.c: Prefix #include of VMS system header files with vms/
18426         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
18427         Do not define a dummy function "convert_addresses" under Darwin,
18428         not needed.
18429
18430         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
18431         with vms/
18432
18433 2005-03-15  Nicolas Setton  <setton@adacore.com>
18434
18435         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
18436         PPC/AIX.
18437
18438 2005-03-15  Robert Dewar  <dewar@adacore.com>
18439
18440         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
18441         AI-386.
18442
18443         * a-retide.ads: Minor comment changes
18444
18445 2005-03-15  Robert Dewar  <dewar@adacore.com>
18446
18447         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
18448         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
18449         Realloc_For_Chunk to private part of package.
18450         New subprograms for AI-301
18451
18452         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
18453         Get_Line procedure.
18454         Avoid unnecessary use of Get/Set_Wide_String
18455
18456 2005-03-15  Robert Dewar  <dewar@adacore.com>
18457
18458         PR ada/13470
18459         * a-stunau.ads, a-stunau.adb:
18460         Change interface to allow efficient (and correct) implementation
18461         The previous changes to allow extra space in unbounded strings had
18462         left this interface a bit broken.
18463
18464         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
18465
18466         * g-spipat.ads, g-spipat.adb: New interface for Get_String
18467         Minor reformatting (function specs)
18468
18469         * g-spitbo.adb: New interface for Get_String
18470
18471         * g-spitbo.ads: Minor reformatting
18472
18473         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
18474
18475         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
18476
18477 2005-03-15  Javier Miranda  <miranda@adacore.com>
18478             Robert Dewar  <dewar@adacore.com>
18479             Thomas Quinot  <quinot@adacore.com>
18480             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18481
18482         * atree.ads, atree.adb: Add support for Elist24 field
18483
18484         * atree.h: Fix wrong definition of Field27
18485         Add support for Elist16 field
18486         Add support for Elist24 field
18487
18488         * einfo.ads, einfo.adb (Abstract_Interfaces,
18489         Set_Abstract_Interfaces): New subprograms.
18490         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
18491         subprograms.
18492         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
18493         entities rather than a single node.
18494         (Is_Interface, Set_Is_Interface): New subprogram
18495         (First_Tag_Component): New syntesized attribute
18496         (Next_Tag_Component): New synthesized attribute
18497         (Write_Entity_Flags): Upgraded to write Is_Interface
18498         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
18499         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
18500         (Task_Body_Procedure): New subprogram to read this attribute.
18501         (Set_Task_Body_Procedure): New subprogram to set this attribute.
18502         (Has_Controlled_Component): Now applies to all entities.
18503         This is only a documentation change, since it always worked to apply
18504         this to other than composite types (yielding false), but now this is
18505         official.
18506         Update documentation on Must_Be_Byte_Aligned for new spec
18507
18508         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
18509         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
18510         uses of the Access_Disp_Table attribute to reference the first dispatch
18511         table associated with a tagged type. As
18512         part of the implementation of abstract interface types,
18513         Access_Disp_Table has been redefined to contain a list of dispatch
18514         tables (rather than a single dispatch table).
18515         Similarly, upgrade all the references to Tag_Component by the
18516         new attribute First_Tag_Component.
18517         (Find_Inherited_TSS): Moved to exp_tss.
18518         Clean up test in Expand_N_Object_Declaration for cases
18519         where we need to do a separate assignment of the initial value.
18520         (Expand_N_Object_Declaration): If the expression in the
18521         declaration of a tagged type is an aggregate, no need to generate an
18522         additional tag assignment.
18523         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
18524         is to be deleted.
18525         Bit packed array ops are only called if operands are known to be
18526         aligned.
18527         (Component_Equality): When returning an N_Raise_Program_Error statement,
18528         ensure that its Etype is set to Empty to avoid confusing GIGI (which
18529         expects that only expressions have a bona fide type).
18530         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
18531         determine the amount of data to be copied.
18532
18533         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
18534         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
18535             INTERFACE_TYPE_DEFINITION ::=
18536               [limited | task | protected | synchronized] interface
18537                 [AND interface_list]
18538
18539         * par-ch3.adb (P_Type_Declaration): Modified to give support to
18540         interfaces.
18541         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
18542         interfaces.
18543         (P_Interface_Type_Definition): New subprogram that parses the new
18544         syntax rule of Ada 2005 interfaces
18545         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
18546         messages by the correct RENAMES (quotes removed).
18547
18548         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
18549         attribute First_Tag_Component.
18550
18551         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
18552         (Interface_List, Set_Interface_List): New subprograms.
18553         (Interface_Present, Set_Interface_Present): New subprograms.
18554         (Limited_Present, Set_Limited_Present): Available also in derived
18555         type definition nodes.
18556         (Protected_Present, Set_Protected_Present): Available also in
18557         record type definition and
18558         derived type definition nodes.
18559         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
18560         (Task_Present, Set_Task_Present): New subprogram.
18561         (Task_Body_Procedure): Removed.
18562         (Set_Task_Body_Procedure): Removed.
18563         These subprogram have been removed because the attribute
18564         Task_Body_Procedure has been moved to the corresponding task type
18565         or task subtype entity to leave a field free to store the list
18566         of interfaces implemented by a task (for AI-345)
18567         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
18568         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
18569         expression flag Do_Range_Check
18570         (Exception_Junk): Change to Flag7 to accomodate above change
18571         (Box_Present, Default_Name, Specification, Set_Box_Present,
18572         Set_Default_Name, Set_Specification): Expand the expression
18573         "X in N_Formal_Subprogram_Declaration" into the corresponding
18574         two comparisons. Required to use the csinfo tool.
18575
18576         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
18577         "with string" given.
18578
18579         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
18580         expression given.
18581
18582         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
18583         in 2005 mode
18584
18585         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
18586         attribute Task_Body_Procedure rather than the old semantic field that
18587         was available in the task_type_declaration node.
18588
18589         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
18590         interface type definitions.
18591         (P_Formal_Derived_Type_Definition): Modified to handle the list of
18592         interfaces.
18593
18594         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
18595         task type declaration.
18596         (P_Protected): Modified to handle the list of interfaces in a
18597         protected type declaration.
18598
18599 2005-03-15  Doug Rupp  <rupp@adacore.com>
18600             Vincent Celier  <celier@adacore.com>
18601
18602         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
18603         (Gen_Output_File_C): Likewise.
18604         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
18605
18606 2005-03-15  Thomas Quinot  <quinot@adacore.com>
18607
18608         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
18609         is an N_Raise_Constraint_Error node, create a new copy of it without
18610         going through a call to Duplicate_Subexpr.
18611
18612 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
18613             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18614             Nicolas Setton  <setton@adacore.com>
18615             Ed Schonberg  <schonberg@adacore.com>
18616
18617         PR ada/19900
18618         PR ada/19408
18619         PR ada/19140
18620         PR ada/20255
18621         * decl.c (gnat_to_gnu_field): Reject aliased components with a
18622         representation clause that prescribes a size not equal to the rounded
18623         size of their types.
18624         (gnat_to_gnu_entity, case E_Component): Always look at
18625         Original_Record_Component if Present and not the entity.
18626         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
18627         of tagged extension types by not making field for components that are
18628         inside the parent.
18629         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
18630         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
18631         expression to the type of the object when the object is constant.
18632         Reverse defer_debug_incomplete_list before traversing it, so that trees
18633         are processed in the order at which they were added to the list. This
18634         order is important when using the stabs debug format.
18635         If we are deferring the output of debug information, also defer this
18636         output for a function return type.
18637         When adding fields to a record, prevent emitting debug information
18638         for incomplete records, emit the information only when the record is
18639         complete.
18640         (components_to_record): New parameter defer_debug.
18641         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
18642         (gnat_to_gnu_field_decl): New function.
18643         (substitution_list, annotate_rep): Call it.
18644         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
18645         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
18646         No longer update discriminants to not be a COMPONENT_REF.
18647         (copy_alias_set): Strip padding from input type; also handle
18648         unconstrained arrays properly.
18649
18650         * gigi.h (write_record_type_debug_info): New function.
18651         Convert to use ANSI-style prototypes. Remove unused
18652         declarations for emit_stack_check, elab_all_gnat and
18653         set_second_error_entity.
18654         (gnat_to_gnu_field_decl): New decl.
18655
18656         * utils.c (write_record_type_debug_info): New function.
18657         (finish_record_type): Delegate generation of debug information to
18658         write_record_type_debug_info.
18659         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
18660         (update_pointer_to): Fix pasto.
18661         (convert) <UNION_TYPE>: Accept slight type variations when
18662         converting to an unchecked union type.
18663
18664         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
18665         replace the N_Freeze_Entity with a null statement.
18666
18667         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
18668         within a constrained subcomponent of an enclosing record, place the
18669         freeze nodes in the scope stack entry for the enclosing record.
18670         (Undelay_Type): New Subprogram.
18671         (Set_Small_Size): Pass T, the type to modify; all callers changed.
18672         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
18673         within records; allow them to have freeze nodes if their base types
18674         aren't frozen yet.
18675
18676         * exp_util.adb (Remove_Side_Effects): Properly test for
18677         Expansion_Delayed and handle case when it's inside an
18678         N_Qualified_Expression.
18679
18680         * sem_ch3.adb (Derived_Type_Declaration): New predicate
18681         Comes_From_Generic, to recognize accurately that the parent type in a
18682         derived type declaration can be traced back to a formal type, because
18683         it is one or is derived from one, or because its completion is derived
18684         from one.
18685         (Constrain_Component_Type): If component comes from source and has no
18686         explicit constraint, no need to constrain in in a subtype of the
18687         enclosing record.
18688         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
18689         Minor change to propagate Is_Ada_2005 flag
18690
18691         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
18692         Expansion_Delayed is False.
18693         (assoc_to_constructor): Ignore fields that have a
18694         Corresponding_Discriminant.
18695         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
18696         function returns "by target", dereference the target pointer using the
18697         type of the actual return value.
18698         <all>: Be prepared for a null gnu_result.
18699         (processed_inline_subprograms): Check flag_really_no_inline
18700         instead of flag_no_inline.
18701         (set_second_error_entity): Remove unused function.
18702         (gnat_to_gnu, case N_Selected_Component): Call
18703         gnat_to_gnu_field_decl.
18704         (assoc_to_constructor): Likewise.
18705
18706 2005-03-15  Robert Dewar  <dewar@adacore.com>
18707             Ed Schonberg  <schonberg@adacore.com>
18708             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18709
18710         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
18711         Must_Be_Byte_Aligned for cases where we do not need to use a
18712         System.Pack_nn unit.
18713
18714         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
18715         as procedures.
18716         Needed now that we do some processing for IN parameters as well. This
18717         may well fix some unrelated errors.
18718         (Expand_Call): Handle case of unaligned objects (in particular those
18719         that come from packed arrays).
18720         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
18721         renamed entity is an inherited operation, re-expand the call using the
18722         original operation, which is the one to call.
18723         Detect attempt to inline parameterless recursive subprogram.
18724         (Represented_As_Scalar): Fix to work properly with private types
18725         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
18726         accurate estimate. Yields True in far fewer cases than before,
18727         improving the quality of code that depends on this test.
18728
18729         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
18730         over both visible and private declarations to remove them from tree,
18731         and mark subprograms declared in package as eliminated, to prevent
18732         spurious use in subsequent compilation of generic units in the context.
18733
18734         * exp_util.ads: Minor cleanup in variable names
18735
18736         * sem_eval.ads, sem_eval.adb: Minor reformatting
18737         (Compile_Time_Known_Bounds): New function
18738
18739 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
18740
18741         * exp_ch7.adb (Convert_View): Use base types of underlying types when
18742         determining whether an unchecked conversion is needed for the argument
18743         of an initialization call.
18744
18745 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
18746
18747         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
18748         that appears in the instantiation rather than the internal subtype
18749         generated in the wrapper package, to avoid anomalies in gigi when the
18750         target is derived from a private type whose full view is an access type.
18751
18752 2005-03-15  Robert Dewar  <dewar@adacore.com>
18753
18754         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
18755         not needed.
18756         Add documentation to replace the use of this flag
18757         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
18758         the x86_64.
18759
18760 2005-03-15  Thomas Quinot  <quinot@adacore.com>
18761
18762         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
18763         here from exp_attr so it can be shared between exp_attr and exp_dist.
18764         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
18765         all TSS names, not a subset thereof, and the previous name introduced
18766         an unnecessarily confusion that a distinction might exist between
18767         "OK" TSS names and some "not OK" TSS names.
18768
18769 2005-03-15  Doug Rupp  <rupp@adacore.com>
18770
18771         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
18772         Command_Name.
18773
18774 2005-03-15  Pascal Obry  <obry@adacore.com>
18775             Eric Botcazou  <ebotcazou@adacore.com>
18776
18777         PR ada/20226
18778         PR ada/20344
18779         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
18780         when IN_RTS. This is to work around a bootstrap path problem.
18781
18782         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
18783         table and pass it to __gnat_install_SEH_handler().
18784         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
18785
18786         * lang.opt: Fix specification of -fRTS=.
18787
18788 2005-03-15  Doug Rupp  <rupp@adacore.com>
18789             Bernard Banner  <banner@adacore.com>
18790             Vincent Celier  <celier@adacore.com>
18791             Arnaud Charlet  <charlet@adacore.com>
18792
18793         PR ada/6852
18794         This change works fine when gnatlib is built from the gcc directory,
18795         but does not work when using the libada Makefile, since GCC_FOR_TARGET
18796         is not passed to ada/Makefile.in, so more work is needed by a
18797         Makefile/configure expert.
18798
18799         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
18800         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
18801         Setup gnatlink switch -M for x86_64 linux, as it is already setup
18802         for Linux x86.
18803         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
18804         Run ranlib on libgccprefix.a
18805         Define PREFIX_OBJS for Darwin, to build libgccprefix.
18806         (ADA_INCLUDE_SRCS): Split Ada packages.
18807
18808 2005-03-15  Robert Dewar  <dewar@adacore.com>
18809
18810         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
18811
18812         * impunit.adb: Add GNAT.UTF_32
18813
18814         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
18815
18816         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
18817         now uses GNAT.UTF_32).
18818
18819         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
18820         capabilities for categorizing characters using Unicode categories
18821
18822 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
18823
18824         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
18825         instantiation that has been rewritten as a package body, retrieve spec
18826         to generate proper name for implicit_with_clause.
18827         (Install_Parents): Recognize a parent that is an instantiation but has
18828         been rewritten as a package declaration during analysis.
18829
18830 2005-03-15  Javier Miranda  <miranda@adacore.com>
18831             Ed Schonberg  <schonberg@adacore.com>
18832
18833         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
18834         parameter reported some error we immediately return. This improves the
18835         behaviour of the frontend in case of errors.
18836         (Install_Parent, Remove_Parent): Introduce new flag
18837         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
18838         ancestor of a generic child unit, when the child is being instantiated.
18839         (Inline_Instance_Body): If we are compiling the private
18840         part or the body of a child unit, restore the proper visibility of the
18841         parents after compiling the instance body.
18842
18843 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
18844             Javier Miranda  <miranda@adacore.com>
18845
18846         PR ada/15608
18847         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
18848         of a private type, in which case it is underlying_type that denotes
18849         the proper task. Also modified to use the new entity attribute
18850         that is directly available in the task type and task subtype entities
18851         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
18852         arrays when other dimensions than the first are constrained by
18853         discriminants of an enclosing record.
18854         (Insert_Explicit_Dereference): If the prefix is an indexed component or
18855         a combination of indexed and selected components, find ultimate entity
18856         and generate the appropriate reference for it, to suppress spurious
18857         warnings.
18858         (Note_Possible_Modification): If an entity name has no entity, return.
18859         (Is_Variable): A function call never denotes a variable.
18860         (Requires_Transient_Scope): For record types, recurse only on
18861         components, not on internal subtypes that may have been generated for
18862         constrained components.
18863
18864 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
18865
18866         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
18867         Eliminated as candidates for resolution. Both efficient, and avoids
18868         anomalies with operators declared in deleted code.
18869         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
18870         expansion is disabled (as when compiling a generic) to prevent spurious
18871         warnings on prefixes of selected components.
18872
18873 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
18874
18875         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
18876         attached to a list before checking whether it appears in the private
18877         declarations of the current package.
18878         (Make_Inequality_Operator): Insert declaration in proper declarative
18879         list rather than just setting the Parent field, so that
18880         Is_Private_Declaration can handle it properly.
18881
18882 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
18883
18884         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
18885         a renaming a body, check that the renamed subprogram in not intrinsic.
18886         (Find_Direct_Name): If several use_visible entities hide
18887         each other, and the context is a predefined file compiled through
18888         rtsfind, keep only the entity that comes from a predefined file.
18889
18890 2005-03-15  Geert Bosch  <bosch@adacore.com>
18891
18892         * s-fatgen.adb (Valid): Extend special exceptions to account for long
18893         long float padding to also cover AMD64 and IA64.
18894
18895 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
18896
18897         * s-imgwch.adb: Add with and use of Interfaces.
18898         (Img_Wide_Character): Change type of Val to Unsigned_16.
18899         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
18900
18901 2005-03-15  Matthew Gingell  <gingell@adacore.com>
18902
18903         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
18904
18905 2005-03-15  Robert Dewar  <dewar@adacore.com>
18906
18907         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
18908
18909         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
18910
18911         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
18912
18913 2005-03-15  Robert Dewar  <dewar@adacore.com>
18914
18915         * s-bitops.adb, s-bitops.ads,
18916         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
18917         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
18918         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
18919         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
18920         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
18921         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
18922         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
18923         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
18924         reformatting.
18925
18926 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
18927
18928         * utils2.c (build_binary_op): Fix typo.
18929
18930 2005-03-15  Doug Rupp  <rupp@adacore.com>
18931
18932         * s-crtl.ads (popen,pclose): New imports.
18933
18934 2005-03-15  Cyrille Comar  <comar@adacore.com>
18935
18936         * comperr.adb (Compiler_Abort): remove references to obsolete
18937         procedures in the bug boxes for various GNAT builds.
18938
18939 2005-03-15  Vincent Celier  <celier@adacore.com>
18940
18941         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
18942
18943 2005-03-15  Geert Bosch  <bosch@adacore.com>
18944             Arnaud Charlet  <charlet@adacore.com>
18945             Robert Dewar  <dewar@adacore.com>
18946             Cyrille Comar  <comar@adacore.com>
18947             Sergey Rybin  <rybin@adacore.com>
18948
18949         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
18950         too specific and long-winded to be appropriate for the GNAT User's
18951         Guide.
18952         Warn about use of GCC switches not documented in the GNAT User's Guide,
18953         as these may cause generated code to not conform to Ada semantics.
18954         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
18955         Add documentation for -gnat95 and -gnat05 switches
18956         Remove paragraph documenting obsolete way to refer to third party
18957         libraries.
18958         Add a few references to Ada_05 that were missing.
18959         Update documentation on -gnatZ/-gnatL.
18960         Document limitation when using -m64 under Solaris.
18961         Change the "Name Casing" subsection of the pretty-printer section
18962         according to the changes in the dictionary processing.
18963
18964         * gnat_rm.texi: Document the Ada_05 pragma.
18965         Section on record representation clauses describes the new more
18966         relaxed rules about placement of large packed bit array components.
18967         Add documentation of GNAT.UTF_32
18968
18969 2005-03-12  Daniel Berlin <dberlin@dberlin.org>
18970
18971         * misc.c (gnat_post_options): Turn off structural
18972         aliasing for now.
18973
18974 2005-03-08  Laurent Guerby <laurent@guerby.net>
18975
18976         * system-linux-sparc.ads: Fix typo in previous commit.
18977
18978 2005-03-07  James A. Morrison <phython@gcc.gnu.org>
18979             Laurent Guerby <laurent@guerby.net>
18980
18981         PR ada/20035
18982         * system-linux-sparc.ads: New.
18983         * Makefile.in: Add sparc linux entry.
18984
18985 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
18986
18987         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
18988         parameters as unused.
18989
18990 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
18991         Partial merge from libada-gnattools-branch:
18992
18993         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
18994         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
18995         into code in gnattools/Makefile.in.  Remove direct dependencies on
18996         stamp-tools by tools clauses.
18997         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
18998         * config-lang.in: Add gnattools to $lang_dirs.
18999
19000 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
19001
19002         PR ada/19942
19003         * utils.c (gnat_type_for_mode): Return null instead of ICE because
19004         we asked for an unknown mode.
19005
19006 2005-02-12  Richard Henderson  <rth@redhat.com>
19007
19008         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
19009         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
19010
19011 2005-02-10  Andreas Jaeger  <aj@suse.de>
19012
19013         * init.c (__gnat_initialize): Mark parameter as unused.
19014
19015 2005-02-09  Doug Rupp  <rupp@adacore.com>
19016
19017         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
19018         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
19019
19020 2005-02-09  Doug Rupp  <rupp@adacore.com>
19021
19022         * gnatchop.adb (dup, dup2),
19023         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
19024
19025         * gnatlbr.adb (mkdir),
19026         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
19027
19028         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
19029
19030 2005-02-09  Doug Rupp  <rupp@adacore.com>
19031
19032         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
19033
19034 2005-02-09  Robert Dewar  <dewar@adacore.com>
19035             Thomas Quinot  <quinot@adacore.com>
19036             Javier Miranda  <miranda@adacore.com>
19037             Pascal Obry  <obry@adacore.com>
19038             Ed Schonberg  <schonberg@adacore.com>
19039             Doug Rupp  <rupp@adacore.com>
19040             Gary Dismukes  <dismukes@adacore.com>
19041             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19042
19043         * g-zstspl.ads: New file.
19044
19045         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
19046
19047         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
19048         Ada 95 mode
19049         Add definition of Wide_Wide_Space for AI-285
19050
19051         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
19052         interface (to support Ada 95 and Ada 2005 units).
19053         Add Unbounded_IO files
19054         Add entries for Wide_Wide packages for AI-285
19055         Add list of containers packages to Ada 2005 unit list
19056
19057         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
19058         support new Unbounded_IO package cleanly.
19059
19060         * g-utf_32.ads, g-utf_32.adb: New files.
19061
19062         * Makefile.rtl: Add entry for g-utf_32
19063         Add new files for Unbounded_IO
19064         Adjust make file for new AI-285 wide wide packages
19065         Add AI-302 containers to the run time.
19066
19067         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
19068         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
19069         subprograms for AI-301.
19070
19071         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
19072
19073         * a-stunau.ads: Minor comment correction
19074
19075         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
19076         etc.
19077         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
19078         (Check_RPC): Update to match changes in expanded code.
19079         Clean up unused entity.
19080
19081         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
19082         was not taken into account.
19083         This includes proper initialization with Normalize_Scalars.
19084         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
19085         normalize scalars cases (particularly the latter) to do a better job
19086         of finding invalid representations.
19087
19088         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
19089
19090         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
19091         used
19092
19093         * exp_dist.adb: Add support for wide wide character type
19094         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
19095         private part, generate stub bodies at the end of the private part,
19096         not the visible part.
19097         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
19098         PolyORB support.
19099         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
19100         generic wrapper to execute final processing after completing the
19101         expansion of the RPC receiver for an RACW.
19102
19103         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
19104         packages and attributes.
19105         (Preset_Names): Addition of the new reserved words of Ada 2005,
19106         that is interface, overriding and synchronized.
19107         (Get_Pragma_Id): Give support to the use of the new reserved word
19108         "interface" as a pragma name.
19109         (Is_Pragma_Name): Give support to the use of the new reserved word
19110         "interface" as a pragma name.
19111         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
19112         attribute implementation.
19113
19114         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
19115         checks to entities that are output parameters of Asm operations.
19116         Handle the Stream_Size attribute.
19117         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
19118
19119         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
19120
19121         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
19122         for second parameter being 0.0.
19123         Add support for wide wide character type.
19124         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
19125
19126         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
19127         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
19128         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
19129         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
19130         for wide wide character cases.
19131
19132         * cstand.adb: Create entities for Wide_Wide_Character and
19133         Wide_Wide_String.
19134
19135         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
19136         accordance with AI-258.
19137         Add new declarations for 16/32 bit C character types (Part of AI285)
19138
19139         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
19140         (Obsolescent_Warning): New field
19141         (Rep_Clause): New local subprogram used to share code. Returns the rep
19142         clause for which the name is given in parameter.
19143         (Has_Stream_Size_Clause): New routine.
19144         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
19145         (Address_Clause): Implementation is now using Rep_Clause.
19146         (Alignment_Clause): Idem.
19147         (Size_Clause): Idem.
19148
19149         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
19150         entity in non-Ada 2005 mode and generate warning.
19151
19152         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
19153         (Prag): Code cleanup. Remove old gnat pragma "overriding"
19154
19155         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
19156         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
19157         on the named unit if the pragma is not in the current compilation unit,
19158         so that elaboration calls in the current unit can set up an elaboration
19159         dependency on the named unit, as needed.
19160         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
19161         subprogram as well as for subprograms declared within a package.
19162         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
19163         pragma overriding.
19164
19165         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
19166         to z) to avoid some instances of duplication for Wide_Wide packages.
19167
19168         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
19169         characters.
19170
19171         * scn.adb: Char_Literal_Value field is now a Uint
19172
19173         * scng.adb: Significant rewrite to handle new Ada 2005 features
19174         allowing wide and wide wide characters in program text, e.g. for
19175         identifiers, as described in AI-285.
19176         (Set_Reserved): New procedure, makes setting up keywords cleaner.
19177         (Initialize_Scanner): Register the new reserved words of Ada 2005.
19178         (Scan): Give support to the new reserved words.
19179
19180         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
19181         warning notifying that interface, overriding, and synchronized are
19182         new reserved words.
19183         (P_Pragma): Allow the use of the new reserved word "interface" as
19184         a pragma name.
19185
19186         * gnatls.adb, gnatbind.adb,
19187         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
19188         identifiers named "interface" to "SAL_Interface".
19189
19190         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
19191         (Structured Exception handling).
19192         (Gen_Main_C): Idem.
19193
19194         * bindgen.adb:
19195         (Gen_Main_Ada): Set the default exit code if specified.
19196         (Gen_Main_C): Likewise.
19197         Part of *DC20-006.
19198         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
19199         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
19200
19201         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
19202         new -Xnnn switch.
19203
19204         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
19205         has a collision with the new Ada 2005 "interface" reserved word.
19206
19207         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
19208         generate a warning notifying that interface, overriding, and
19209         synchronized are new reserved words.
19210
19211         * scans.ads (Token_Type): Addition of the tokens corresponding to the
19212         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
19213         and Tok_Synchronized.
19214
19215         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
19216         "dispatching" rather than "primitive" operations, since dispatching
19217         calls are now allowed to abstract formal subprograms (which are not
19218         primitive).
19219         Char_Literal_Value field is now a Uint
19220         (Resolve_Slice): If the prefix is an access to an unconstrained array,
19221         compute the actual subtype of the designated object to impose the proper
19222         index constraints.
19223         (Resolve_Selected_Component): Do not insert an access check if the
19224         prefix is an access type: such a node is expanded into an explicit
19225         dereference, on which the access check is performed anyway. Removes
19226         expensive duplicate checks.
19227         (Resolve_Call): Use new flag Is_Obsolescent and field
19228         Obsolescent_Warning so that pragma Obsolescent works on library
19229         subprograms.
19230         Add support for wide wide character type
19231         (Resolve_Allocator): Replace the error message on wrong null-exclusion
19232         value by a warning message.
19233         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
19234         as fixed-point, and one of the operands is non-static and universal, it
19235         can only be an illegal exponentiation operation, in which case there is
19236         no real value to retrieve.
19237
19238         * exp_strm.adb: Add support for wide wide character type
19239         (Build_Elementary_Input_Call): Compute the size of the stream element by
19240         querying the rep chain to find the Stream_Attribute attribute value.
19241         (Build_Elementary_Write_Call): Ditto.
19242
19243         * sem_aggr.adb: Char_Literal_Value field is now a Uint
19244         Add support for wide wide character type
19245         Replace the error messages on wrong null-exclusion value by warnings
19246         as described in Ada 2005.
19247         (Resolve_Extension_Aggregate): Document the fact that the error
19248         message on class-wide expressions in extensions aggregates.
19249
19250         * sem_case.adb: Add support for wide wide character type
19251
19252         * sem_ch13.adb: Add support for wide wide character type
19253         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
19254
19255         * sem_ch3.adb: Add support for wide wide character type
19256         (Process_Subtype): If constraint is illegal for the type, set Ekind of
19257         now-useless Itype, to prevent cascaded errors on a compiler built
19258         without -gnatp.
19259
19260         * sem_ch8.adb: Add with and use of Sem_Disp.
19261         (Analyze_Subprogram_Renaming): Replace unclean uses of
19262         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
19263         of Corresponding_Spec to Empty).
19264         (Attribute_Renaming): Replace use of Corresponding_Spec with
19265         Corresponding_ Formal_Spec and simplify condition.
19266         (Use_One_Package): Check that scope of homonym of identifier is defined,
19267         before checking whether it is a wrapper package.
19268         Add support for wide wide character type
19269
19270         * sem_eval.adb: Add support for wide wide character type.
19271         (Eval_Arithmetic_Op): Check for compile time known signed integer
19272         overflow in the non-static case.
19273         (Subtypes_Statically_Match): A formal scalar type and its base type do
19274         not statically match.
19275
19276         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
19277         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
19278         subtype).
19279         (Unit_Declaration_Node): Ditto.
19280         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
19281         has a packed array type, the prefix has been rewritten into a type
19282         conversion. Determine variable-ness from the converted expression.
19283         Handle wide wide character cases.
19284
19285         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
19286
19287         * stringt.ads, stringt.adb: Handle full UTF-32 range.
19288         Remove ["0A"] from comment, since it can look like a line terminator.
19289         Currently we don't permit this, but this is under discussion by the
19290         ARG, and it is easy enough to use a different example.
19291
19292         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
19293         handling UTF-32 encoding for wide wide character.
19294         Implement new brackets coding ["hhhhhhhh"]
19295         Add UTF-8 encodings for full UTF-32 range
19296
19297         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
19298
19299         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
19300         bit range Add full UTF-32 support.
19301         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
19302         notify that constraint error will be raised at run-time
19303         because a null value is assigned to a null-excluding object.
19304         Remove some obsolete declarations and make Char_Code
19305         unsigned.
19306
19307         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
19308         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
19309         Rcheck subprograms.
19310
19311         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
19312         wrong null-exclusion value by a warning message.
19313         (Enable_Range_Check): Do range check if the prefix is an
19314         explicit dereference whose designated object is an unconstrained array.
19315         Current algorithm for removing duplicate checks is over-eager in this
19316         case.
19317
19318         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
19319         null-exclusion value by a warning message
19320
19321         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
19322         completely. Add support for Uint2 field
19323
19324         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
19325         exp_prag.adb: Char_Literal_Value field is now a Uint.
19326
19327         * exp_util.adb (Insert_Actions): Replace
19328         N_Formal_Subprogram_Declaration by
19329         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
19330         Char_Literal_Value field is now a Uint.
19331
19332         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
19333         defined for subprogram renaming declarations. When set, the field
19334         indicates the defining entity of a corresponding formal subprogram
19335         when the renaming corresponds to a formal subprogram association in an
19336         instantiation.
19337         (Set_Corresponding_Formal_Spec): New procedure to return
19338         Corresponding_Formal_Spec field.
19339         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
19340         (which is now a subtype).
19341         Char_Literal_Value field is now a Uint
19342
19343         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
19344         pointer to the base of the dispatch table.
19345         Minor changes to comments.
19346         (Controlling_Type): New function for determining the tagged type
19347         associated with a tagged primitive subprogram.
19348         (Expand_Dispatching_Call): Add support for a controlling actual that is
19349         directly a value of type Ada.Tag rather than a tagged object.
19350
19351         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
19352         describing the new layout.
19353         (Dispatch_Table): The expander computes the actual array size, allocates
19354         the Dispatch_Table record accordingly, and generates code that displaces
19355         the base of the record after the Typeinfo_Ptr component. The access to
19356         these components is done by means of local functions.
19357         (Offset_To_Top): New function.
19358         (Typeinfo_Ptr): New function.
19359         (Get_TSD): Modified to access the new position of the TSD.
19360         (Set_TSD): Modified to save the TSD in its new position.
19361
19362         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
19363         case of formal abstract subprograms. Add check and message for -gnat05.
19364         Update comments.
19365
19366         * sem_ch12.adb: Add with and use for Sem_Disp.
19367         (Analyze_Associations): Minor change from "=" to "in" for use of
19368         N_Formal_Subtype_Declaration (which is now a subtype).
19369         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
19370         N_Formal_Subtype_Declaration (which is now a subtype).
19371         (Analyze_Formal_Subprogram): Add handling for
19372         N_Formal_Abstract_Subprogram, marking the formal as abstract and
19373         dispatching, setting the controlling status of the formal parameters
19374         and result, and issuing an error if there is no controlling type for
19375         the formal subprogram.
19376         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
19377         which is an unclean use of that field, we set the new field
19378         Corresponding_Formal_Spec to make the formal subprogram available to
19379         processing in Analyze_Subprogram_Declaration.
19380         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
19381         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
19382         Constrained, so that it is is does not statically match its anonymous
19383         base type.
19384
19385         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
19386         abstract formal subprograms in error check for functions returning
19387         abstract types. Set scope of new designator for
19388         a parameterless subprogram, so that it is available when checking the
19389         body for nested subprograms, before full analysis of said body.
19390         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
19391         subprogram only if inner one comes from source.
19392         (Analyze_Function_Call): If the call is given in object notation, the
19393         analysis of the name rewrites the node and analyzes it with the proper
19394         argument list. After analyzing the name, if the call has been rewritten
19395         and the result type is set, no further analysis is needed.
19396         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
19397         mark in function specification, in a context where the formals are
19398         visible and hide outer homographs.
19399
19400         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
19401         as the tagged type for the cases of abstract formal subprograms and
19402         renamings of those.  Clean up spec comments.
19403         (Check_Dispatching_Context): Add error message to indicate "abstract
19404         procedure", covering the case of a call to a formal abstract procedure
19405         that has statically tagged operands.
19406         (Check_Dispatching_Call): Check for the case of an actual given by
19407         a tag-indeterminate function call whose type is an ancestor of the
19408         containing call's associated tagged type. This situation can occur
19409         for inherited primitives with function defaults. In this case we
19410         use the tagged type's tag directly as the controlling argument for
19411         the calls.
19412         (Expand_Call): Name change on call to Expand_Dispatch_Call.
19413
19414         * sprint.adb (Sprint_Node_Actual): Split
19415         N_Formal_Subprogram_Declaration into two alternatives for the new
19416         cases N_Formal_Abstract_Subprogram_Declaration and
19417         N_Formal_Concrete_Subprogram_Declaration.
19418         Char_Literal_Value field is now a Uint.
19419
19420         * trans.c: Get rid of junk Uint2 reference.
19421         Char_Literal_Value field is now a Uint.
19422         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
19423         (gigi): Correct third arg to gimplify_body.
19424
19425         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
19426         (TYPE_LANG_FLAG_0): Check for record or union.
19427
19428         * treepr.adb: Char_Literal_Value field is now a Uint
19429
19430         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
19431         UI_From_CC.
19432
19433         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
19434         Add full UTF-32 support
19435         Char_Code is now 32 bits
19436
19437         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
19438         wide character UTF_32 line terminators.
19439         Initialize Main_Source_File to avoid error when no main
19440         source is loaded.
19441
19442         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
19443         (Main_Source_File) when no main source has been loaded, to avoid
19444         potential crash.
19445
19446 2005-02-09  Robert Dewar  <dewar@adacore.com>
19447
19448         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
19449         Fix name of Set routine
19450
19451         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
19452         fixed packages.
19453
19454         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
19455         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
19456         fixed packages
19457
19458         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
19459         forms of Get_Line subprograms for AI-301.
19460
19461         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
19462         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
19463         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
19464         a-stwima.ads: Minor reformatting.
19465
19466 2005-02-09  Doug Rupp  <rupp@adacore.com>
19467             Thomas Quinot  <quinot@adacore.com>
19468
19469         * adaint.c, adaint.h
19470         [VMS] (to_ptr32): New function.
19471         (MAYBE_TO_PTR32): New macro.
19472         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
19473         for pointer size.
19474         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
19475         [VMS] (#define fork()): Remove since unneccessary.
19476         (__gnat_set_close_on_exec): New routine to support
19477         GNAT.OS_Lib.Set_Close_On_Exec.
19478
19479         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
19480         the parent side as close-on-exec so that they are not inherited by the
19481         child.
19482
19483         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
19484         set or clear the FD_CLOEXEC flag on a file descriptor.
19485
19486 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
19487             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19488
19489         PR ada/19386
19490         * decl.c:
19491         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
19492         on the field if Pragma Component_Alignment (Storage_Unit).
19493         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
19494         side-effects as if it were a constant; also make SAVE_EXPR to protect
19495         side-effects.
19496         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
19497         UNION_TYPE.
19498         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
19499         (components_to_record): Test it.
19500         Fix improper usage of REFERENCE_CLASS_P.
19501
19502         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
19503         RECORD_TYPE.
19504
19505         * utils2.c: Minor reformatting.
19506
19507         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
19508         handle other cases like RECORD_TYPE.
19509
19510         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
19511
19512 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
19513
19514         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
19515         component of an array of arrays in an assignment context, and the
19516         aggregate has component associations that require sliding on
19517         assignment, force reanalysis of the aggregate to generate a temporary
19518         before the assignment.
19519         (Must_Slide): Make global to the package, for use in Gen_Assign.
19520
19521 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
19522
19523         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
19524         unchecked union with no inferable discriminants, return a
19525         Raise_Program_Error node, rather than inserting it at the point the
19526         type is frozen.
19527         (Expand_Record_Equality, Component_Equality): Handle properly the case
19528         where some subcomponent is an unchecked union whose generated equality
19529         code raises program error.
19530
19531 2005-02-09  Doug Rupp  <rupp@adacore.com>
19532
19533         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
19534         [VMS] (#define exit hack): Remove.
19535
19536 2005-02-09  Pascal Obry  <obry@adacore.com>
19537             Arnaud Charlet <charlet@adacore.com>
19538
19539         * init.c (__gnat_initialize): Add a new parameter eh which contains the
19540         address of the exception registration. The Win32 version of this
19541         routine calls __gnat_install_SEH_handler() to initialize the SEH
19542         (Structured Exception Handling) handler.
19543         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
19544         SEH (Structured Exception Handling) now.
19545         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
19546         (__gnat_initialize for ppc-vxworks): Adjust comments and the
19547         preprocessor condition protecting the call to the extra eh setup
19548         subprogram, which is only available for the ppc target.
19549         (__gnat_clear_exception_count): replaced reference to
19550         variable taskIdCurrent by call to taskIdSelf(), cleaner.
19551
19552         * seh_init.c: New file.
19553
19554         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
19555         (GNATBIND_OBJS): Idem.
19556
19557         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
19558         routine takes a new parameter (a pointer to the exception registration
19559         for the SEH (Structured Exception Handling) support.
19560
19561         * raise.h: (__gnat_install_SEH_handler): New prototype.
19562         Update copyright notice.
19563
19564         * s-tassta.adb (Task_Wrapper): Declare the exception registration
19565         record and initialize it by calling __gnat_install_SEH_handler.
19566
19567 2005-02-09  Vincent Celier  <celier@adacore.com>
19568
19569         * make.adb (Gnatmake): Do not fail when the main project has no object
19570         directory.
19571
19572 2005-02-09  Doug Rupp  <rupp@adacore.com>
19573
19574         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
19575         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
19576         [VMS]: Add translations for g-enblsp.adb.
19577
19578         * s-asthan-vms.adb: Removed.
19579         * s-asthan-vms-alpha.adb: Added.
19580
19581 2005-02-09  Pascal Obry  <obry@adacore.com>
19582
19583         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
19584         (LIBGNAT_OBJS): Add seh_init.o.
19585
19586 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
19587
19588         PR ada/16592
19589         * Makefile.in: Link all gnat tools with -static-libgcc, since
19590         -shared-libgcc is now used by default on some systems (e.g. linux with
19591         recent binutils).
19592         Remove references to Makefile.prolog/generic, no longer used.
19593
19594 2005-02-09  Vincent Celier  <celier@adacore.com>
19595
19596         * prj-makr.adb (Process_Directory): Put file name in canonical case
19597         before matching against the patterns.
19598         If gnatname has been invoked as <prefix>-gnatname
19599         then invoke the compiler as <prefix>-gcc, not just "gcc".
19600
19601 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
19602
19603         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
19604         with expansion disabled. The actual subtype is needed among other
19605         places when the selected component appears in the context of a loop
19606         bound, and denotes a packed array.
19607         (Operator_Check): Always use the first subtype in the
19608         error message, to avoid the appearance of internal base types.
19609         (Transform_Object_Operation): Copy each actual in full
19610         to the parameter associations of the constructed call, rather than
19611         using the shallow copy mechanism of New_Copy_List. This ensures that
19612         the chaining of named associations is done properly.
19613         (Complete_Object_Operation): Rewrite node, rather than
19614         replacing it, so that we can trace back to the original selected
19615         component.
19616
19617         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
19618         and calls that use object notation, if the called function is not
19619         declared  in a withed unit, place the elaboration constraint on the
19620         unit in the context that makes the function accessible.
19621         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
19622         imposes an elaboration constraint between two packages.
19623
19624 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
19625
19626         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
19627         views of a private type after handling its private dependents, to
19628         maintain proper stack discipline between entry and exit from the
19629         package.
19630
19631 2005-02-09  Cyrille Comar  <comar@adacore.com>
19632
19633         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
19634         Minor reformatting.
19635
19636 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
19637
19638         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
19639         fields for foreign threads.
19640
19641 2005-02-09  Doug Rupp  <rupp@adacore.com>
19642
19643         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
19644         recursion warnings when compiled with -gnatdm.
19645
19646 2005-02-09  Robert Dewar  <dewar@adacore.com>
19647
19648         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
19649         Slight fix to documentation of -gnaty with no parameters
19650
19651         * xr_tabls.ads: Add ??? comment for missing overall comment
19652
19653         * xsinfo.adb: Make default file name be sinfo.h, since this is what
19654         we now use by default.
19655
19656         * xsnames.adb: Adjust end of file test to look for five space followed
19657         by '#' instead of six spaces. The format of xsnames.adb was modified
19658         in the last update.
19659
19660         * a-numeri.ads: Add reference to AI-388 for greek letter pi
19661         identifier.
19662
19663         * clean.adb: Minor reformatting.
19664
19665         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
19666         gnatname.adb: Minor reformatting
19667         Add 2005 to copyright output when utility is run
19668
19669         * csets.adb: Eliminate obsolete comment
19670
19671         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
19672         Update comments.
19673
19674         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
19675
19676 2005-02-09  Sergey Rybin  <rybin@adacore.com>
19677
19678         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
19679         the difference between compact and incompact layout and add the record
19680         representation clause to the example illustrating different layouts.
19681         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
19682         component clauses").
19683
19684 2005-02-09  Florian Villoing  <villoing@adacore.com>
19685
19686         * gnat_ugn.texi: Fix typos.
19687         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
19688         @file.
19689         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
19690         in the generated documentation.
19691
19692 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
19693
19694         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
19695         longer supported.
19696         Update linker wrapper when linking with non GNU C++.
19697
19698 2005-02-09  Pascal Obry  <obry@adacore.com>
19699
19700         * gnat_ugn.texi:
19701         Document the procedure to debug the DllMain routine on Windows.
19702         Add note about -funwind-tables and mixed Ada and C/C++ programming in
19703         ZCX mode.
19704         Document new BIND qualifer /RETURN_CODES=VMS.
19705
19706 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
19707
19708         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
19709         Edited gnatmetric chapter
19710
19711 2005-02-09  Robert Dewar  <dewar@adacore.com>
19712
19713         * gnat_rm.texi:
19714         Changes to document new wide wide character support
19715         For AI-285
19716         Update documentation on Normalize_Scalars and Initialize_Scalars
19717
19718 2005-02-09  Pascal Obry  <obry@adacore.com>
19719
19720         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
19721
19722 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
19723
19724         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
19725         from the VxWorks kernel) that is needed for getting the active
19726         priority of the different tasks.
19727
19728         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
19729         Use a pragma Elaborate_Body in the spec file instead.
19730         Noticed by code reading.
19731
19732 2005-02-09  Thomas Quinot  <quinot@adacore.com>
19733
19734         * exp_util.ads: Minor correction in comment.
19735
19736 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
19737
19738         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
19739         since this procedure is now too complex to be worth inlining.
19740
19741 2005-02-09  Richard Henderson  <rth@redhat.com>
19742
19743         * utils.c (gnat_define_builtin): Remove.
19744         (gnat_install_builtins): Use build_common_builtin_nodes.
19745
19746 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
19747
19748         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
19749         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
19750         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
19751         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
19752         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
19753         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
19754         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
19755         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
19756         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
19757         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
19758         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
19759         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
19760         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
19761         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
19762         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
19763         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
19764         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
19765         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
19766         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
19767         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
19768         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
19769         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
19770         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
19771         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
19772         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
19773         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
19774         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
19775         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
19776         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
19777         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
19778         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
19779         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
19780         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
19781         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
19782         library.
19783
19784 2005-01-27  Laurent GUERBY <laurent@guerby.net>
19785
19786         * Makefile.in: Fix a-intnam.ads from previous commit,
19787         add 2005 to copyright.
19788         * a-intman-rtems.ads: Renamed to...
19789         * a-intnam-rtems.ads:
19790
19791 2005-01-27  Laurent GUERBY <laurent@guerby.net>
19792
19793         * Makefile.in: Rename GNAT RTEMS specific files.
19794         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
19795         5rosinte.ads, 5rparame.adb: Replaced by files below.
19796         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
19797         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
19798
19799 2005-01-27  Joel Sherrill <joel.sherrill@oarcorp.com>
19800             Laurent GUERBY <laurent@guerby.net>
19801
19802         PR ada/19488
19803         * 5rosinte.ads: Add No_Key constant.
19804         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
19805         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
19806
19807 2005-01-26  Laurent GUERBY <laurent@guerby.net>
19808
19809         PR ada/19414
19810         * i-cobol.adb (Valid_Numeric): Handle zero length case.
19811
19812 2005-01-20  Richard Henderson  <rth@redhat.com>
19813
19814         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
19815         a-intnam-linux.ads and system-linux-alpha.ads.
19816         * a-intnam-linux-alpha.ads: Remove file.
19817         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
19818         * system-linux-alpha.ads: New file.
19819
19820 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
19821
19822         PR ada/13470
19823         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
19824         set to the new string.
19825
19826 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
19827
19828         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
19829         to True.
19830
19831 2005-01-18  Richard Henderson  <rth@redhat.com>
19832
19833         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
19834         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
19835         for alpha-linux.
19836         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
19837
19838 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
19839
19840         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
19841         (GCC_ZCX_Support): Likewise.
19842
19843 2005-01-11  Bastian Blank  <waldi@debian.org>
19844
19845         * system-linux-s390.ads: Define Preallocated_Stacks.
19846         * system-linux-s390x.ads: Likewise.
19847
19848 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
19849
19850         * gnat_ugn.texi: Fix texi errors with null variables.
19851
19852 2005-01-03  Thomas Quinot  <quinot@adacore.com>
19853
19854         * gen-soccon.c: New utility program to generate g-soccon.ads
19855         automatically.
19856
19857         * socket.c, gsocket.h: Split inclusion of system header files into a
19858         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
19859
19860         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
19861         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
19862         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
19863         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
19864         should not be edited by hand anymore, but should be regenerated using
19865         gen-soccon.
19866
19867 2005-01-03  Robert Dewar  <dewar@adacore.com>
19868             Ed Schonberg  <schonberg@adacore.com>
19869             Vincent Celier  <celier@adacore.com>
19870
19871         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
19872         on/off, since this is an obsolescent feature, for which we now generate
19873         a warning.
19874
19875         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
19876         warning mode is set and obsolescent usage of this attribute occurs.
19877         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
19878         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
19879         predates, and partly motivates, the adoption of the AI.
19880         Implement new Ada 2005 attribute Mod
19881
19882         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
19883         attribute Mod.
19884
19885         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
19886
19887         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
19888         pragma restrictions.
19889         New entry for Ada 2005 attribute Mod.
19890
19891         * par-prag.adb:
19892         Add recognition of new pragma Restrictions No_Dependence
19893         Recognize restriction No_Obsolescent_Features at parse time
19894
19895         * bcheck.adb: Add circuitry for checking for consistency of
19896         No_Dependence restrictions.
19897
19898         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
19899         restrictions.
19900
19901         * restrict.ads, restrict.adb: Add subprograms to deal with
19902         No_Dependence restrictions.
19903
19904         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
19905         restrictions.
19906
19907         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
19908         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
19909
19910         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
19911         dummy parameter to scng instantiation.
19912         Needed for new restriction No_Obsolescent_Features
19913
19914         * scn.adb: (Obsolescent_Check): New procedure
19915         Needed for new restriction No_Obsolescent_Features
19916
19917         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
19918         specified by AI-285, needed for implementation of AI-388 (adding greek
19919         pi to Ada.Numerics).
19920         Add new generic formal to scng, needed for new restriction
19921         No_Obsolescent_Features.
19922
19923         * s-rident.ads: Add new restriction No_Obsolescent_Features.
19924
19925         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
19926         restrictions lines.
19927         (Scan_ALI): When finding an unexpected character on an R line, raise
19928         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
19929         Ignore_Errors is True, default restrictions are set and scanning of the
19930         ALI file continues with the next line. Also, when Bad_R_Line is raised
19931         and Ignore_Errors is True, skip to the end of le line.
19932
19933         * sem_ch10.adb: Check that explicit with's do not violate
19934         No_Dependence restrictions.
19935         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
19936         illegal context clauses containing child units of instance.
19937
19938         * sem_prag.adb: Processing and checking for new No_Dependence
19939         restrictions.
19940         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
19941         analyze and check the External argument.
19942
19943         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
19944
19945 2005-01-03  Robert Dewar  <dewar@adacore.com>
19946
19947         * atree.adb: Add a fifth component to entities
19948         This allows us to add 32 flags and four new fields
19949
19950         * atree.ads: Add a fifth component to entities
19951         This allows us to add 32 flags and four new fields
19952
19953         * einfo.ads, einfo.adb: Document new fields and new flags now available
19954         Add routines for printing new fields
19955
19956         * treepr.adb: Call routines to print out additional fields if present
19957
19958 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
19959
19960         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
19961         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
19962
19963         * Makefile.in: Add support to build shared Ada libraries on solaris x86
19964         Remove gpr2make, replaced by gprmake.
19965         Remove references to gnatmem and libaddr2line.
19966         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
19967         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
19968         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
19969         a-numaux-darwin.ads and a-numaux-darwin.adb
19970         Enable mlib-tgt-lynxos.adb on lynxos.
19971
19972         * Make-lang.in: Remove rules for gpr2make.
19973         When generating sdefault.adb, do not call Relocate_Path
19974         on S3 for function Target_Name, as it is not a path.
19975         Remove references to gnatmem and libaddr2line.
19976
19977         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
19978         files.
19979
19980 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
19981
19982         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
19983         address is incompatible with its base type alignment constraints when
19984         this can be decided statically.
19985
19986 2005-01-03  Olivier Hainque  <hainque@adacore.com>
19987
19988         * decl.c (compatible_signatures_p): New function. The intended purpose
19989         is to check if two function signatures for a call-site and a callee are
19990         compatible enough for the call to be valid. The underlying purpose is
19991         to check if a call to a mapped builtin is using the right interface.
19992         The current code actually does not check antyhing - this a placeholder
19993         for future refinements.
19994         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
19995         builtin calls for convention Intrinsic.
19996
19997         * gigi.h (builtin_decl_for): Declare (new function).
19998
19999         * utils.c (gnat_install_builtins): Install the target specific builtins.
20000         (builtin_decl_for): New function, provide a dummy body for now.
20001
20002 2005-01-03  Geert Bosch  <bosch@adacore.com>
20003
20004         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
20005         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
20006         (Pred): Implement in terms of Succ.
20007
20008         * trans.c (convert_with_check): Reimplement conversion of float to
20009         integer.
20010
20011 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
20012             Vincent Celier  <celier@adacore.com>
20013
20014         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
20015         bounds can be negative, and must be declared Int, not Nat.
20016
20017         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
20018         array is checked after using the index in the array.
20019
20020         * makegpr.adb (Add_Switches): Check if there is a package for the
20021         processor. If there is no package, do not look for switches.
20022
20023 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
20024
20025         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
20026         generation of predefined stream operations (specs and bodies) should
20027         proceed. Under various restrictions these subprograms must not be
20028         generated.
20029
20030 2005-01-03  Thomas Quinot  <quinot@adacore.com>
20031
20032         * exp_dist.adb:
20033         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
20034         amount of PCS-specific code in RACW stubs generation.
20035         (Copy_Specification): Set Etype on copied formal parameter entities, as
20036         this information is needed for PolyORB stubs generation.
20037         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
20038         variable Dynamic_Async.
20039         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
20040         (Build_RPC_Receiver_Specification): Make generic again, as recent
20041         changes have allowed RPC receivers to have the same profile for both
20042         variants of the PCS.
20043         Reorganise RPC receiver generation to reduce differences between the
20044         structure of GARLIC and PolyORB RPC receivers.
20045         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
20046         PCS-specific.
20047         Simplify elaboration code for RCI packages.
20048
20049         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
20050         generation to reduce differences between the structure of GARLIC and
20051         PolyORB RPC receivers.
20052
20053         * s-stratt.adb: Fix typo in comment.
20054
20055 2005-01-03  Thomas Quinot  <quinot@adacore.com>
20056
20057         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
20058         copied from Make_Init_Call).
20059
20060         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
20061         reads and assignments on a temporary variable declared with appropriate
20062         discriminants.
20063
20064 2005-01-03  Robert Dewar  <dewar@adacore.com>
20065
20066         * i-c.adb (To_C): Raise CE if string is null and Append_Null
20067
20068 2005-01-03  Robert Dewar  <dewar@adacore.com>
20069
20070         * i-cstrin.adb (Update): Do not append a null in form called with a
20071         String. This avoids unintended behavior.
20072
20073 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
20074
20075         PR ada/17527
20076         * init.c: Fix warnings on Free BSD section.
20077
20078 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
20079
20080         PR ada/16949
20081         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
20082         xsinfo.adb).
20083
20084 2005-01-03  Vincent Celier  <celier@adacore.com>
20085
20086         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
20087         libraries when Unique_Compile is True (-u switch).
20088         (Gnatmake): ditto.
20089
20090 2005-01-03  Robert Dewar  <dewar@adacore.com>
20091
20092         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
20093         upper case letter or underscore after W, as allowed by spec.
20094
20095 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
20096
20097         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
20098         darwin port by using proper type definitions from header files.
20099         Use SIGTERM instead of SIGABRT for SIGADAABORT.
20100
20101 2005-01-03  Robert Dewar  <dewar@adacore.com>
20102
20103         * par.adb: Enhance error message handling for configuration file
20104         pragmas.
20105
20106 2005-01-03  Robert Dewar  <dewar@adacore.com>
20107
20108         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
20109         removed during the previous update (test properly for case of dividing
20110         largest negative number by -1, which generates overflow).
20111
20112 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
20113             Sergey Rybin  <rybin@adacore.com>
20114
20115         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
20116         to use as the defining identifier for a formal package.
20117         (Remove_Parent): If the instance takes place within (an instance of)
20118         a sibling, preserve private declarations of common parent.
20119
20120 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
20121
20122         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
20123         to determine whether one of the operands is a fixed-point type for
20124         which a user-defined multiplication or division operation might be
20125         defined.
20126
20127         * sem_res.adb (Valid_Conversion): The legality rules for conversions
20128         of access types are symmetric in Ada 2005: either designated type can
20129         be unconstrained.
20130
20131 2005-01-03  Vincent Celier  <celier@adacore.com>
20132
20133         * s-fileio.adb (Temp_File_Record): Change length of string component
20134         Name from L_tmpnam + 1 to max_path_len + 1.
20135
20136 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
20137
20138         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
20139         Self_Id.Deferral_Level = 0.
20140         (Do_Pending_Action): Move this function to the spec.
20141
20142         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
20143         Do_Pending_Action explicitely when needed, in case we're using
20144         No_Abort restrictions.
20145
20146         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
20147         deferral level since it will not get changed by the generated code.
20148         Keeping a default value of 1 would prevent some operations (e.g.
20149         select or delay) to proceed successfully.
20150
20151 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
20152             Robert Dewar  <dewar@adacore.com>
20153             Cyrille Comar  <comar@adacore.com>
20154
20155         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
20156         porting guide chapter (vms version).
20157         Revised doc title (removed "for native platforms") and subtitle.
20158         Add discussion on warning flag for obsolescent features. First we
20159         note that it applies to obsolete GNAT features, which was previously
20160         omitted. Second we contrast the behavior with that of the new
20161         Ada 2005 AI-368 restriction No_Obsolescent_Features.
20162         Preliminary rewriting of GNAT & libraries chapter in order to take
20163         into account default project locations & new project manager
20164         capabilities.
20165
20166 2005-01-03  Robert Dewar  <dewar@adacore.com>
20167
20168         * cstand.adb (Create_Operators): Clean up format and documentation of
20169         unary and binary operator result tables. No change in code, just
20170         reformatting and addition of comments.
20171
20172         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
20173         sem_ch2.adb: Minor reformatting
20174
20175         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
20176         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
20177         comments for Tree_Read and Tree_Write.
20178
20179 2005-01-03  Pascal Obry  <obry@adacore.com>
20180
20181         * exp_attr.ads: Minor reformatting.
20182
20183 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
20184
20185         * comperr.adb (Compiler_Abort): Add specialized message for GAP
20186         versions.
20187
20188 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
20189
20190         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
20191         whether the ancestor type is private, as may be the case with nested
20192         instantiations.
20193
20194 2004-12-30  Sohail Somani <sohail@sohailsomani.com>
20195
20196         PR ada/19128
20197         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
20198
20199 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
20200
20201         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
20202         * utils2.c (build_unary_op): Likewise.
20203
20204 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20205
20206         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
20207
20208 2004-12-19  Richard Henderson  <rth@redhat.com>
20209
20210         * trans.c (gigi): Update gimplify_body call.
20211
20212 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
20213
20214         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
20215
20216 2004-12-07  Ed Falis  <falis@adacore.com>
20217
20218         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
20219         current task being suspended.
20220
20221         * init.c (__gnat_clear_exception): added to reset VxWorks exception
20222         count.
20223         (__gnat_map_signal): removed test for current task being suspended.
20224
20225 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
20226
20227         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
20228         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
20229         targets (such as AAMP).
20230
20231 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
20232
20233         * atree.adb (Visit_Itype): Create a new name for the generated itype,
20234         because the back-end may otherwise treat it as a redefinition of the
20235         old symbol.
20236
20237 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
20238
20239         * back_end.adb (Scan_Back_End_Switches): Accept --param.
20240
20241         * lang-specs.h: Accept --param.
20242
20243 2004-12-07  Vincent Celier  <celier@adacore.com>
20244
20245         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
20246         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
20247         Current_Body_Suffix => Ada_Body_Suffix).
20248         Take into account Externally_Built attribute.
20249
20250         * clean.adb (In_Extension_Chain): Always return False when one of the
20251         parameter is No_Project.
20252         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
20253         Ada_Language_Index).
20254         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
20255         Process_Languages for procedure Parse).
20256
20257         * gnatcmd.adb (Carg_Switches): New table.
20258         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
20259         Adapt to name changes in package Prj (Current_Spec_Suffix =>
20260         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
20261
20262         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
20263         Header_Num and function Hash are now declared in package Prj,
20264         not Prj.Com.
20265
20266         * prj.adb (Suffix_Of): New function.
20267         (Set (Suffix)): New procedure.
20268         (Hash): One function moved from Prj.Com
20269         (Is_Present, Language_Processing_Data_Of): New functions
20270         (Set): Two new procedures
20271         (Add_Language_Name, Display_Language_Name): New procedures
20272
20273         * prj.ads: (Suffix_Of): New function
20274         (Set (Suffix)): New procedure
20275         Add several types and tables for multi-language support.
20276         (Header_Num): Type moved from Prj.Com
20277         (Hash): Two functions moved from Prj.Com
20278         (Is_Present, Language_Processing_Data_Of): New functions
20279         (Set): Two new procedures
20280         (Add_Language_Name, Display_Language_Name): New procedures
20281         (Naming): Component name changes:
20282         Current_Spec_Suffix => Ada_Spec_Suffix,
20283         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
20284         Impl_Suffixes, Supp_Suffixes.
20285         (Project_Data): New components: Externally_Built, Supp_Languages,
20286         First_Language_Processing, Supp_Language_Processing, Default_Linker,
20287         Default_Linker_Path.
20288
20289         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
20290         new package Language_Processing with its attributes (Compiler_Driver,
20291         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
20292         Binder_Driver, Default_Linker).
20293
20294         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
20295         (Header_Num): Type moved to package Prj
20296
20297         * prj-env.adb: Adapt to name changes in package Prj
20298         (Current_Spec_Suffix => Ada_Spec_Suffix,
20299         Current_Body_Suffix => Ada_Body_Suffix).
20300
20301         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
20302         default to the project path, except the "-" is one of the directories
20303         in env var ADA_PROJECT_PATH.
20304         (Current_Project_Path): Global variable, replacing Project_Path
20305         that was in the body of Prj.Part.
20306         (Project_Path): New function
20307         (Set_Project_Path): New procedure
20308         Initialize Current_Project_Path during elaboration of the package
20309         Remove dependency on Prj.Com, no longer needed
20310
20311         * prj-ext.ads (Project_Path): New function
20312         (Set_Project_Path): New procedure
20313
20314         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
20315         suffix is defined for language <lang>.
20316         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
20317         accessing directly the components of Naming.
20318         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
20319         Reorganise of this package.
20320         Break procedure Check in several procedures.
20321
20322         * prj-nmsc.ads: Replace all procedures (Ada_Check,
20323         Other_Languages_Check and Language_Independent_Check) with a single
20324         procedure Check.
20325
20326         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
20327         Process_Languages, no longer needed.
20328
20329         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
20330         Current_Project_Path.
20331         Remove elaboration code, moved to the body of Prj.Ext
20332         Use new function Prj.Ext.Project_Path instead of old variable
20333         Project_Path.
20334         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
20335         When comparing with project paths on the stack, first put the resolved
20336         path in canonical case.
20337         (Parse_Single_Project): Set the path name of the project file in the
20338         tree to the normalized path.
20339
20340         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
20341         parameter Process_Languages, no longer needed.
20342         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
20343         Other_Languages_Check.
20344
20345         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
20346         to store the resolved canonical path of the project file.
20347         Remove dependency to Prj.Com, no longer needed
20348
20349         * prj-util.adb: Adapt to name changes in package Prj
20350         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
20351         Ada_Body_Suffix).
20352
20353         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
20354         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
20355         Externally_Built, Include_Option, Language_Processing.
20356
20357         * makegpr.adb: Numerous changes due to changes in packages
20358         Prj and Prj.Nmsc.
20359
20360         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
20361         default to the project path, except whe "-" is one of the directories
20362         in env var ADA_PROJECT_PATH.
20363         (Gnatls): In verbose mode, add the new section "Project Search Path:"
20364
20365 2004-12-07  Robert Dewar  <dewar@adacore.com>
20366
20367         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
20368
20369         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
20370         set -gnatR3m mode.
20371
20372         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
20373         flag. No longer needed now that we handle this in gnat1drv.adb.
20374
20375         * repinfo.ads: Minor reformatting
20376
20377 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20378             Olivier Hainque  <hainque@adacore.com>
20379             Eric Botcazou  <ebotcazou@adacore.com>
20380
20381         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
20382         TYPE_SIZE_UNIT of result type if SIZE is not specified.
20383         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
20384         of a bitfield, which we know is useless and causes trouble because of
20385         alignment implications.
20386
20387         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
20388         BSS sections.
20389         (process_attributes): Clear DECL_COMMON again when a section attribute
20390         is present.
20391         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
20392         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
20393         (create_field_decl): Special case ADDRESSABLE negative to mean
20394         "no bitfield creation", to be used by make_aligning_type. Don't
20395         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
20396         fields claimed addressable still have to be bitfields. Use
20397         value_factor_p instead of a raw binop construction to check for the
20398         position's alignment.
20399
20400 2004-12-07  Geert Bosch  <bosch@adacore.com>
20401
20402         * eval_fat.adb: Revert previous change.
20403
20404 2004-12-07  Thomas Quinot  <quinot@adacore.com>
20405             Ed Schonberg  <schonberg@adacore.com>
20406
20407         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
20408         with an implicit dereference as its prefix, use
20409         Insert_Explicit_Dereference instead of merely rewriting the prefix into
20410         an explicit dereference. This ensures that a reference to the original
20411         prefix is generated, if appropriate.
20412
20413         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
20414         dereference is rewritten to an explicit one, generate a reference to
20415         the entity denoted by its prefix using the original prefix node, so
20416         the dereference can be properly recorded as a read of the denoted
20417         access value, if appropriate.
20418
20419         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
20420         emitting 'assigned but never read' warning on a variable on the basis
20421         that it has an access type.
20422         (Check_References): Emit unreferenced warning when the scope is a
20423         subprogram body.
20424
20425 2004-12-07  Robert Dewar  <dewar@adacore.com>
20426             Ed Schonberg  <schonberg@adacore.com>
20427
20428         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
20429         intrinsic
20430
20431         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
20432         leaving call unchanged.
20433         This deals with the case where the pragma Import specified
20434         an external name, to be handled by the back end.
20435
20436         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
20437         subprogram which is Imported with convention Intrinsic if an
20438         External_Name argument is specified.
20439         (Process_Import_Or_Interface): Properly diagnose link name argument.
20440         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
20441         with Sem_Ch6.Cannot_Inline.
20442         (Process_Inline): Provide separate warning for inapplicable inline
20443         pragma.
20444         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
20445         treatment is uniform on different targets.
20446
20447 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
20448
20449         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
20450         construct is rewritten, preserve end label to permit source navigation.
20451
20452 2004-12-07  Thomas Quinot  <quinot@adacore.com>
20453
20454         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
20455         Specific_Build_Stub_Target): New subprograms.
20456         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
20457         the PCS implementation used, using the above PCS-customized subprograms.
20458         Minor reformatting.
20459         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
20460         for generation of DSA code targeted to the PolyORB PCS.
20461         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
20462         implementation of the partition communication subsystem in ancillary
20463         subprograms.
20464         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
20465         PolyORB_Support.Build_Stub_Type): New subrograms containing the
20466         PCS-specific part of Add_Stub_Type.
20467         (Insert_Partition_Check): Use runtime library function to perform
20468         E.4(19) check.
20469
20470         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
20471         (RE_Same_Partition): New entity, from s-parint.
20472
20473         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
20474
20475 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
20476
20477         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
20478         Output the copyright message on a separate line from the version
20479         message.
20480
20481 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
20482
20483         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
20484         compile-time warning.
20485
20486 2004-12-07  Robert Dewar  <dewar@adacore.com>
20487
20488         * g-regpat.adb: (Match): Change a misuse of or to or else
20489
20490 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
20491
20492         * lib-xref.adb:
20493         (Generate_Reference): Handle properly a reference to an entry formal,
20494          when an accept statement has a pragma Unreferenced for it.
20495
20496         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
20497         and the Has_Pragma_Unreferenced flag for each formal before analyzing
20498         the body, to ensure that warnings are properly emitted for each accept
20499         statement of a given task entry.
20500
20501 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
20502
20503         * Makefile.in: Add support for foreign threads on VMS.
20504
20505 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20506
20507         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
20508         Remove.
20509         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
20510
20511         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
20512
20513         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
20514         exception.
20515         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
20516
20517 2004-12-07  Robert Dewar  <dewar@adacore.com>
20518
20519         * nlists.adb (Prepend_Debug): Remove parameters and nest within
20520         Prepend.
20521         (Remove_Next_Debug): Same fix
20522
20523         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
20524         maintain back pointers now, though we did not used to, and comments
20525         were out of date).
20526         (Prepend): Remove pragma Inline.
20527         (Remove_Next): Same cleanup
20528
20529 2004-12-07  Thomas Quinot  <quinot@adacore.com>
20530
20531         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
20532         used to record an implicit dereference as a read operation on its
20533         prefix when operating under -gnatc. Necessary to avoid spurious
20534         'variable assigned but never read' warnings in that mode.
20535         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
20536         is a non-overloaded implicit dereference, call the above subprogram to
20537         ensure proper recording of references.
20538
20539 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
20540
20541         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
20542         to be resolved later as part of Analyze_Iteration_Scheme's call to
20543         Make_Index.
20544
20545 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
20546
20547         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
20548         prefix is not a scalar type, place error message on prefix, not on
20549         type entity.
20550
20551 2004-12-07  Bernard Banner  <banner@adacore.com>
20552
20553         * vxaddr2line.adb: Add support for x86 vxworks
20554
20555 2004-12-07  Thomas Quinot  <quinot@adacore.com>
20556
20557         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
20558         documentation of the behaviour of these functions when passed an IP
20559         address that has no record in the system hosts database and no reverse
20560         record in the DNS.
20561
20562         * cstand.adb, a-tags.ads: Fix typos in comment.
20563
20564 2004-12-07  Robert Dewar  <dewar@adacore.com>
20565
20566         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
20567         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
20568         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
20569         s-poosiz.ads: Minor reformatting
20570
20571         * make.adb: Minor reformatting
20572         Add some ??? comments asking for more comments
20573
20574         * s-poosiz.adb: Minor reformatting
20575         Add comments on alignment requirement
20576
20577         * sinfo.ads: Remove obsolete comment and fix typo.
20578
20579 2004-12-07  Vincent Celier  <celier@adacore.com>
20580             Sergey Rybin  <rybin@adacore.com>
20581
20582         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
20583         Files" with the new tool and package names.
20584         Reformatting to suppress most of the warnings for line too long
20585         Document the new section "Project Search Path:" in the output of
20586         gnatls -v.
20587         Add gnatmetric section
20588
20589 2004-12-07  Vincent Celier  <celier@adacore.com>
20590
20591         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
20592         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
20593         and -eit to -ept. Added qualifier
20594         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
20595
20596 2004-11-27  Andreas Schwab  <schwab@suse.de>
20597
20598         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
20599
20600 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
20601
20602         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
20603         internal implementation unit GNAT.Sockets.Thin,
20604         as their usage for sockets is non-portable (using the read and write
20605         functions from the system runtime library is fine on UNIX but won't
20606         work under Windows).
20607
20608         * mingw32.h: Update copyright notice.
20609
20610 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
20611
20612         * ada-tree.h: Minor reformatting of previous change to avoid lines
20613         longer than 79 characters.
20614
20615 2004-11-25  Olivier Hainque  <hainque@adacore.com>
20616
20617         * tb-gcc.c: GCC infrastructure based implementation of
20618         __gnat_backtrace.
20619
20620 2004-11-24  Steven Bosscher  <stevenb@suse.de>
20621
20622         * misc.c (gnat_post_options): Don't clear
20623         flag_inline_functions.
20624
20625 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
20626
20627         PR ada/17986
20628         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
20629         tree.
20630
20631 2004-11-21  Andreas Jaeger  <aj@suse.de>
20632
20633         * stylesw.adb: Change Style_Check_Subprogram_Order to
20634         Style_Check_Order_Subprograms.
20635
20636 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
20637
20638         * adaint.h, adaint.c
20639         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
20640         to avoid warnings.
20641         Add also a cast to kill another warning.
20642         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
20643         parameter with the priority class of the parent process instead of
20644         always using the NORMAL_PRIORITY_CLASS.
20645         (__gnat_dup): New function.
20646         (__gnat_dup2): New function.
20647         (__gnat_is_symbolic_link): Enable the effective body of this
20648         function when __APPLE__ is defined.
20649
20650         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
20651         Update comments.
20652
20653 2004-11-18  Olivier Hainque  <hainque@adacore.com>
20654
20655         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
20656         address of which may be used to represent "others" and "all others"
20657         choices in exception tables, instead of the current harcoded
20658         (void *)0 and (void *)1.
20659         (Setup_Exception): Do nothing in the GNAT SJLJ case.
20660
20661         * gigi.h (others_decl, all_others_decl): New decls representing the
20662         new Others_Value and All_Others_Value objects.
20663         (struct attrib): Rename "arg" component as "args", since GCC expects a
20664         list of arguments in there.
20665
20666         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
20667         corresponding objects exported by a-exexpr, instead of hardcoded dummy
20668         addresses.
20669
20670         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
20671         others_decl and all_others_decl instead of hardcoded dummy addresses
20672         to represent "others" and "all others" choices, which is cleaner and
20673         more flexible with respect to the possible eh pointer encoding policies.
20674
20675         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
20676         (process_attributes): Account for the naming change of the "args"
20677         attribute list entry component.
20678
20679         * decl.c (build_attr_list): Rename into prepend_attributes to allow
20680         cumulating attributes for different entities into a single list.
20681         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
20682         attributes for the current entity and propagate first subtype
20683         attributes to other subtypes.
20684         <E_Procedure>: Attribute arguments are attr->args and not
20685         attr->arg any more.
20686         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
20687         argument provided, as this is what GCC expects. Use NULL_TREE instead
20688         of 0 for trees.
20689
20690 2004-11-18  Robert Dewar  <dewar@adacore.com>
20691
20692         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
20693         Minor reformatting througout (including new function specs)
20694         Add ??? comments asking for clarification.
20695
20696 2004-11-18  Thomas Quinot  <quinot@adacore.com>
20697
20698         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
20699         incomplete duplicate implementation of this subprogram from butil.
20700
20701 2004-11-18  Thomas Quinot  <quinot@adacore.com>
20702
20703         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
20704         procedures factors the common processing for building an RPC receiver
20705         for an RCI package or an RACW type.
20706         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
20707         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
20708         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
20709         in use.
20710         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
20711         Add_RACW_Features.
20712         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
20713         Add_RAST_Features.
20714         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
20715         distribution subprogram identifiers that are either subprogram numbers
20716         or strings.
20717         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
20718         string distribution identifiers assigned to a given subprogram.
20719         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
20720         (Add_RAS_Dereference_TSS): Add comments.
20721         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
20722         is not referenced yet because it will be used by the PolyORB DSA
20723         implementation.
20724         (Insert_Partition_Check): Remove fossile code.
20725         (First_RCI_Subprogram_Id): Document this constant.
20726         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
20727         RAS_Access TSS.
20728         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
20729         replaced with calls to Get_Library_Unit_Name_String. Previously there
20730         were several instances of the same code in different locations in the
20731         compiler; this checkin completes the replacement of all of these
20732         instances with calls to a common subprogram.
20733         Minor reformatting.
20734
20735         * sem_dist.adb: Remove comment noting that RPC receiver generation
20736         should be disabled for RACWs that implement RASs.
20737         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
20738
20739         * sem_util.ads, sem_util.adb (Has_Stream): New function
20740         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
20741         qualified name of a library unit into the name buffer.
20742         (Note_Possible_Modification): Generate a reference only
20743         if the context comes from source.
20744
20745         * snames.ads (PCS_Names): New subtype corresponding to names of
20746         supported implementations of the Partition Communication Subsystem
20747         (PCS) (i.e. the runtime library support modules for the distributed
20748         systems annex).
20749
20750 2004-11-18  Robert Dewar  <dewar@adacore.com>
20751             Ed Schonberg  <schonberg@adacore.com>
20752
20753         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
20754         (Has_Rep_Pragma): New function
20755         (Has_Attribute_Definition_Clause): New function
20756         (Record_Rep_Pragma): Moved here from sem_ch13.adb
20757         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
20758
20759         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
20760
20761         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
20762         (Expand_Pragma_Psect_Object): New procedure
20763         These procedures contain the revised and cleaned up processing for
20764         these two pragmas. This processing was formerly in Sem_Prag, but
20765         is more appropriately moved here. The cleanup involves making sure
20766         that the pragmas are properly attached to the tree, and that no
20767         nodes are improperly shared.
20768
20769         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
20770         pragmas to Exp_Prag, which is more appropriate.
20771         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
20772         check for duplicates Remove use of Is_Psected flag, no longer needed.
20773         Use new Make_String_Literal function with string.
20774
20775         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
20776         that are functions return universal values, that have to be converted
20777         to the context type.
20778         Use new Make_String_Literal function with string.
20779         (Get_Stream_Convert_Pragma): New function, replaces the use of
20780         Get_Rep_Pragma, which had to be kludged to work in this case.
20781
20782         * freeze.adb: Use new Has_Rep_Pragma function
20783
20784         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
20785         function with string.
20786         Use new Has_Rep_Pragma function.
20787
20788         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
20789         string argument.
20790
20791 2004-11-18  Robert Dewar  <dewar@adacore.com>
20792
20793         * errout.ads, errout.adb: (First_Sloc): New function
20794
20795         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
20796         check (-gnatyx) instead of being included as a redundant construct
20797         warning.
20798
20799         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
20800         Style_Check_Order_Subprograms.
20801
20802         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
20803         stylesw.adb: Add Style_Check_Xtra_Parens
20804
20805         * usage.adb: Add line for -gnatyx (check extra parens)
20806
20807         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
20808
20809 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
20810             Robert Dewar  <dewar@adacore.com>
20811
20812         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
20813         discriminant of a constrained subtype, analyze the copy of the
20814         corresponding constraint, because in some cases it may be only
20815         partially analyzed.
20816         Removes long-lived ??? comments.
20817
20818         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
20819         handled controlled or secondary-stack expressions within the
20820         iteration_scheme of a loop.
20821
20822         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
20823         bounds that may contain functions calls, to prevent memory leaks when
20824         the bound contains a call to a function that uses the secondary stack.
20825         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
20826         generate temporaries for loop bounds that might contain function calls
20827         that require secondary stack and/or finalization actions.
20828
20829         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
20830         selected component and the selector is overloadable (not just a
20831         function) treat as function call, Analyze_Call will disambiguate if
20832         necessary.
20833         (Analyze_Selected_Component): Do not generate an actual subtype for the
20834         selected component if expansion is disabled. The actual subtype is only
20835         needed for constraint checks.
20836         (Analyze_Allocator): If restriction No_Streams is set, then do
20837         not permit objects to be declared of a stream type, or of a
20838         composite type containing a stream.
20839
20840         * restrict.ads: Remove the a-stream entry from Unit_Array, since
20841         No_Streams no longer prohibits with'ing this package.
20842
20843         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
20844         discriminants, but the parent base has unknown discriminants, there is
20845         no discriminant constraint to inherit. Such a discrepancy can arise
20846         when the actual for a formal type with unknown discriminants is a
20847         similar private type whose full view has discriminants.
20848         (Analyze_Object_Declaration): If restriction No_Streams is set, then
20849         do not permit objects to be declared of a stream type, or of a
20850         composite type containing a stream.
20851
20852 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
20853
20854         * exp_dbug.ads: Update documentation to reflect simpler encoding for
20855         protected operations.
20856
20857         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
20858         generated name, it complicates decoding in gdb and hinders debugging
20859         of protected operations.
20860         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
20861         flag for the protected entry barrier function.
20862         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
20863         flag for the protected entry function.
20864
20865 2004-11-18  Nicolas Setton  <setton@adacore.com>
20866
20867         * expect.c: Define __unix__ when __APPLE__ is defined.
20868
20869         * Makefile.in: Inform the value of the variable GMEM_LIB in the
20870         Darwin-specific section.
20871
20872         * lang-specs.h: Change the placement of the %1 marker.
20873         Works around the fact that gcc adds -fPIC by default under Darwin.
20874
20875 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
20876
20877         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
20878         type of the object with the packed array type, set the Analyzed flag
20879         on the object if it is an entity or simple indexed component, to avoid
20880         spurious type errors.
20881
20882 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
20883
20884         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
20885         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
20886         separate line from the version message.
20887
20888 2004-11-18  Ed Falis  <falis@adacore.com>
20889
20890         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
20891         vthreads.
20892         (init_float): Eliminate initialization of floating point status for
20893         AE653. The instructions have no effect for vThreads.
20894
20895 2004-11-18  Vincent Celier  <celier@adacore.com>
20896
20897         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
20898         gnatbind is invoked with -shared.
20899
20900 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
20901
20902         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
20903         for Detect_Blocking which is redundant with the check done within the
20904         procedure Protected_Single_Entry_Call.
20905         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
20906         Detect_Blocking which is redundant with the check done within the
20907         procedure Protected_Single_Entry_Call.
20908
20909 2004-11-18  Vincent Celier  <celier@adacore.com>
20910
20911         * makegpr.adb (Compile): Put the compiling switches (in package
20912         Compiler and on the command line) immediately after "-c", instead of
20913         at the end of the command line invocation of the compiler, when
20914         compiling a non-Ada file.
20915         (Build_Global_Archive): When there is no need to rebuild the archive,
20916         set Global_Archive_Exists, so that the archive is passed to the linker
20917         if one is needed.
20918
20919 2004-11-18  Robert Dewar  <dewar@adacore.com>
20920             Sergey Rybin  <rybin@adacore.com>
20921
20922         * gnat_ugn.texi:
20923         Remove extra paren check from list of checks for redundant constructs
20924         Add documentation of new -gnatyx style check (check extra parens)
20925         Remove paragraph about gnatelim debug options.
20926
20927         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
20928         objects rather than forbidding dependencies on the package Ada.Streams.
20929
20930         * sinfo.ads: Add ??? note that we should document pragmas passed to
20931         back end.
20932
20933         * g-expect.ads: Fix a few typos in the comments.
20934
20935 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
20936
20937         * misc.c (gnat_handle_option): Use %< and %> for quoting in
20938         warning message.
20939
20940 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
20941
20942         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
20943
20944 2004-11-07  Andreas Schwab  <schwab@suse.de>
20945
20946         * Makefile.in (install-gnatlib): Remove spurious hyphen.
20947
20948 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
20949
20950         PR ada/18228
20951         * Makefile.in (darwin): Set soext to .dylib.
20952
20953 2004-10-26  Vincent Celier  <celier@gnat.com>
20954             Thomas Quinot   <quinot@act-europe.fr>
20955
20956         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
20957         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
20958         there is no use of GNAT.Sockets.Constants.
20959         Remove remaining pragma Import for C_Write
20960         Remove C_Read and C_Write from internal implementation unit
20961         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
20962         the read and write functions from the system runtime library is fine
20963         on UNIX but won't work under Windows).
20964
20965         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
20966         (Check_Selector): Use C_Recv instead of C_Read.
20967         Selectors are the GNAT.Sockets abstraction to perform a select()
20968         call on a set of descriptors. To allow abortion of an ongoing
20969         select operation, some data is written to a dedicated socket that
20970         is always monitored.
20971         Under Windows, the write and read library functions cannot operate
20972         on sockets, so we need to use send and recv instead, which is portable
20973         across all supported platforms.
20974
20975         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
20976         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
20977         (using the read and write functions from the system runtime library is
20978         fine on UNIX but won't work under Windows).
20979
20980 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
20981
20982         * mlib-tgt-darwin.adb: New file.
20983
20984         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
20985         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
20986         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
20987         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
20988         subprogram body.
20989
20990         * Makefile.in: Add support for building shared libraries under Darwin.
20991         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
20992         the low level EH init subprogram to be called from __gnat_initialize.
20993
20994         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
20995         indicates which options to pass to the archive indexer.
20996
20997         * mlib-utl.adb: Add support for calling ranlib with additional
20998         options. This is needed for instance under Mac OS X.
20999         (Ranlib_Options): New global variable, used to store the potential
21000         options to pass to ranlib.
21001         (Ar): Use Ranlib_Options when spawning ranlib.
21002         (Initialize): Set the value of ranlib option.
21003
21004 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
21005
21006         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
21007         instead of 8K, to reflect the real potential needs for stack-checking
21008         in the ZCX case.
21009
21010 2004-10-26  Pascal Obry  <obry@gnat.com>
21011
21012         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
21013
21014         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
21015         Windows only the initial thread stack size can be set so it is good to
21016         start we a low stack size.
21017         The OS will adjust the size as needed.
21018
21019 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
21020             Nicolas Setton  <setton@act-europe.fr>
21021
21022         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
21023         "__unix__" instead of "unix".
21024         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
21025         sections were just mistakenly ignored. The former is
21026         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
21027         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
21028         of hpux. This prevents an unwanted definition of the symbol
21029         convert_addresses in adaint.o.
21030
21031 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
21032
21033         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
21034         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
21035
21036 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
21037
21038         * a-filico.ads, a-filico.adb: fix incorrect header.
21039
21040 2004-10-26  Javier Miranda  <miranda@gnat.com>
21041
21042         * a-ststio.ads: Fix typo in identifier
21043
21044 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
21045
21046         * sem_ch4.adb: Minor reformatting.
21047
21048 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21049
21050         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
21051         enabled, check the result of unary and binary operations when the
21052         expression is the right-hand side of an assignment.
21053
21054 2004-10-26  Vincent Celier  <celier@gnat.com>
21055
21056         * clean.adb (Delete): Do not output warnings when in quiet output and
21057         not in verbose mode.
21058         (Force_Deletions): New Boolean flag, defaulted to False
21059         (Delete): Only delete a file if it is writable, and when
21060         Force_Deletions is True.
21061         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
21062         (Usage): Line for new switch -f
21063         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
21064         own.
21065
21066 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
21067
21068         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
21069         JM type only if its size matches that of the wrapper.  When a size is
21070         prescribed and the field is not aliased, remove the wrapper of a JM
21071         type only if the size is not greater than that of the packed array.
21072         (gnat_to_gnu_entity): Change the extension of packed array wrappers
21073         from LJM to JM.
21074
21075 2004-10-26  Geert Bosch  <bosch@gnat.com>
21076
21077         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
21078         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
21079         (Pred): Implement in terms of Succ.
21080
21081 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21082
21083         * exp_aggr.adb (Safe_Component): An aggregate component that is an
21084         unchecked conversion is safe for in-place use if the expression of the
21085         conversion is safe.
21086         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
21087         be expandable in place even if the aggregate does not come from source.
21088         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
21089         designated object of an allocator in place, rather than building it
21090         first on the stack. The previous scheme forces a full copy of the array,
21091         and may be altogether unsusable if the size of the array is too large
21092         for stack allocation.
21093
21094 2004-10-26  Robert Dewar  <dewar@gnat.com>
21095
21096         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
21097         compares if the component is atomic.
21098
21099         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
21100         array assignment if the component type is atomic.
21101
21102 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21103             Eric Botcazou  <ebotcazou@act-europe.fr>
21104
21105         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
21106         is aliased and is a by_reference type, do not pass by copy.
21107         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
21108         detect whether the call is in the right side of an assignment or
21109         the expression of an object declaration.  Recurse on component
21110         association within aggregates.
21111         Call it in the condition that determines whether the temporary is
21112         necessary for correct stack-checking.
21113
21114 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
21115
21116         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
21117         RACW_Type, used in the PolyORB version.
21118         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
21119         version and the GARLIC version.
21120
21121         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
21122         Rename RCI_Info to RCI_Locator for better consistency between the
21123         GARLIC and PolyORB versions of the distributed systems annex.
21124         (DSA_Implementation_Name): This enumeration lists the possible
21125         implementations of the Partition Communication Subsystem for the
21126         Distributed Systems Annex (DSA). The three available implementations
21127         are the dummy stub implementation (No_DSA), and two versions based on
21128         two different distribution runtime libraries: GARLIC and PolyORB. Both
21129         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
21130         technology.
21131         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
21132         that organization.
21133
21134         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
21135         between the GARLIC and PolyORB versions of the distributed systems
21136         annex.
21137         Remove RE_Unbounded_Reclaim_Pool since it is unused.
21138
21139 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
21140
21141         * gnat1drv.adb: Suppress calling the back end when
21142         Frontend_Layout_On_Target is true.
21143
21144 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
21145
21146         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
21147         Set_Read_Only): New subprograms.
21148         These new routines allow the user to set or unset the Owner execute
21149         and Owner write permission flags on a file.
21150
21151         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
21152         GNAT.OS_Lib.Set_Executable instead of rolling our own.
21153
21154 2004-10-26  Matthew Gingell  <gingell@gnat.com>
21155
21156         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
21157
21158 2004-10-26  Pascal Obry  <obry@gnat.com>
21159
21160         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
21161         memory before the faulting page we properly test the process read
21162         access for this address using appropriate Win32 routine.
21163         (HPUX sections): guard with "__hpux__" instead of "hpux".
21164
21165 2004-10-26  Robert Dewar  <dewar@gnat.com>
21166
21167         * lib-xref.adb (Generate_Reference): Don't complain about reference to
21168         entry parameter if pragma Unreferenced set, since we do not properly
21169         handle the case of multiple parameters.
21170
21171 2004-10-26  Vincent Celier  <celier@gnat.com>
21172
21173         * prj-env.adb: (Contains_ALI_Files): New Boolean function
21174         (Ada_Objects_Path.Add): For a library project, add to the object path
21175         the library directory only if there is no object directory or if the
21176         library directory contains ALI files.
21177         (Set_Ada_Paths.Add.Recursive_Add): Ditto
21178
21179 2004-10-26  Vincent Celier  <celier@gnat.com>
21180
21181         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
21182         extension of library projects.
21183
21184         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
21185         path defaults to ".:<prefix>/lib/gnat".
21186         (Parse): For an extending all project, allow direct import of a project
21187         that is virtually extended.
21188
21189         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
21190         the specified name is directly imported, return its ID. Otherwise, if
21191         an extension of this project is imported, return the ID of the
21192         extension.
21193
21194 2004-10-26  Robert Dewar  <dewar@gnat.com>
21195
21196         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
21197         (Sub3): New procedure, used by Scaled_Divide
21198         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
21199         correct more than one instance of failure to propagate carries
21200         correctly.
21201         (Double_Divide): Handle overflow case of largest negative number
21202         divided by minus one.
21203
21204         * s-arit64.ads (Double_Divide): Document that overflow can occur in
21205         the case of a quotient value out of range.
21206         Fix comments.
21207
21208 2004-10-26  Robert Dewar  <dewar@gnat.com>
21209
21210         * s-bitops.adb (Bit_Eq): Remove redundant check.
21211
21212         * s-bitops.ads: Minor comment updates
21213         Change some occurrences of Address to System.Address
21214
21215         * s-carsi8.ads: Fix minor cut-and-paste error in comments
21216
21217 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21218
21219         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
21220         accessibility check to prefix that is a protected operation.
21221
21222 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21223
21224         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
21225         empty, post message on stub.
21226
21227 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21228             Javier Miranda  <miranda@gnat.com>
21229
21230         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
21231         current instance appears within a unit that is directly in the context
21232         of the main unit.
21233         Used to determine whether the body of the instance should be analyzed
21234         immediately after its spec, to make its subprogram bodies available
21235         for front-end inlining.
21236         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
21237         constraint is not allowed on the component type (AARM 12.5.3(3))
21238
21239 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
21240
21241         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
21242         'Storage_Pool): enhance, document & limit detection of non-sharable
21243         internal pools.
21244
21245         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
21246
21247         * s-pooglo.ads: Add more documentation now that this pool is properly
21248         documented.
21249
21250 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21251
21252         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
21253         or protected type with discriminants, do not constrain the
21254         corresponding record type if the subtype declaration has no
21255         discriminant constraints. This can be the case in source code, or in
21256         the subtype declaration created to rename an actual type within an
21257         instantiation.
21258
21259 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21260
21261         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
21262         different kind of stub (possibly wrong name for file), do not check
21263         for conformance.
21264         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
21265         includes call to some function that returns an unconstrained type, do
21266         not inline.
21267
21268 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21269
21270         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
21271         appear in the code for the main unit. Dependencies among units in the
21272         context of the main unit are established when those other units are
21273         compiled. Otherwise spurious elaboration constraints can generate
21274         incorrect elaboration circularities.
21275
21276 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
21277             Ed Schonberg   <schonberg@gnat.com>
21278
21279         * sem_util.adb (Is_Aliased_View): Defend against the case where this
21280         subprogram is called with a parameter that is not an object name. This
21281         situation arises for some cases of illegal code, which is diagnosed
21282         later, and in this case it is wrong to call Is_Aliased, as that might
21283         cause a compiler crash.
21284         (Explain_Limited_Type): Refine previous fix to include
21285         inherited components of derived types, to provide complete information.
21286
21287         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
21288         is the prival for a protected object.
21289         It is necessary to mark this entity as a variable, in addition to
21290         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
21291         modified to avoid checking the Aliased flag on entities that are not
21292         objects. (Checking that flag for non-objects is erroneous and could
21293         lead to a compiler crash).
21294
21295 2004-10-26  Robert Dewar  <dewar@gnat.com>
21296
21297         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
21298         X_Frac = 0.5, then we know that the number X must be positive.
21299         (Succ): Remove the same redundant test, and also fix the primary test
21300         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
21301         Minor reformatting
21302         (Decompose): Add fuller comments to spec
21303
21304 2004-10-26  Pascal Obry  <obry@gnat.com>
21305
21306         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
21307         validity (process must have read access). Set to 0 in all other cases.
21308         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
21309         violation on Win32.
21310         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
21311         segmentation violation.
21312
21313 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
21314
21315         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
21316         whose type is a constructed subtype of an aliased object with an
21317         unconstrained nominal subtype, convert the actual to the constructed
21318         subtype before taking its address.
21319
21320 2004-10-26  Vincent Celier  <celier@gnat.com>
21321
21322         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
21323         (Is_Path_Name_Case_Sensitive): New function
21324
21325         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
21326         (Base_Name, Simple_Name, Current_Directory, Compose,
21327         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
21328         the result.
21329
21330 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
21331             Vasiliy Fofanov  <fofanov@act-europe.fr>
21332             Vincent Celier   <celier@gnat.com>
21333
21334         * gnat_ugn.texi: Generalize "finding memory problems" section into a
21335         "memory management issues" section and document some of the useful
21336         memory pools provided as part of the GNAT library.
21337         Remove "virtual" from declaration of A::method2 in
21338         the simple example of Ada/C++ mixed system.
21339         Library Projects may be virtually extended: their virtual extensions
21340         are not Library Projects.
21341         Added section on extending project hierarchies.
21342
21343 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
21344
21345         * adaint.c (__gnat_get_libraries_from_registry): Cast value
21346         to LPBYTE.
21347         (__gnat_portable_spawn): Remove const.
21348
21349         * mingw32.h (MAXPATHLEN): Check for previous definition.
21350
21351 2004-10-17  Matthias Klose  <doko@debian.org>
21352
21353         * gnatvsn.ads: Set gnat library version to 4.0.
21354
21355 2004-10-05  Vincent Celier  <celier@gnat.com>
21356
21357         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
21358
21359 2004-10-04  Laurent GUERBY <laurent@guerby.net>
21360
21361         PR ada/15156
21362         * Makefile.in: Define and use RANLIB_FLAGS.
21363
21364 2004-10-04  Pascal Obry  <obry@gnat.com>
21365
21366         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
21367         other x86 platforms).
21368
21369 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
21370
21371         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
21372         in general and triggers stack alignment adjustment for thread entry
21373         points on targets where this is necessary.
21374
21375 2004-10-04  Bernard Banner  <banner@gnat.com>
21376
21377         PR ada/13897
21378         * Makefile.in: Add section for powerpc linux
21379         Add variant i-vxwork-x86.ads
21380
21381         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
21382
21383 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
21384
21385         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
21386         table registration calls when need be. Ensures no reference to the crt
21387         ctors symbol are issued in the SJLJ case, which avoids possible
21388         undefined symbol errors in the case of modules to be statically linked
21389         with the kernel.
21390
21391 2004-10-04  Javier Miranda  <miranda@gnat.com>
21392
21393         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
21394         in-line the code corresponding to subprogram Analyze_Actuals. In
21395         addition, analyze the actuals only in case of subprogram call.
21396
21397 2004-10-04  Ed Falis  <falis@gnat.com>
21398
21399         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
21400
21401 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
21402
21403         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
21404         in the documentation.
21405
21406 2004-10-04  Robert Dewar  <dewar@gnat.com>
21407
21408         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
21409         IF and CASE.
21410         (Analyze_Block_Statement): Add circuitry to detect following dead code
21411         (Check_Unreachable_Code): Handle case of block exit
21412
21413 2004-10-04  Robert Dewar  <dewar@gnat.com>
21414
21415         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
21416         (XMatchD): Avoid warning for Logic_Error call
21417
21418 2004-10-04  Robert Dewar  <dewar@gnat.com>
21419
21420         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
21421         consider expressions buried within a procedure actual to be an actual.
21422         This caused some blowups with uses of packed slices within a procedure
21423         actual.
21424
21425 2004-10-04  Robert Dewar  <dewar@gnat.com>
21426
21427         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
21428         longer need to be initialized to zero.
21429         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
21430         initialized to zero.
21431
21432         * checks.adb (Expr_Known_Valid): Packed arrays are now always
21433         considered valid, even if the representation is modular. That's correct
21434         now that we no longer initialize packed modular arrays to zero.
21435
21436         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
21437         suffixes. These are now documented as the only cases in which the
21438         debugger ignores outer records.
21439         Previously, the spec allowed arbitrary suffixes for this purpose.
21440         Change name of LJM to JM for packed array pad records
21441         Create separate section on packed array handling, and add a whole new
21442         set of comments to this section describing the situation with packed
21443         modular types and justification requirements depending on endianness.
21444
21445 2004-10-04  Robert Dewar  <dewar@gnat.com>
21446
21447         * a-except.adb: Add a comment for last change
21448
21449         * einfo.ads: Minor spelling correction in comment
21450
21451         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
21452
21453         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
21454         messages.
21455
21456         * sem_util.ads: Minor comment update
21457
21458 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
21459
21460         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
21461         Inline_Always when in Configurable_Run_Time mode.
21462
21463         * sem_prag.adb (Process_Convention): If entity is an inherited
21464         subprogram, apply convention to parent subprogram if in same scope.
21465         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
21466         when in Configurable_Run_Time mode.
21467
21468 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
21469
21470         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
21471         class_wide type after component list has been inherited.
21472
21473 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
21474
21475         * sem_ch12.adb (Check_Generic_Actuals): New predicate
21476         Denotes_Previous_Actual, to handle properly the case of a private
21477         actual that is also the component type of a subsequent array actual.
21478         The visibility status of the first actual is not affected when the
21479         second is installed.
21480         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
21481         make fully recursive the treatment of formals of packages declared
21482         with a box.
21483         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
21484         the above on exit from an instantiation.
21485         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
21486         current instantiation which is now complete.
21487         (Analyze_Package_Instantiation): No instantiated body is needed if the
21488         main unit is generic. Efficient, and avoid anomalies when a instance
21489         appears in a package accessed through rtsfind.
21490
21491 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
21492
21493         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
21494         do not generate a declaration for a temporary if the call is part of a
21495         library-level instantiation.
21496
21497 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
21498
21499         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
21500         searching for a limited component to flag.
21501
21502         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
21503         expansion of Input, to account for the fact that the implicit call
21504         generated by the attribute reference must freeze the user-defined
21505         stream subprogram. This is only relevant to 'Input, because it can
21506         appear in an object declaration, prior to the body of the subprogram.
21507
21508         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
21509         expansion can proceed and further errors uncovered.
21510         (Minor clean up): Fix cases of using | instead of \ for continuation
21511         messages.
21512
21513 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21514
21515         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
21516
21517         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
21518         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
21519         Use gcc_assert and gcc_unreachable.
21520
21521         * decl.c (gnat_to_gnu_entity, case object): Check and process a
21522         specified alignment before validating size.
21523         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
21524         stripped-down declaration for the type of the inner field when making
21525         a JM type.
21526
21527         * utils.c (finish_record_type): Do not compute the size in units
21528         incrementally. Instead compute it once for the rep clause case.
21529         Use gcc_assert and gcc_unreachable.
21530
21531 2004-10-04  Vincent Celier  <celier@gnat.com>
21532
21533         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
21534         in file name.
21535         (Is_Valid_Path_Name): Take '/' as a directory separator.
21536
21537 2004-10-04  Vincent Celier  <celier@gnat.com>
21538
21539         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
21540         (Extended_Project) only if Extended_Project is defined, to avoid
21541         assertion error.
21542         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
21543         resolved path.
21544         (Parse_Single_Project): Ditto.
21545
21546         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
21547         Add_To_Project_Path for virtual projects.
21548
21549 2004-10-04  Vincent Celier  <celier@gnat.com>
21550
21551         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
21552         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
21553         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
21554         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
21555         parameter Options_2.
21556
21557         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
21558         Build_Dynamic_Library with an empty Options_2.
21559
21560         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
21561         default anymore.
21562
21563         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
21564         directory separator, if any.
21565         (Gprmake): Do not allow mains on the command line for library projects.
21566         Do not attempt to link when the project is a library project.
21567         (Library_Opts): New table to store Library_Options.
21568         (Build_Library): If Library_Options is specified, pass these options
21569         when building a shared library.
21570
21571 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
21572
21573         * s-tposen.adb (Service_Entry): The object must be always unlocked at
21574         the end of this procedure now that the unlock operation was inserted
21575         by the expander.
21576
21577 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
21578
21579         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
21580         corresponding to the Preallocated_Stacks flags in System.
21581         (Get_Target_Parameters): Including the processing for
21582         Preallocated_Stacks.
21583
21584         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
21585         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
21586         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
21587         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
21588         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
21589         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
21590         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
21591         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
21592         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
21593         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
21594         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
21595         used to signal whether the compiler creates the required stacks and
21596         descriptors for the different tasks (when True) or it is done by the
21597         underlying operating system at run time (when False).
21598         It is initially set to False in all targets.
21599
21600         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
21601         if it is supported by the target.
21602         (Make_Task_Create_Call): Pass the stack address if it has been
21603         previously created. Otherwise pass a Null_Address.
21604
21605         * snames.adb: Add _stack.
21606
21607         * snames.ads: Add Name_uStack. Required to allow the expander to
21608         statically allocated task stacks.
21609
21610         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
21611         Stack_Address argument.
21612         Check that its value is equal to Null_Address because this target does
21613         not support the static stack allocation.
21614
21615 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
21616
21617         * usage.adb: Change "pragma inline" to "pragma Inline" in information
21618         and error messages
21619
21620 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
21621
21622         * exp_dist.adb: Split declaration of asynchronous flag out of
21623         Add_RACW_Read_Attribute.
21624         Minor reformatting for better alignment with PolyORB version.
21625         Store the entity for the asynchronous flag of an RACW, rather than the
21626         expression, in the asynchronous flags table. This will allow this flag
21627         to be used in other subprograms beside Add_RACW_Read_Attribute.
21628
21629 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
21630
21631         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
21632         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
21633         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
21634         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
21635         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
21636         sockets constant MSG_NOSIGNAL (Linux-specific).
21637         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
21638         all Send operations.
21639         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
21640         from trigerring SIGPIPE.
21641         Rename components to avoid clash with Ada 2005 possible reserved
21642         word 'interface'.
21643         (Check_Selector): When the select system call returns with an error
21644         condition, propagate Socket_Error to the caller.
21645
21646 2004-10-01  Jan Hubicka  <jh@suse.cz>
21647
21648         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
21649
21650 2004-09-23  Robert Dewar  <dewar@gnat.com>
21651
21652         PR ada/17540
21653         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
21654         instead do this at freeze time (we won't do it if there is an address
21655         clause).
21656         Change "pragma inline" to "pragma Inline" in information and error
21657         messages.
21658         Minor reformatting.
21659
21660         * freeze.adb (Check_Address_Clause): Remove previous change, not the
21661         right way of doing things after all.
21662         (Freeze_Entity): For object, set Is_Public for imported entities
21663         unless there is an address clause present.
21664
21665 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
21666
21667         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
21668         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
21669         ensures proper handling of types with rep clauses, which might have
21670         their TYPE_SIZE set already.
21671
21672 2004-09-21  Robert Dewar  <dewar@gnat.com>
21673
21674         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
21675         packed array types in both little- and big-endian cases. This change
21676         ensures that we no longer count on the unused bits being initialized
21677         for such types (and in particular ensures that equality testing will
21678         only read the relevant bits).
21679         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
21680         These changes mean that we no longer need to initialize small packed
21681         arrays.
21682         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
21683         optimization to an LJM field as to its parent field.
21684
21685         * ada-tree.h, trans.c, utils.c, utils2.c:
21686         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
21687
21688 2004-09-20  Jan Hubicka  <jh@suse.cz>
21689
21690         * utils.c (gnat_finalize): Remove.
21691         (end_subprog_body): Directly call cgraph_finalize_function;
21692         do not lower the nested functions.
21693
21694 2004-09-20  Robert Dewar  <dewar@gnat.com>
21695
21696         PR ada/17540
21697         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
21698         if an address clause is present, since that means that the Import
21699         should be ignored.
21700
21701 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
21702
21703         * 5tsystem.ads: Removed, no longer used.
21704
21705 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
21706             Zack Weinberg  <zack@codesourcery.com>
21707
21708         * ada-tree.def: Use tree_code_class enumeration constants
21709         instead of code letters.
21710         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
21711         Update for new tree-class enumeration constants.
21712
21713 2004-09-17  Vincent Celier  <celier@gnat.com>
21714
21715         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
21716         capabilities of the general project manager.
21717
21718 2004-09-09  Vincent Celier  <celier@gnat.com>
21719
21720         * a-direct.ads: Add pragma Ada_05
21721         (Directory_Entry_Type): Give default value to component Kind to avoid
21722         not initialized warnings.
21723
21724         * a-direct.adb (Current_Directory): Remove directory separator at the
21725         end.
21726         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
21727         an existing directory.
21728         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
21729         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
21730         Convert the result to File_Size.
21731
21732         * prj.ads: (Project_Error): New exception
21733
21734         * prj-attr.adb: Except in procedure Initialize, Fail comes from
21735         Prj.Com, not from Osint.
21736         (Attrs, Package_Attributes): Tables moved to private part of spec
21737         (Add_Attribute, Add_Unknown_Package): Moved to new child package
21738         Prj.Attr.PM.
21739         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
21740         Prj.Project_Error after call to Fail.
21741         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
21742         Fail. Check that package name is not already in use.
21743
21744         * prj-attr.ads: Comment updates to indicate that all subprograms may be
21745         used by tools, not only by the project manager, and to indicate that
21746         exception Prj.Prj_Error may be raised in case of problem.
21747         (Add_Unknown_Package, Add_Attribute): Moved to new child package
21748         Prj.Attr.PM.
21749         (Attrs, Package_Attributes): Table instantiations moved from the body to
21750         the private part to be accessible from Prj.Attr.PM body.
21751
21752         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
21753         from new package Prj.Attr.PM.
21754         (Parse_Attribute_Declaration): Call Add_Attribute from new package
21755         Prj.Attr.PM.
21756
21757         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
21758
21759         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
21760         instead of Elaboration_Checks).
21761
21762         * a-calend.adb: Minor reformatting
21763
21764 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21765
21766         * gigi.h (maybe_pad_type): New declaration.
21767         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
21768
21769         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
21770
21771         * cuintp.c: Convert to use buildN.
21772
21773         * decl.c (maybe_pad_type): No longer static.
21774         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
21775         target pointer.
21776         Convert to use buildN.
21777
21778         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
21779         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
21780         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
21781         RHS.
21782         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
21783         (gnat_gimplify_expr, case ADDR_EXPR): New case.
21784         Convert to use buildN.
21785
21786         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
21787         TREE_READONLY for const.
21788         Convert to use buildN.
21789
21790         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
21791         (create_var_decl): Refine when TREE_STATIC is set.
21792         Convert to use buildN.
21793
21794 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
21795
21796         * gnat_ugn.texi: Delete text relating to checking of ali and object
21797         consistency.
21798
21799         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
21800         routines.
21801
21802 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
21803
21804         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
21805         pragmas recognized by GNAT.
21806
21807         * gnat_rm.texi: Document pragma Detect_Blocking.
21808
21809         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
21810         raise Program_Error if called from a protected operation.
21811
21812         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
21813         the protected action nesting level.
21814         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
21815         protected action nesting level.
21816         (Unlock): When pragma Detect_Blocking is active decrease the protected
21817         action nesting level.
21818
21819         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
21820         Protected_Action_Nesting.
21821
21822         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
21823         Common_ATCB record. It contains the dynamic level of protected action
21824         nesting for each task. It is needed for checking whether potentially
21825         blocking operations are called from protected operations.
21826         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
21827         Detect_Blocking is active or not in the partition.
21828
21829         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
21830         raise Program_Error if called from a protected operation.
21831         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
21832         Program_Error if called from a protected operation.
21833         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
21834         Program_Error if called from a protected operation.
21835
21836         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
21837         raise Program_Error if called from a protected operation.
21838
21839         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
21840         raise Program_Error if called from a protected operation, and increase
21841         the protected action nesting level.
21842         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
21843         Program_Error if called from a protected operation, and increase the
21844         protected action nesting level.
21845         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
21846         protected action nesting level.
21847
21848         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
21849         raise Program_Error if called from a protected operation, and increase
21850         the protected action nesting level.
21851         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
21852         Program_Error if called from a protected operation, and increase the
21853         protected action nesting level.
21854         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
21855         raise Program_Error if called from a protected operation.
21856         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
21857         active, raise Program_Error if called from a protected operation.
21858         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
21859         protected action nesting level.
21860
21861         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
21862         insertion of the statement raising Program_Error. The run time
21863         contains the required machinery for handling that.
21864
21865         * sem_util.ads: Change comment associated to procedure
21866         Check_Potentially_Blocking_Operation.
21867         This procedure does not insert a call for raising the exception because
21868         that is currently done by the run time.
21869
21870         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
21871
21872         * init.c: Add the global variable __gl_detect_blocking that indicates
21873         whether pragma Detect_Blocking is active (1) or not (0). Needed for
21874         making the pragma available at run time.
21875         (__gnat_set_globals): Pass and update the detect_blocking parameter.
21876
21877         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
21878         pragma Detect_Blocking is active.
21879
21880         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
21881
21882         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
21883         DB is found in the ali file. Any unit compiled with pragma
21884         Detect_Blocking active forces its effect in the whole partition.
21885
21886         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
21887         Detect_Blocking is active and delay is called from a protected
21888         operation.
21889
21890         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
21891         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
21892         Detect_Blocking is active (0 otherwise).
21893         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
21894         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
21895         otherwise).
21896
21897 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
21898
21899         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
21900         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
21901         package.
21902
21903         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
21904         (Register_Receiving_Stub): Add Subp_Info formal parameter.
21905         Update API in placeholder implemetation of s-parint to reflect changes
21906         in distribution runtime library.
21907
21908         * sem_ch3.adb (Expand_Derived_Record): Rename to
21909         Expand_Record_Extension.
21910
21911         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
21912         primitive operations of potentially distributed object types that have
21913         non-controlling anonymous access formals.
21914
21915         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
21916         subprogram.
21917         New implementation of expansion for remote access-to-subprogram types,
21918         based on the RACW infrastructure.
21919         This version of sem_dist is compatible with PolyORB/DSA as well as
21920         GLADE.
21921
21922         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
21923         Asynchrronous that applies to a remote access-to-subprogram type, mark
21924         the underlying RACW type as asynchronous.
21925
21926         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
21927          __gnat_using_gnu_linker to 1.
21928
21929         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
21930         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
21931         GNAT.Perfect_Hash_Generators, and remove the empty
21932         GNAT.Perfect_Hash package.
21933
21934         * atree.adb: Minor reformatting
21935
21936         * exp_ch3.adb (Expand_Derived_Record): Rename to
21937         Expand_Record_Extension.
21938         (Build_Record_Init_Proc.Build_Assignment): The default expression in
21939         a component declaration must remain attached at that point in the
21940         tree so New_Copy_Tree copies it if the enclosing record type is derived.
21941         It is therefore necessary to take a copy of the expression when building
21942         the corresponding assignment statement in the init proc.
21943         As a side effect, in the case of a derived record type, we now see the
21944         original expression, without any rewriting that could have occurred
21945         during expansion of the ancestor type's init proc, and we do not need
21946         to go back to Original_Node.
21947
21948         * exp_ch3.ads (Expand_Derived_Record): Rename to
21949         Expand_Record_Extension.
21950
21951         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
21952         Returns the RACW type used to implement a remote access-to-subprogram
21953         type.
21954         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
21955         New subprograms. Used to create a proxy tagged object for a remote
21956         subprogram. The proxy object is used as the designated object
21957         for RAS values on the same partition (unless All_Calls_Remote applies).
21958         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
21959         System.Partition_Interface.Get_Unique_Remote_Pointer.
21960         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
21961         Renamed from Add_RAS_*_Attribute.
21962         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
21963         subprograms.
21964         New implementation of expansion for remote access-to-subprogram types,
21965         based on the RACW infrastructure.
21966
21967         * exp_dist.ads (Copy_Specification): Update comment to note that this
21968         function can copy the specification from either a subprogram
21969         specification or an access-to-subprogram type definition.
21970
21971 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
21972
21973         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
21974         in an instance, between an explicit subprogram an one inherited from a
21975         type derived from an actual.
21976
21977         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
21978         add a polling call if the subprogram is to be inlined by the back-end,
21979         to avoid repeated calls with multiple inlinings.
21980
21981         * checks.adb (Apply_Alignment_Check): If the expression in the address
21982         clause is a call whose name is not a static entity (e.g. a dispatching
21983         call), treat as dynamic.
21984
21985 2004-09-09  Robert Dewar  <dewar@gnat.com>
21986
21987         * g-trasym.ads: Minor reformatting
21988
21989         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
21990         packed arrays, since unused bits are expected to be zero for a
21991         comparison.
21992
21993 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
21994
21995         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
21996         comment.
21997
21998 2004-09-09  Pascal Obry  <obry@gnat.com>
21999
22000         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
22001         enable map file generation. Add the right option to generate the map
22002         file if Map_File is set to True.
22003
22004         * gnatdll.adb (Gen_Map_File): New variable.
22005         (Syntax): Add info about new -m (Map_File) option.
22006         (Parse_Command_Line): Add support for -m option.
22007         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
22008         Minor reformatting.
22009
22010 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
22011
22012         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
22013         new gnatdist implementation.
22014         Define a subpackage isolating the output routines specific to this
22015         verbose mode.
22016
22017 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
22018
22019         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
22020
22021         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
22022
22023 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
22024
22025         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
22026         internal unit.
22027
22028         * opt.ads: Add Ada_Version_Runtime constant used to decide which
22029         version of the language is used to compile the run time.
22030
22031 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
22032
22033         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
22034         of variable length temporaries for function return now that the
22035         back-end and gigi support it.
22036
22037 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22038
22039         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
22040
22041         * trans.c (struct stmt_group): Delete field GLOBAL.
22042         (gnat_init_stmt_group): Do not initialize it.
22043         (call_to_gnu): Use save_expr, not protect_multiple_eval.
22044         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
22045         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
22046         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
22047         (start_stmt_group): Likewise.
22048         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
22049
22050         * utils2.c (ggc.h): Include.
22051         (build_call_raise): Call build_int_cst, not build_int_2.
22052
22053         * utils.c (gnat_init_decl_processing): Fix arg to
22054         build_common_tree_nodes.
22055         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
22056         (gnat_define_builtin): Set built_in_decls.
22057         (init_gigi_decls): Call build_int_cst, not build_int_2.
22058
22059         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
22060         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
22061         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
22062         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
22063         SET_TYPE_MODULE): Use them.
22064         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
22065         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
22066         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
22067         SET_TYPE_ADA_SIZE): Likewise.
22068         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
22069         (DECL_CONST_CORRESPONDING_VAR,
22070         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
22071         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
22072         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
22073         (TYPE_RM_SIZE_NUM): New macro.
22074         (TYPE_RM_SIZE): Modified to use above.
22075
22076         * cuintp.c: (build_cst_from_int): New function.
22077         (UI_To_gnu): Use it.
22078
22079         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
22080         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
22081         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
22082         MIN_EXPR for the size, copy it into new.
22083
22084 2004-09-01  Robert Dewar  <dewar@gnat.com>
22085
22086         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
22087         packed indexed component where array is an IN OUT formal. This
22088         generated garbage code previously.
22089
22090         * gnat_ugn.texi: Document -fverbose-asm
22091
22092         * gnat-style.texi: Minor updates (note that boolean constants and
22093         variables are joined with AND/OR rather than short circuit forms).
22094
22095 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
22096
22097         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
22098         it is an upward conversion of an untagged type with no representation
22099         change.
22100
22101 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
22102
22103         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
22104         System.Partition_Interface.
22105
22106         * checks.adb (Apply_Access_Checks): Do not generate checks when
22107         expander is not active (but check for unset reference to prefix of
22108         dereference).
22109
22110         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
22111         pragma Debug as an if statement with a constant condition, for
22112         consistent treatment of entity references contained within the
22113         enclosed procedure call.
22114
22115 2004-09-01  Vincent Celier  <celier@gnat.com>
22116
22117         * bindgen.adb: (Set_EA_Last): New procedure
22118         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
22119         Set_EA_Last.
22120         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
22121         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
22122         linked without errors.
22123         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
22124         ST and EA.
22125         (Gen_Exception_Table_C): Correct same bugs
22126
22127         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
22128
22129         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
22130         on Windows, make sure that the drive letter is in upper case.
22131
22132         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
22133         Windows, when the drive letter is added and Case_Sensitive is True, the
22134         drive letter is forced to upper case.
22135
22136         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
22137         to Options_2 for the call to MLib.Utl.Gcc.
22138
22139         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
22140         directory separator when defining BASE_DIR.
22141
22142 2004-09-01  Pascal Obry  <obry@gnat.com>
22143
22144         * gprcmd.adb (Extend): Do not output trailing directory separator. This
22145         is not needed and it confuses Windows GNU/make which does not report
22146         directory terminated by a slash as a directory.
22147         (gprcmd): Idem for "pwd" internal command.
22148
22149         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
22150         target names rewrite to fix regressions with recent version of
22151         GNU/make. Starting with GNU/make 3.80 the pipe character was not
22152         handled properly anymore.
22153
22154 2004-09-01  Andreas Schwab  <schwab@suse.de>
22155
22156         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
22157         * raise.c [!IN_RTS]: Undef abort.
22158
22159 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
22160
22161         * utils2.c (build_allocator): Use ssize_int.
22162
22163         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
22164
22165 2004-08-27  Andreas Schwab  <schwab@suse.de>
22166
22167         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
22168
22169 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
22170             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22171
22172         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
22173
22174 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
22175
22176         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
22177         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
22178         * utils.c (init_gigi_decls): Likewise.
22179         * utils2.c (build_call_raise, build_allocator): Likewise.
22180
22181 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
22182
22183         * utils.c (gnat_init_decl_processing): Adjust
22184         build_common_tree_nodes call.
22185
22186 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
22187
22188         * utils2.c (build_allocator): Use build_int_cst for negative
22189         size types.
22190
22191 2004-08-18  Richard Henderson  <rth@redhat.com>
22192
22193         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
22194
22195 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
22196
22197         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
22198         call.s
22199         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
22200         (gnat_to_gnu): Likewise.
22201
22202 2004-08-16  Pascal Obry  <obry@gnat.com>
22203
22204         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
22205         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
22206         option and not mdll anymore. Update comment.
22207
22208 2004-08-16  Pascal Obry  <obry@gnat.com>
22209
22210         * bld.adb (Put_Include_Project): Properly handle directory separators
22211         on Windows.
22212
22213 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
22214
22215         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
22216         decreasing the number of allocated junk nodes while searching for the
22217         appropriate subprogram.
22218
22219 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
22220
22221         * cuintp.c (UI_To_gnu): Use build_int_cst..
22222         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
22223         * utils.c (init_gigi_decls): Likewise.
22224         * utils2.c (build_call_raise): Likewise.
22225
22226 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
22227
22228         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
22229         for a global aliased object with a variable size and an unconstrained
22230         nominal subtype, pretend there is no initializer if the one we have is
22231         incomplete, and avoid referencing an inexistant component in there. The
22232         part we have will be rebuilt anyway and the reference may confuse
22233         further operations.
22234
22235 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
22236
22237         * einfo.ads: Minor reformatting
22238
22239         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
22240         restrictions in the ALI if we only want to warn about violations.
22241
22242 2004-08-13  Vincent Celier  <celier@gnat.com>
22243
22244         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
22245         when creating a new Unit_Record in table Units.
22246
22247         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
22248         that are violated, if any.
22249
22250         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
22251         add directory separator if path already ends with a directory separator.
22252
22253 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
22254
22255         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
22256         unit, this is an attempt to inline a construct that is not available in
22257         the current restricted mode, so abort rather than trying to continue.
22258
22259         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
22260         discriminants that rename those of the parent, recover names of
22261         original discriminants for the constraint on the full view of the
22262         parent.
22263         (Complete_Private_Subtype): Do not create a subtype declaration if the
22264         subtype is an itype.
22265
22266         * gnat_rm.texi: Added section on implementation of discriminated
22267         records with default values for discriminants.
22268
22269 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
22270
22271         PR ada/15601
22272         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
22273         the second operand is overloaded.
22274
22275 2004-08-10  Richard Henderson  <rth@redhat.com>
22276
22277         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
22278         add __builtin_alloca.
22279
22280 2004-08-10  Richard Henderson  <rth@redhat.com>
22281
22282         * config-lang.in (boot_language): Yes.
22283
22284 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
22285
22286         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
22287         from complaining on potential uninitialized reference.
22288         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
22289         new specification and test explicitly for non-zero return value.
22290
22291         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
22292         returning C.int, to avoid using a derived boolean type.
22293
22294         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
22295         Duplicate_Subexpr_No_Checks in preference to direct use of
22296         Remove_Side_Effects and New_Copy_Tree.
22297         Clear Comes_From_Source on prefix of 'Size attribute reference.
22298
22299         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
22300         g-socthi-vxworks.adb: Change calls to
22301         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
22302         and test explicitly for non-zero return value.
22303
22304         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
22305         (Is_Socket_In_Set): Declare imported function as returning C.int, to
22306         avoid using a derived boolean type.
22307
22308 2004-08-09  Albert Lee  <lee@gnat.com>
22309
22310         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
22311
22312 2004-08-09  Pascal Obry  <obry@gnat.com>
22313
22314         * gnat_ugn.texi: Document new way to build DLLs on Windows using
22315         GCC's -shared option.
22316
22317         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
22318         Options_2 parameter (options put after object files).
22319
22320 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
22321
22322         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
22323         ignore overflows on low and high bounds of an index to also account for
22324         differences in signedness between sizetype and gnu_index_subtype.
22325         These are as legitimate as the ones caused by a lower TYPE_PRECISION
22326         on sizetype.
22327
22328 2004-08-09  Robert Dewar  <dewar@gnat.com>
22329
22330         * s-solita.ads, s-solita.adb: Minor reformatting
22331
22332         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
22333         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
22334         obsolescent section
22335         Add note that No_Implicit_Conditionals does not suppress
22336         run time constraint checks.
22337
22338         * vms_conv.ads: Minor reformatting
22339
22340         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
22341         and necessary for following change).
22342         (Mark): Return new format Mark_Id containing sec stack address
22343         (Release): Use sec stack address from Mark_Id avoiding Self call
22344
22345         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
22346         pointer (cleanup and necessary for following change).
22347         Define Mark_Id as record containing address of secondary stack, that way
22348         Release does not need to find the stack again, decreasing the number of
22349         calls to Self and improving efficiency.
22350
22351         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
22352
22353         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
22354         case variable into the individual case branches when possible.
22355
22356         * sem_ch11.adb: Minor reformatting
22357
22358         * prj.ads: Correct spelling of suffixs
22359
22360         * prj-nmsc.adb: Minor reformatting
22361         Correct spelling suffixs throughout (also in identifiers)
22362
22363         * freeze.adb: Minor spelling correction
22364
22365         * exp_ch2.adb: Cleanups to handling of Current_Value
22366         (no functional effect).
22367
22368         * bld.adb: Correct spelling of suffixs
22369
22370         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
22371
22372 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
22373
22374         PR ada/15408
22375         * sem_ch7.adb (Install_Private_Declarations): In the body of the
22376         package or of a child, private entities are both immediately_visible
22377         and not hidden.
22378
22379 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
22380
22381         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
22382         there are no range checks on the value of the literal.
22383
22384         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
22385         wrapped is the triggering alternative of an asynchronous select, action
22386         statements mustbe inserted before the select itself.
22387
22388         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
22389         case where the prefix is a protected function call.
22390         (Resolve_Attribute, case 'Access): The attribute reference on a
22391         subprogram is legal in a generic body if the subprogram is declared
22392         elsewhere.
22393
22394 2004-08-09  Vincent Celier  <celier@gnat.com>
22395
22396         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
22397         languages, otherwise building the library may fail with unresolved
22398         symbols.
22399         (Compile_Sources): Do not build libraries if -c switch is used
22400
22401         * gnatlink.adb (Process_Args): New switches -M and -Mmap
22402         (Write_Usage): If map file creation is supported, output new switches
22403         -M and -Mmap.
22404         (Gnatlink): When -M is specified, add the necessary switch(es) to the
22405         gcc call, when supported.
22406
22407         * Makefile.in: Added indepsw.o to the object list for gnatlink
22408         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
22409
22410         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
22411         indepsw.adb, indepsw.ads: New files.
22412
22413 2004-08-09  Bernard Banner  <banner@gnat.com>
22414
22415         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
22416
22417         * Makefile.in: add section for vxworks x86
22418
22419 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
22420
22421         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
22422         per-object constrained components where the discriminant is of an
22423         Access type.
22424         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
22425         the parent initialization procedure for derived Unchecked_Unions.
22426         Instead, derived Unchecked_Unions build their own initialization
22427         procedure.
22428         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
22429         Check the body of the subprogram for details.
22430         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
22431         functions for derived Unchecked_Union types by introducing a condition.
22432         Allow the creation of TSS equality functions for Unchecked_Unions.
22433         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
22434         Add formal parameter Discr to function signature. Discr is used to
22435         control the generated case statement for Unchecked_Union types.
22436         (Make_Eq_If): Rename formal parameter Node to E in function signature.
22437
22438         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
22439         Unchecked_Unions.
22440         Check the body of the subprogram for details.
22441         (Expand_Composite_Equality): Augment composite type equality to include
22442         correct handling of Unchecked_Union components.
22443         (Expand_N_In): Add condition to detect illegal membership tests when the
22444         subtype mark is a constrained Unchecked_Union and the expression lacks
22445         inferable discriminants, and build a Raise_Program_Error node.
22446         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
22447         to detect types that contain components of unconstrained Unchecked_Union
22448         subtype. Add condition to detect equality between types that have an
22449         unconstrained Unchecked_Union component, and build a Raise_Program_Error
22450         node. Add condition to detect equality between Unchecked_Union types
22451         that lack inferable discriminants, and build a Raise_Program_Error node.
22452         Otherwise build a TSS equality function call.
22453         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
22454         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
22455         with the operand lacking inferable discriminants, and build a Raise_
22456         Program_Error node.
22457         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
22458         composite equality.
22459         (Has_Inferable_Discriminants): Implement new predicate for objects and
22460         expressions of Unchecked_Union type. Check the body of subprogram for
22461         details.
22462         (Has_Unconstrained_UU_Components): Add function
22463         Component_Is_Unconstrained_UU. It is used to detect whether a single
22464         component is of an unconstrained Unchecked_Union subtype. Add function
22465         Variant_Is_Unconstrained_UU. It is used to detect whether a single
22466         component inside a variant is of an unconstrained Unchecked_Union type.
22467
22468         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
22469         inferred discriminant values. Add condition to generate a case
22470         statement with an inferred discriminant as the switch.
22471         (Make_Component_List_Assign): Introduce a Boolean flag that determines
22472         the behaviour of the subprogram in the presence of an Unchecked_Union.
22473         Add condition to trigger the usage of the inferred discriminant value
22474         as the generated case statement switch.
22475         (Make_Field_Assign): Introduce a Boolean flag that determines the
22476         behaviour of the subprogram in the presence of an Unchecked_Union. Add
22477         condition to trigger the usage of the inferred discriminant value as
22478         the right-hand side of the generated assignment.
22479
22480         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
22481         parameter generation when dealing with Unchecked_Unions.
22482
22483         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
22484         checks for Unchecked_Unions.
22485
22486         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
22487
22488         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
22489         Raise_Program_Error nodes for the execution of Read and Write
22490         attributes of Unchecked_Union types and the execution of Input and
22491         Output attributes of Unchecked_Union types that lack default
22492         discriminant values.
22493
22494         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
22495         Unchecked_Union. Add procedure Check_Component. It is used to inspect
22496         per-object constrained components of Unchecked_Unions for being
22497         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
22498         check individual components withing a variant.
22499
22500         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
22501         comparison of Unchecked_Unions.
22502         (Resolve_Equality_OP): Remove guard that prevents equality between
22503         Unchecked_Unions.
22504
22505         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
22506         of component subtypes for Unchecked_Union components.
22507         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
22508         since it is the actual subtype.
22509
22510         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
22511         pass of Unchecked_Union subtypes as generic actuals to formal types
22512         that lack known_discriminant_parts or that are derived Unchecked_Union
22513         types, and do nothing. In any other case, produce an error message.
22514
22515         * sem_ch3.adb (Analyze_Component_Declaration): Add function
22516         Contains_POC. It determines whether a constraint uses the discriminant
22517         of an enclosing record type.
22518         Add condition to detect per-object constrained component and set the
22519         appropriate flag.
22520         (Derived_Type_Declaration): Remove guard that prevents derivation from
22521         Unchecked_Union types.
22522         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
22523         Union subtypes.
22524
22525         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
22526         references to Unchecked_Union discriminants.
22527
22528         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
22529         formal generation when dealing with Unchecked_Unions.
22530         (Set_Actual_Subtypes): Add condition to prevent generation of actual
22531         subtypes for Unchecked_Unions.
22532
22533         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
22534         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
22535         completions of discriminated partial views by Unchecked_Unions and
22536         produce an error message.
22537
22538 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22539
22540         * trans.c (struct stmt_group): New field, GLOBAL.
22541         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
22542         (struct elab_info): New struct.
22543         (elab_info_list, gnu_elab_proc_stack): New variables.
22544         (Compilation_Unit_to_gnu): New procedure.
22545         (gigi): Call it and also handle elaboration procs we've saved.
22546         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
22547         global field from parent.
22548         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
22549         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
22550         (start_stmt_group): Initialize global field from parent.
22551         (add_decl_expr): Set to global for current statement group.
22552         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
22553         post.
22554
22555         * utils.c (global_bindings_p): True when no current_function_decl; no
22556         longer check current_binding_level.
22557
22558 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
22559
22560         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
22561         choice.
22562
22563         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
22564
22565 2004-08-06  Andreas Schwab  <schwab@suse.de>
22566
22567         * utils.c (gnat_define_builtin): Remove second parameter of
22568         make_decl_rtl.
22569         (begin_subprog_body): Likewise.
22570
22571 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
22572
22573         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
22574         optimization, not supported by the tree-ssa back-end.
22575
22576 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
22577
22578         * s-mastop-irix.adb: Update comments.
22579
22580         * a-except.adb (Exception_Information): Raise Constraint_Error if
22581         exception Id is Null_Id.
22582         This is required behavior, which is more reliably and clearly checked
22583         at the top level interface level.
22584
22585 2004-07-26  Javier Miranda  <miranda@gnat.com>
22586
22587         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
22588         call if a component has no default_expression and the box is used.
22589
22590         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
22591         default_expression and you use box, it behaves as if you had declared a
22592         stand-alone object.
22593         (Resolve_Record_Aggregate): If a component has no default_expression and
22594         you use box, it behaves as if you had declared a stand-alone object.
22595
22596         * sem_ch10.adb (Install_Siblings): Do not make visible the private
22597         entities of private-with siblings.
22598
22599 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
22600
22601         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
22602         for a component of an itype, set the parent pointer for analysis,
22603         there is no list in which to insert it.
22604
22605         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
22606         bona-fide renamings, not for inherited operations.
22607
22608         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
22609         actual for a formal that is an access parameter, create local
22610         finalization list even if the expression is not an aggregate.
22611
22612 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
22613
22614         PR ada/16213
22615         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
22616         Diagnose properly illegal subprogram renamings that are library units.
22617
22618 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
22619
22620         PR ada/15588
22621         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
22622         conversion rewritten as an unchecked conversion, check that original
22623         expression is a variable.
22624
22625         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
22626         unchecked_conversion, create new node rather than rewriting in place,
22627         to preserve original construct.
22628
22629 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22630
22631         * gigi.h (gnat_expand_body): Deleted.
22632
22633         * Make-lang.in: (trans.o): Depends on function.h.
22634
22635         * misc.c: (gnat_expand_body): Moved to here.
22636
22637         * trans.c (gnat_expand_body_1): Deleted.
22638         (gnat_expand_body): Moved from here.
22639         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
22640         (add_stmt): Check for marked visited with global_bindings_p.
22641         (gnat_gimplify_expr, case COMPONENT_REF): New case.
22642         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
22643
22644         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
22645         VIEW_CONVERT_EXPR if not operation type.
22646
22647         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
22648         fat pointer.
22649
22650         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
22651         changes: reformatting of negation operators, removing unneeded
22652         inequality comparison with zero, converting equality comparisons with
22653         zero to negations, changing int/0/1 to bool/false/true, replace calls
22654         to gigi_abort with abort, and various other similar changes.
22655
22656 2004-07-26  Vincent Celier  <celier@gnat.com>
22657
22658         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
22659         "setup".
22660
22661         * make.adb (Gnatmake): Fail when a library is not present and there is
22662         no object directory.
22663
22664         * mlib-prj.adb (Check_Library): No need to check if the library needs
22665         to be rebuilt if there is no object directory, hence no object files
22666         to build the library.
22667
22668         * opt.ads (Setup_Projects): New Boolean flag.
22669
22670         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
22671         Location.
22672         Create directory when Kind /= "" and in "gnat setup". Report error if
22673         directory cannot be created.
22674         (Ada_Check): Create library interface copy dir if it does not exist
22675         and we are in "gnat setup".
22676         (Find_Sources): No error if in "gnat setup" and no Ada sources were
22677         found.
22678         (Language_Independent_Check): Create object directory, exec directory
22679         and/or library directory if they do not exist and we are in
22680         "gnat setup".
22681
22682         * vms_conv.ads: (Command_Type): New command Setup.
22683
22684         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
22685
22686         * vms_data.ads: Add qualifiers/switches for new built-in command
22687         "setup".
22688
22689 2004-07-25  Richard Henderson  <rth@redhat.com>
22690
22691         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
22692         DECL_IGNORED_P on RESULT_DECL.
22693
22694 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
22695
22696         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
22697         allocation and potentially overflowing update with
22698         Tailored_Exception_Information. Use the sec-stack free procedural
22699         interface to output Exception_Information instead.
22700
22701         * a-except.adb (To_Stderr): New subprogram for character, and string
22702         version moved from a-exextr to be visible from other separate units.
22703         (Tailored_Exception_Information): Remove the procedural version,
22704         previously used by the default Last_Chance_Handler and not any more.
22705         Adjust various comments.
22706
22707         * a-exexda.adb: Generalize the exception information procedural
22708         interface, to minimize the use of secondary stack and the need for
22709         local buffers when the info is to be output to stderr:
22710         (Address_Image): Removed.
22711         (Append_Info_Character): New subprogram, checking for overflows and
22712         outputing to stderr if buffer to fill is of length 0.
22713         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
22714         (Append_Info_Address, Append_Info_Exception_Name,
22715         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
22716         Append_Info_Basic_Exception_Traceback,
22717         Append_Info_Exception_Information): New subprograms.
22718         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
22719         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
22720         Exception_Info_Maxlength, Exception_Name_Length,
22721         Exception_Message_Length): New subprograms.
22722         (Exception_Information): Use Append_Info_Exception_Information.
22723         (Tailored_Exception_Information): Use
22724         Append_Info_Basic_Exception_Information.
22725         Export services for the default Last_Chance_Handler.
22726
22727         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
22728         other separate units.
22729
22730 2004-07-20  Vincent Celier  <celier@gnat.com>
22731
22732         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
22733
22734 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
22735
22736         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
22737         emit itype references for the designated types of component types that
22738         are declared outside of the full record declaration, and that may
22739         denote a partial view of that record type.
22740
22741 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
22742
22743         PR ada/15607
22744         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
22745         which is the designated type in an access component declaration, to the
22746         list of incomplete dependents of the parent type, to avoid elaboration
22747         issues with out-of-scope subtypes.
22748         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
22749         full view of the parent.
22750
22751 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
22752
22753         PR ada/15610
22754         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
22755         entities that are hidden, such as references to generic actuals
22756         outside an instance.
22757
22758 2004-07-20  Javier Miranda  <miranda@gnat.com>
22759
22760         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
22761         support to the new notation.
22762         (Analyze_Selected_Component): Add call to Try_Object_Operation.
22763
22764 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
22765
22766         * s-taprob.adb: Adding the elaboration code required for initializing
22767         the tasking soft links that are common to the full and the restricted
22768         run times.
22769
22770         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
22771         restricted run time has been moved to the package
22772         System.Soft_Links.Tasking.
22773
22774         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
22775         restricted run time has been moved to the package
22776         System.Soft_Links.Tasking.
22777
22778         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
22779
22780         * s-solita.ads, s-solita.adb: New files.
22781
22782 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22783
22784         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
22785         Case_Statement_to_gnu): Split off from gnat_to_gnu.
22786         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
22787         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
22788         Exception_Handler_to_gnu_zcx): Likewise.
22789
22790 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
22791
22792         * gigi.h (builtin_function): Declare.
22793
22794 2004-07-15  Robert Dewar  <dewar@gnat.com>
22795
22796         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
22797         reformatting
22798
22799         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
22800         access values as an example of a warning.
22801
22802         * gnat_rm.texi: Document new attribute Has_Access_Values
22803
22804         * gnat-style.texi: Document that box comments belong on nested
22805         subprograms
22806
22807         * sem_util.ads (Has_Access_Values): Improved documentation
22808
22809         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
22810
22811         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
22812         (Process_Interface_Name): Call to this new procedure
22813         (Set_Extended_Import_Export_External_Name): Call to this new procedure
22814
22815         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
22816
22817         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
22818
22819         * einfo.ads: Minor comment typo fixed
22820
22821 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
22822
22823         * snames.adb: Add _atcb.
22824
22825         * snames.ads: Add Name_uATCB.
22826
22827         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
22828         (in the expanded code) when using the restricted run time.
22829
22830         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
22831         a in parameter in order to allow ATCBs to be preallocated (in the
22832         expanded code).
22833
22834         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
22835         order to allow ATCBs to be preallocated. In case of error, the ATCB is
22836         deallocated in System.Tasking.Stages.
22837
22838         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
22839         order to allow ATCBs to be preallocated.
22840
22841         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
22842         here. It was previously done in Initialize_ATCB.
22843
22844         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
22845
22846         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
22847         Restricted run time.
22848
22849         * exp_ch3.adb: When using the Restricted run time, pass the
22850         preallocated Ada_Task_Control_Block when creating a task.
22851
22852 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
22853
22854         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
22855         function call that is itself an actual in an enclosing call, diagnose
22856         problem here rather than assuming that resolution will catch it.
22857
22858         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
22859         the local copy of a generic unit for a formal package, and the generic
22860         is a child unit, install private part of ancestors before compiling
22861         private part of spec.
22862
22863         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
22864         use scope entities rather than tree structures, to handle properly
22865         parent units that are instances rewritten as bodies for inlining
22866         purposes.
22867
22868         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
22869         Remove_Parents): Handle properly a parent unit that is an
22870         instantiation, when the unit has been rewritten as a body for inlining
22871         purposes.
22872
22873         * par.adb (Goto_List): Global variable to collect goto statements in a
22874         given unit, for use in detecting natural loops.
22875
22876         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
22877         use in detecting natural loops.
22878
22879         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
22880         backwards goto's, and rewrite as a infinite loop, to improve locality
22881         of temporaries.
22882
22883         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
22884         subcomponent that includes an indexed reference, to prevent the
22885         generation of copies that would miscompile the desired assignment
22886         statement.
22887         (Build_Task_Image_Decls): Add a numeric suffix to
22888         generated name for string variable, to avoid spurious conflicts with
22889         the name of the type of a single protected object.
22890
22891         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
22892         loop with an explicit exit statement, to avoid generating an
22893         out-of-range value with 'Succ leading to spurious constraint_errors
22894         when compiling with -gnatVo.
22895
22896 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
22897
22898         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
22899         might not be analyzed yet, even if its Etype is already set (case of an
22900         unchecked conversion built using Unchecked_Convert_To, for example).
22901         If the prefix has already been analyzed, this will be a nop anyway.
22902
22903         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
22904         controller type, or an assignment of a record type with controlled
22905         components, copy only user data, and leave the finalization chain
22906         pointers untouched.
22907
22908 2004-07-15  Vincent Celier  <celier@gnat.com>
22909
22910         * make.adb (Collect_Arguments): Improve error message when attempting
22911         to compile a source not part of any project, when -x is not used.
22912
22913         * prj.ads: (Defined_Variable_Kind): New subtype
22914
22915         * prj-attr.adb (Register_New_Package): Two new procedures to register
22916         a package with or without its attributes.
22917         (Register_New_Attribute): Mew procedure to register a new attribute in a
22918         package.
22919         New attribute oriented subprograms: Attribute_Node_Id_Of,
22920         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
22921         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
22922         Next_Attribute.
22923         New package oriented subprograms: Package_Node_Id_Of,
22924         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
22925
22926         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
22927         type.
22928         (Package_Node_Id): Now a private, self initialized type
22929         (Register_New_Package): New procedure to register a package with its
22930         attributes.
22931         New attribute oriented subprograms: Attribute_Node_Id_Of,
22932         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
22933         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
22934         Next_Attribute.
22935         New package oriented subprograms: Package_Node_Id_Of,
22936         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
22937
22938         * prj-dect.adb (Parse_Attribute_Declaration,
22939         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
22940
22941         * prj-makr.adb (Make): Parse existing project file before creating
22942         other files. Fail if there was an error during parsing.
22943
22944         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
22945         new spec of Prj.Attr.
22946
22947         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
22948         to new spec of Prj.Attr.
22949
22950 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22951
22952         * utils2.c: Fix typo in comment.
22953
22954 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22955
22956         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
22957         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
22958
22959 2004-07-14  Andreas Schwab  <schwab@suse.de>
22960
22961         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
22962
22963 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22964
22965         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
22966         object type.
22967         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
22968         TYPE_STUB_DECL.
22969
22970         * misc.c (gnat_types_compatible_p): New function.
22971         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
22972         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
22973
22974         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
22975         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
22976         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
22977         (mark_visited): Don't mark dummy type.
22978         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
22979         parameter, we must remove any LJM building from GNU_NAME.
22980         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
22981         (pos_to_constructor): Use int_const_binop.
22982         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
22983         PARM_DECL.
22984
22985         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
22986         (gnat_pushlevel): Set TREE_USE on BLOCK node.
22987         (gnat_install_builtins): Add __builtin_memset.
22988
22989 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
22990
22991         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
22992         for a renaming, stabilize the initialization expression if we are at a
22993         local level.  At the local level, uses of the renaming may be performed
22994         by a direct dereference of the initializing expression, and we don't
22995         want possible variables there to be evaluated for every use.
22996
22997         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
22998         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
22999         them on the way.  Account for the fact that we may introduce side
23000         effects in the process.
23001
23002 2004-07-13  Richard Henderson  <rth@redhat.com>
23003
23004         * misc.c (default_pass_by_ref): Use pass_by_reference.
23005
23006 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
23007
23008         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
23009         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
23010
23011 2004-07-08  Richard Henderson  <rth@redhat.com>
23012
23013         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
23014         commentary.
23015
23016 2004-07-06  Vincent Celier  <celier@gnat.com>
23017
23018         * vms_conv.ads: Minor reformatting.
23019         Alphabetical order for enumerated values of type Command_Type, to have
23020         the command in alphabetical order for the usage.
23021
23022         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
23023         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
23024
23025         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
23026
23027         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
23028         (Add_Archive_Path): Only add the global archive if there is one.
23029         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
23030         or not any object file to put in the global archive, and don't build
23031         a global archive if there is none.
23032         (X_Switches): New table
23033         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
23034         in the X_Switches table, if any.
23035         (Initialize): Make sure the X_Switches table is empty
23036         (Scan_Arg): Record -X switches in table X_Switches
23037
23038         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
23039
23040         * make.adb: Minor comment fix
23041
23042         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
23043         invoked with directory information, add the directory in front of the
23044         path.
23045
23046         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
23047         invoked with directory information, add the directory in front of the
23048         path.
23049
23050         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
23051         when Keep_Temporary_Files is False.
23052         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
23053         directory information, add the directory in front of the path.
23054         When not on VMS, handle new switch -dn before the command to set
23055         Keep_Temporary_Files to True.
23056         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
23057         everywhere.
23058
23059         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
23060         invoked with directory information, add the directory in front of the
23061         path.
23062
23063 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
23064
23065         * snames.ads, snames.adb (Name_Stub): New name for the distributed
23066         systems annex.
23067
23068         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
23069         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
23070
23071         * g-socket.adb (To_Timeval): Fix incorrect conversion of
23072         Selector_Duration to Timeval for the case of 0.0.
23073
23074         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
23075         documentation from Evolve_And_Then.
23076
23077 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
23078
23079         * s-taprop-tru64.adb, s-taprop-os2.adb,
23080         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
23081
23082 2004-07-06  Robert Dewar  <dewar@gnat.com>
23083
23084         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
23085         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
23086         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
23087         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
23088         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
23089         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
23090         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
23091         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
23092         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
23093         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
23094         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
23095         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
23096         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
23097         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
23098         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
23099         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
23100         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
23101         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
23102         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
23103         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
23104         vms_data.ads: Minor reformatting,
23105         Fix bad box comment format.
23106
23107         * gnat_rm.texi: Fix minor grammatical error
23108
23109         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
23110
23111         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
23112         more cases of discriminated records to be recognized as not needing a
23113         secondary stack.
23114         (Has_Access_Values): New function.
23115
23116         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
23117
23118         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
23119         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
23120         with LRM terminology).
23121         Change terminology in comments primitive type => elementary type.
23122
23123 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
23124
23125         PR ada/15602
23126         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
23127         parameters do not impose any requirements on the presence of a body.
23128
23129 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
23130
23131         PR ada/15593
23132         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
23133         compilation unit and is in an open scope at the point of instantiation,
23134         assume that a body may be present later.
23135
23136 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
23137
23138         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
23139         Improve error message when specified size is not supported.
23140
23141         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
23142         is never a primitive operation.
23143
23144 2004-07-05  Andreas Schwab  <schwab@suse.de>
23145
23146         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
23147         RECORD_OR_UNION_CHECK.
23148         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
23149
23150 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
23151
23152         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
23153         dependency on xgnatugn, instead build it via a submake.
23154         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
23155
23156 2004-07-04  Richard Henderson  <rth@redhat.com>
23157
23158         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
23159
23160 2004-07-01  Richard Henderson  <rth@redhat.com>
23161
23162         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
23163         * utils.c (max_size): Likewise.
23164
23165 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23166
23167         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
23168         and rest_of_type_compilation; add arg to create_*_decl.
23169         (annotate_decl_with_node): Deleted.
23170         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
23171         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
23172         (get_current_block_context, gnat_pushdecl): New declarations.
23173         (gnat_init_stmt_group): Likewise.
23174         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
23175         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
23176         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
23177         (gnat_init): Call gnat_init_stmt_group.
23178         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
23179         (gnu_pending_elaboration_list): Deleted.
23180         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
23181         (gigi): Rearrange initialization calls and move some to last above.
23182         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
23183         Delete calls to add_decl_expr; add arg to create_*_decl.
23184         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
23185         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
23186         begin_subprog_body and call it.
23187         Don't push and pop ggc context.
23188         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
23189         (add_stmt): Remove handling of DECL_EXPR from here.
23190         If not in function, mark visited.
23191         (add_decl_expr): Put global at top level.
23192         Check for cases of DECL_INITIAL we have to handle here.
23193         (process_type): Add extra arg to create_type_decl.
23194         (build_unit_elab): Rework to just gimplify.
23195         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
23196         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
23197         (get_pending_elaborations, pending_elaborations_p): Likewise.
23198         (push_pending_elaborations, pop_pending_elaborations): Likewise.
23199         (get_elaboration_location, insert_elaboration_list): Likewise.
23200         (gnat_binding_level): Renamed from ada_binding_level.
23201         (init_gnat_to_gnu): Don't clear pending_elaborations.
23202         (global_bindings_p): Treat as global if no current_binding_level.
23203         (set_current_block_context): New function.
23204         (gnat_pushdecl): Renamed from pushdecl; major rework.
23205         All callers changed.
23206         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
23207         (finish_record_type): Call call pushdecl for stub decl.
23208         (function_nesting_depth): Deleted.
23209         (begin_subprog_body): Delete obsolete code.
23210         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
23211
23212 2004-06-28  Robert Dewar  <dewar@gnat.com>
23213
23214         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
23215         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
23216         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
23217         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
23218         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
23219
23220         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
23221         deal with problem of inefficient slices on machines with strict
23222         alignment, when the slice is a component of a composite.
23223
23224         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
23225         machines, we need the check there as well.
23226
23227 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
23228
23229         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
23230         determine safe copying direction for overlapping slice assignments
23231         when component is controlled.
23232
23233         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
23234         formal derived type in the actual for a formal package are visible in
23235         the enclosing instance.
23236
23237 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
23238
23239         PR ada/15600
23240         * sem_util.adb (Trace_Components): Diagnose properly an illegal
23241         circularity involving a private type whose completion includes a
23242         self-referential component.
23243         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
23244         renaming or an instantiation from an implicit derived operation.
23245
23246 2004-06-28  Pascal Obry  <obry@gnat.com>
23247
23248         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
23249         DLL.
23250         (Library_File_Name_For): Idem.
23251
23252 2004-06-28  Matthew Gingell  <gingell@gnat.com>
23253
23254         * g-traceb.ads: Add explanatory note on the format of addresses
23255         expected by addr2line.
23256
23257 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
23258
23259         * Makefile.in: Force debugging information on s-tasdeb.adb,
23260         a-except.adb and s-assert.adb needed by the debugger.
23261
23262 2004-06-28  Vincent Celier  <celier@gnat.com>
23263
23264         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
23265         Need_To_Build_Lib.
23266         (Gnatmake): Ditto.
23267
23268         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
23269
23270         * prj.adb: Minor reformatting
23271         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
23272
23273         * prj.ads: Comment updates
23274         Minor reformatting
23275         (Project_Data): Change Flag1 to Need_To_Build_Lib.
23276         Remove Flag2: not used.
23277
23278         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
23279         declaration.
23280
23281         * gnat_ugn.texi: Put a "null;" declaration in one project file example
23282
23283         * gnat_rm.texi: Document Empty declarations "null;".
23284
23285         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
23286         front of the linker options.
23287         (Link_Foreign): Put the global archives and the libraries in front of
23288         the linker options.
23289
23290 2004-06-28  Javier Miranda  <miranda@gnat.com>
23291
23292         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
23293         (RTU_Loaded): Code cleanup
23294         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
23295         withed predefined units.
23296
23297         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
23298         explicitly withed predefined units.
23299         Fix typo in comment
23300
23301         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
23302         explicitly withed predefined units.
23303
23304 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23305
23306         * ada-tree.def (DECL_STMT): Deleted.
23307         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
23308         (DECL_STMT_VAR): Deleted.
23309         * decl.c: add_decl_stmt now add_decl_expr.
23310         * gigi.h: Likewise.
23311         * trans.c: Likewise.
23312         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
23313         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
23314         (add_stmt): Only handle padded type here.
23315         (add_stmt_with_node): Allow gnat_node to not be present.
23316         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
23317         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
23318         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
23319         make a SAVE_EXPR for the entire fat pointer.
23320         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
23321         (create_index_type): Make a DECL_EXPR.
23322         (end_subprog_body): Don't call allocate_struct_function here but
23323         do clear cfun.
23324
23325 2004-06-25  Pascal Obry  <obry@gnat.com>
23326
23327         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
23328         Relocatable from Build_Dynamic_Library call.
23329
23330         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
23331         Relocatable are now synonym.
23332
23333         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
23334
23335         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
23336         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
23337         call.
23338
23339         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
23340         Lib_Address and Relocatable.
23341         (Default_DLL_Address): Removed.
23342
23343         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
23344         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
23345         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
23346         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
23347         (Default_DLL_Address): Removed.
23348
23349         * mlib-tgt-mingw.adb: Ditto.
23350         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
23351
23352         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
23353         the initial thread stack size.
23354
23355         * a-strmap.ads: Move package L to private part as it is not used in
23356         the spec. Found while reading code.
23357
23358 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
23359
23360         * tracebak.c: Introduce support for a GCC infrastructure based
23361         implementation of __gnat_backtrace.
23362
23363         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
23364         any more. Use accessors instead. This eases maintenance and relaxes
23365         some alignment constraints.
23366         (_GNAT_Exception structure): Remove the Ada specific fields
23367         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
23368         a-exexpr.adb.
23369         (is_handled_by, __gnat_eh_personality): Replace component references to
23370         exception structure by use of the new accessors.
23371
23372         * init.c (__gnat_initialize): Adjust comments to match the just
23373         reverted meaning of the -static link-time option.
23374
23375         * adaint.c (convert_addresses): Arrange not to define a stub for
23376         mips-irix any more, as we now want to rely on a real version from a
23377         recent libaddr2line.
23378
23379         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
23380         the personality routine can use them and not have to rely on a C
23381         counterpart of the record anymore. This simplifies maintenance and
23382         relaxes the constraint of having Standard'Maximum_Alignment match
23383         BIGGEST_ALIGNMENT.
23384         Update comments, and add a section on the common header alignment issue.
23385
23386 2004-06-25  Geert Bosch  <bosch@gnat.com>
23387
23388         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
23389         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
23390
23391 2004-06-25  Robert Dewar  <dewar@gnat.com>
23392
23393         * gnat_rm.texi: Fix section on component clauses to indicate that the
23394         restriction on byte boundary placement still applies for bit packed
23395         arrays.
23396         Add comment on stack usage from Initialize_Scalars
23397
23398         * gnat_ugn.texi: Add documentation for -gnatyLnnn
23399
23400         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
23401         limiting nesting level.
23402
23403         * usage.adb: Add line for -gnatyLnnn switch
23404
23405         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
23406         sem_ch13.adb, exp_aggr.adb: Minor reformatting
23407
23408         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
23409         type as well as on the subtype. This corrects a problem in freeze in
23410         setting alignments of atomic types.
23411
23412         * sem_eval.ads: Minor comment typo fixed
23413
23414         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
23415         level.  Minor reformatting.
23416
23417         * fname.adb (Is_Predefined_File_Name): Require a letter after the
23418         minus sign. This means that file names like a--b.adb will not be
23419         considered predefined.
23420
23421         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
23422         record Test new flag and give diagnostic for bad component clause.
23423         (Freeze_Entity): Set alignment of array from component alignment in
23424         cases where this is safe to do.
23425
23426         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
23427         arrays.
23428
23429         * cstand.adb: (Create_Standard): Set alignment of String to 1
23430
23431         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
23432
23433         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
23434         code in the common constrained array cases.
23435
23436         * a-storio.adb: Change implementation to avoid possible alignment
23437         problems on machines requiring strict alignment (data should be moved
23438         as type Buffer, not type Elmt).
23439
23440         * checks.adb (Apply_Array_Size_Check): Improve these checks by
23441         killing the overflow checks which we really do not need (64-bits is
23442         enough).
23443
23444 2004-06-25  Vincent Celier  <celier@gnat.com>
23445
23446         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
23447         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
23448         inconditionally for the main project.
23449         (Recursive_Add_Archives.Add_Archive_Path): New procedure
23450         (Link_Executables.Check_Time_Stamps): New procedure
23451         (Link_Executables.Link_Foreign): New procedure
23452         Changes made to reduce nesting level of this package
23453         (Check): New procedure
23454         (Add_Switches): When not in quiet output, check that a switch is not
23455         the concatenation of several valid switches. If it is, issue a warning.
23456         (Build_Global_Archive): If the global archive is rebuilt, linking need
23457         to be done.
23458         (Compile_Sources): Rebuilding a library archive does not imply
23459         rebuilding the global archive.
23460         (Build_Global_Archive): New procedure
23461         (Build_Library): New name for Build_Archive, now only for library
23462         project
23463         (Check_Archive_Builder): New procedure
23464         (Create_Global_Archive_Dependency_File): New procedure
23465         (Gprmake): Call Build_Global_Archive before linking
23466         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
23467         throughout.
23468         (Scan_Arg): Display the Copyright notice when -v is used
23469
23470         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
23471         for gnatls.
23472
23473         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
23474         COMPILE.
23475         Add new GNAT LIST qualifier /FILES=
23476         Added qualifier /DIRECTORY= to GNAT METRIC
23477         Added qualifier /FILES= to GNAT METRIC
23478         Added qualifier /FILES to GNAT PRETTY
23479
23480         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
23481         to take into account both versions of the switch.
23482
23483         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
23484         always be the last switch to the gcc driver. Disable switch storing so
23485         that switches automatically added by the gcc driver are not put in the
23486         ALI file.
23487
23488         * prj.adb (Project_Empty): Take into account changes in components of
23489         Project_Data.
23490
23491         * prj.ads (Languages_Processed): New enumaration value All_Languages.
23492
23493         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
23494         used. Split Boolean component Ada_Sources_Present in two Boolean
23495         components Ada_Sources_Present and Other_Sources_Present.
23496         Minor reformatting
23497
23498         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
23499         instead of Sources_Present.
23500         (Set_Ada_Paths.Add.Recursive_Add): Ditto
23501
23502         * prj-nmsc.adb: Minor reformatting
23503         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
23504         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
23505         Check_Ada_Naming_Scheme.
23506         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
23507         throughout.
23508
23509         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
23510         In_Limited.
23511         Make sure that all cycles where there is at least one "limited with"
23512         are detected.
23513         (Parse_Single_Project): New Boolean parameter In_Limited
23514
23515         * prj-proc.adb (Recursive_Check): When Process_Languages is
23516         All_Languages, call first Prj.Nmsc.Ada_Check, then
23517         Prj.Nmsc.Other_Languages_Check.
23518
23519         * prj-proc.adb (Process): Use Ada_Sources_Present or
23520         Other_Sources_Present (instead of Sources_Present) depending on
23521         Process_Languages.
23522
23523         * lang-specs.h: Keep -g and -m switches in the same order, and as the
23524         last switches.
23525
23526         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
23527         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
23528         False.
23529         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
23530         False.
23531
23532         * lib.ads (Disable_Switch_Storing): New procedure.
23533
23534         * make.adb: Modifications to reduce nesting level of this package.
23535         (Check_Standard_Library): New procedure
23536         (Gnatmake.Check_Mains): New procedure
23537         (Gnatmake.Create_Binder_Mapping_File): New procedure
23538         (Compile_Sources.Compile): Add switch -gnatez as the last option
23539         (Display): Never display -gnatez
23540
23541         * Makefile.generic:
23542         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
23543
23544         * gnatcmd.adb (Check_Project): New function
23545         (Process_Link): New procedure to reduce nesting depth
23546         (Check_Files): New procedure to reduce the nesting depth.
23547         For GNAT METRIC, include the inherited sources in extending projects.
23548         (GNATCmd): When GNAT LS is invoked with a project file and no files,
23549         add the list of files from the sources of the project file. If this list
23550         is too long, put it in a temp text files and use switch -files=
23551         (Delete_Temp_Config_Files): Delete the temp text file that contains
23552         a list of source for gnatpp or gnatmetric, if one has been created.
23553         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
23554         in the project file is too large, create a temporary text file that
23555         list them and pass it to the tool with "-files=<temp text file>".
23556         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
23557
23558         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
23559         generated file is in not in Ada.
23560
23561         * gnatls.adb: Remove all parameters And_Save that are no longer used.
23562         (Scan_Ls_Arg): Add processing for -files=
23563         (Usage): Add line for -files=
23564
23565         * g-os_lib.adb (On_Windows): New global constant Boolean flag
23566         (Normalize_Pathname): When on Windows and the path starts with a
23567         directory separator, make sure that the resulting path will start with
23568         a drive letter.
23569
23570         * clean.adb (Clean_Archive): New procedure
23571         (Clean_Project): When there is non-Ada code, delete the global archive,
23572         the archive dependency files, the object files and their dependency
23573         files, if they exist.
23574         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
23575
23576 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
23577
23578         * sinfo.ads: Fix typo in comment.
23579
23580         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
23581         the TSS for remote access-to-subprogram types, since these TSS are
23582         always present once the type has been analyzed.
23583         (RAS_E_Dereference): Same.
23584
23585         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
23586         reference raises Bad_Attribute, mark the reference as analyzed so the
23587         node (and any children resulting from rewrites that could have occurred
23588         during the analysis that ultimately failed) is not analyzed again.
23589
23590         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
23591
23592         * exp_dist.adb: Minor comment fix.
23593
23594         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
23595         type is an anonymous access type, no unchecked deallocation of the
23596         allocated object can occur. If the object is controlled, attach it with
23597         a count of 1. This allows attachment to the Global_Final_List, if
23598         no other relevant list is available.
23599         (Get_Allocator_Final_List): For an anonymous access type that is
23600         the type of a discriminant or record component, the corresponding
23601         finalisation list is the one of the scope of the type.
23602
23603 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
23604
23605         * sem_ch3.adb (Replace_Type): When computing the signature of an
23606         inherited subprogram, use the first subtype if the derived type
23607         declaration has no constraint.
23608
23609         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
23610         before applying previous optimization. Minor code cleanup.
23611
23612         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
23613         placed at the beginning of an unpacked record without explicit
23614         alignment, a slice of it will be aligned and does not need a copy when
23615         used as an actual.
23616
23617 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
23618
23619         PR ada/15591
23620         PR ada/15592
23621         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
23622         reference is written with expressions mimicking parameters.
23623
23624 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
23625
23626         PR ada/15589
23627         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
23628         STEP 2a. The constraints of a full type declaration of a derived record
23629         type are checked for conformance with those declared in the
23630         corresponding private extension declaration. The message
23631         "not conformant with previous declaration" is emitted if an error is
23632         detected.
23633
23634 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
23635
23636         * g-traceb.ads: Document the need for -E binder switch in the spec.
23637
23638         * g-trasym.ads: Document the need for -E binder switch in the spec.
23639
23640 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
23641
23642         * sem_prag.adb: Add handling of pragma Detect_Blocking.
23643
23644         * snames.h, snames.ads, snames.adb: Add entry for pragma
23645         Detect_Blocking.
23646
23647         * s-rident.ads: Change reference to pragma Detect_Blocking.
23648
23649         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
23650         system.ads.
23651
23652         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
23653         to indicate whether pragma Detect_Blocking is active.
23654
23655         * par-prag.adb: Add entry for pragma Detect_Blocking.
23656
23657         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
23658         of not handling WITH.
23659         Note that this replaces the previous update which was incorrect.
23660
23661 2004-06-25  Javier Miranda  <miranda@gnat.com>
23662
23663         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
23664         use-clauses to have a clean environment.
23665
23666         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
23667         the installation of the use-clauses to stablish a clean environment in
23668         case of compilation of a separate unit; otherwise the call to
23669         use_one_package is protected by the barrier Applicable_Use.
23670
23671         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
23672         the installation of the use-clauses to stablish a clean environment in
23673         case of compilation of a separate unit.
23674         (End_Use_Clauses): Minor comment cleanup.
23675
23676 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
23677
23678         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
23679
23680 2004-06-23  Richard Henderson  <rth@redhat.com>
23681
23682         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
23683
23684 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23685
23686         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
23687         now bool instead of int.
23688         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
23689         * trans.c (gnu_switch_label_stack): New function.
23690         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
23691         elaboration of renamed entity returns.
23692         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
23693         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
23694         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
23695         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
23696         DECL_SIZE_UNIT and simplify variable-sized case.
23697         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
23698         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
23699         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
23700         (build_unit_elab): Disable for now.
23701         * utils.c (mark_visited): New function.
23702         (pushdecl): Walk tree to call it for global decl.
23703         (update_pointer_to): Update all variants of pointer and ref types.
23704         Add arg to COMPONENT_REF.
23705         (convert): Likewise.
23706         Move check for converting between variants lower down.
23707         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
23708         (build_allocator): Don't force type of MODIFY_EXPR.
23709         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
23710         put_var_into_stack.
23711
23712 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23713
23714         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
23715         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
23716         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
23717         subprograms.
23718         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
23719         all callers changed.
23720         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
23721         the way that EXIT_STMT finds the loop label.
23722         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
23723         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
23724         (add_stmt): Use annotate_with_locus insted of setting directly.
23725         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
23726         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
23727         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
23728         (build_vms_descriptor): Add extra args to ARRAY_REF.
23729         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
23730         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
23731         New cases.
23732         (build_binary_op): Don't make explicit CONVERT_EXPR.
23733         Add extra rgs to ARRAY_REF.
23734
23735 2004-06-14  Pascal Obry  <obry@gnat.com>
23736
23737         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
23738         Windows.  Fix minor typo.
23739
23740         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
23741         which is now supported on Windows. With this implementation using the
23742         Library Project feature is no different on Windows than on UNIX.
23743
23744 2004-06-14  Vincent Celier  <celier@gnat.com>
23745
23746         * makegpr.adb (Compile_Sources): Nothing to do when there are no
23747         non-Ada sources.
23748
23749         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
23750
23751         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
23752         found, show the project name and the path of the previously parsed
23753         project file.
23754
23755 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
23756
23757         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
23758         array, avoid copying the actual before the call.
23759
23760 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
23761
23762         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
23763         Instead, allocate memory on worst-case alignment assumptions, and then
23764         return an aligned address within the allocated zone.
23765
23766 2004-06-14  Robert Dewar  <dewar@gnat.com>
23767
23768         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
23769         elab entities in predefined units in No_Run_Time_Mode.
23770         (Gen_Adainit_C): Same fix
23771         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
23772         units in No_Run_Time_Mode
23773         (Gen_Elab_Calls_C): Same fix
23774
23775         * symbols-vms-alpha.adb: Minor reformatting
23776
23777         * g-debpoo.ads: Minor reformatting
23778
23779         * lib.adb (In_Same_Extended_Unit): Version working on node id's
23780
23781         * lib.ads (In_Same_Extended_Unit): Version working on node id's
23782
23783         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
23784         working on nodes.
23785
23786         * make.adb: Minor reformatting
23787
23788         * par-ch12.adb: Minor reformatting
23789
23790         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
23791
23792         * prj-strt.adb: Minor reformatting
23793
23794         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
23795         be more general.
23796
23797         * sem_attr.adb: Minor reformatting
23798
23799         * sem_ch7.adb: Minor reformatting
23800
23801         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
23802         for type in the same unit as the object declaration.
23803
23804         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
23805         static string expressions and not just string literals.
23806         Minor reformatting
23807         (Set_Warning): Reset restriction warning flag for restriction pragma
23808         Implement pragma Profile_Warnings
23809         Implement pragma Profile (Restricted)
23810         Give obolescent messages for old restrictions and pragmas
23811
23812         * snames.h, snames.ads, snames.adb: Add new entry for pragma
23813         Profile_Warnings.
23814
23815         * s-rident.ads: Add declarations for restrictions required by profile
23816         Restricted and profile Ravenscar.
23817
23818         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
23819
23820         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
23821         configuration pragmas.
23822
23823 2004-06-11  Vincent Celier  <celier@gnat.com>
23824
23825         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
23826         gnatsym, when symbol policy is Restricted.
23827
23828         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
23829         gnatsym, when symbol policy is Restricted.
23830
23831         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
23832         read the symbol file.
23833         (Finalize): Fail in symbol policy Restricted if a symbol in the original
23834         symbol file is not in the object files. Do not create a new symbol file
23835         when symbol policy is Restricted.
23836
23837         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
23838         in Scng.
23839
23840         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
23841         Restricted.
23842         (Usage): Line for new switch -R
23843
23844         * make.adb (Initialize): When the platform is not VMS, add the
23845         directory where gnatmake is invoked in the front of the path, if
23846         gnatmake is invoked with directory information.  Change the Scan_Args
23847         while loop to a for loop.
23848         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
23849         if Depth is equal or greater than the proposed depth, there is nothing
23850         to do.
23851         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
23852         instead of 0.
23853
23854         * prj.ads: Add new symbol policy Restricted.
23855
23856         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
23857         with the new parameters Check_All_Labels and Case_Location.
23858
23859         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
23860         (Library_Symbol_File needs to be defined).
23861
23862         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
23863         and Case_Location If Check_All_Labels is True, check that all values of
23864         the string type are used, and output warning(s) if they are not.
23865
23866         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
23867         and Case_Location.
23868
23869         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
23870
23871         * gnat_ugn.texi: Update documentation about the library directory in
23872         Library Projects.
23873
23874         * makegpr.adb (Display_Command): In verbose mode, also display the
23875         value of the CPATH env var, when the compiler is gcc.
23876         (Initialize): Change the Scan_Args while loop to a for loop
23877         (Compile_Individual_Sources): Change directory to object directory
23878         before compilations.
23879
23880         * symbols.ads: New symbol policy Restricted.
23881
23882 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
23883
23884         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
23885         is now taken care of internally in the Exception_Propagation package
23886         and does not require clients assistance any more.
23887
23888         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
23889         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
23890         functions. Helpers to maintain a predicate required in the handling of
23891         occurrence transfer between tasks.
23892         This is now handled internally and does not require clients assistance
23893         for the setup/propagate separation anymore.
23894         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
23895         allocation strategy, handle the Setup_And_Not_Propagated predicate and
23896         document.
23897
23898         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
23899         raise_after_setup, now that everything is handled internally within the
23900         setup/propagation engine.
23901
23902 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
23903
23904         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
23905         Add additional conditions for the case of an actual being a simple
23906         name or literal. Improve inlining by preventing the generation
23907         of temporaries with a short lifetime (one use).
23908
23909 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
23910
23911         PR ada/15587
23912         * einfo.ads: Minor comment updates for Has_Completion and
23913         E_Constant list of flags.
23914
23915         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
23916         and constant redeclarations now set the Has_Completion flag of their
23917         defining identifiers.
23918
23919         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
23920         Inspect_Deferred_Constant_Completion.
23921         Used to detect private deferred constants that have not been completed
23922         either by a constant redeclaration or pragma Import. Emits error message
23923         "constant declaration requires initialization expression".
23924
23925         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
23926         completes a deferred constant.
23927
23928 2004-06-11  Geert Bosch  <bosch@gnat.com>
23929
23930         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
23931
23932         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
23933         calculating exponent for scaling denormal numbers.
23934         (Leading_Part): Properly raise Constraint_Error for zero or negative
23935         Adjustment.
23936         (Remainder): Properly raise Constraint_Error for zero divisor.
23937
23938 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
23939
23940         * sem_util.adb: Minor reformatting.
23941
23942         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
23943         dereference when accessing the entry parameter record.
23944         (Check_Array_Type): Always check for possible implicit dereference.
23945         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
23946         Abort if a pointer is still present (denoting that an implicit
23947         dereference was left in the tree by the front-end).
23948
23949         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
23950         dereference when accessing the entry parameter record.
23951         (Check_Array_Type): Always check for possible implicit dereference.
23952         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
23953         Abort if a pointer is still present (denoting that an implicit
23954         dereference was left in the tree by the front-end).
23955
23956 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
23957
23958         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
23959         message, like the compiler itself does. Easier to parse the output.
23960
23961         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
23962
23963         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
23964         be base names, and not includes directories.
23965
23966 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
23967
23968         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
23969         so that dependencies are properly taken into account by make.
23970
23971 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
23972
23973         PR ada/15622
23974         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
23975         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
23976
23977 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
23978
23979         * Makefile.in (install-gnatlib): install target-specific run-time files.
23980
23981         * Make-lang.in: Remove obsolete targets.
23982
23983 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
23984
23985         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
23986         specification, to catch misuses of program unit names.
23987
23988         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
23989         superfluous conversions in an instance.
23990
23991 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
23992
23993         PR ada/15403
23994         * sem_ch12.adb (Save_References): If operator node has been folded to
23995         enumeration literal, associated_node must be discarded.
23996
23997 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
23998
23999         * s-stchop-vxworks.adb: Add required pragma Convention to
24000         Task_Descriptor because it is updated by a C function.
24001
24002 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
24003
24004         PR ada/15568
24005         * Makefile.in: Remove target specific SO_OPT on IRIX
24006
24007 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24008
24009         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
24010         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
24011         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
24012         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
24013         (STMT_STMT, USE_STMT): New statement codes.
24014         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
24015         * ada-tree.h: Reflect above changes.
24016         (struct tree_loop_id): Deleted.
24017         (union lang_tree_node, struct lang_decl, struct lang_type):
24018         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
24019         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
24020         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
24021         (IS_ADA_STMT): New macro.
24022         * decl.c (annotate_decl_with_node): New function.
24023         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
24024         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
24025         Call add_stmt_with_node to do needed assignments.
24026         Add call to update setjmp buffer directly, not via EXPR_STMT.
24027         (maybe_variable): Argment GNAT_NODE deleted.
24028         * gigi.h (maybe_variable): Likewise.
24029         (make_transform, add_stmt_with_node, set_block_for_group): New.
24030         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
24031         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
24032         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
24033         (set_lineno, set_lineno_from_sloc): Likewise.
24034         (record_code_position, insert_code_for): Likewise.
24035         (gnat_poplevel): Now returns void.
24036         (end_subprog_body): Now takes argument.
24037         * misc.c (cgraph.h, tree-inline.h): New includes.
24038         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
24039         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
24040         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
24041         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
24042         (gnat_parse_file): Don't set immediate_size_expand.
24043         Call cgraph functions.
24044         (gnat_expand_expr): Remove most cases.
24045         (record_code_position, insert_code_for): Remove from here.
24046         * trans.c (toplev.h, tree-gimple.h): Now included.
24047         (discard_file_names): Deleted.
24048         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
24049         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
24050         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
24051         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
24052         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
24053         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
24054         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
24055         (set_block_for_group, add_stmt_list): Likewise.
24056         (start_stmt_group): Renamed from start_block_stmt.
24057         (end_stmt_group): Likewise, from end_block_stmt.
24058         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
24059         (gigi): Don't set discard_file_names or call set_lineno.
24060         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
24061         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
24062         Numerous changes throughout to reflect new names and complete
24063         function-at-a-time implementation.
24064         (gnat_expand_stmt): Delete or comment out all cases.
24065         (process_inlined_subprograms): Use add_stmt.
24066         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
24067         call set_lineno; also remove unneeded block handling.
24068         (process_type): Remove unneeded block handling.
24069         (build_unit_elab): Remove calls to deleted functions.
24070         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
24071         (tree-dump.h): Likewise.
24072         (struct ada_binding_level): Add field jmpbuf_decl.
24073         (gnat_define_builtin, gnat_install_builtins): New.
24074         (gnat_gimplify_function, gnat_finalize): Likewise.
24075         (gnat_poplevel): No longer return BLOCK, set it instead.
24076         Remove code dealing with nested functions.
24077         (gnat_init_decl_processing): Also set size_type_node.
24078         Call gnat_install_builtins.
24079         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
24080         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
24081         Remove special-case for "main".
24082         (end_subprog_body): Add arg and rework for tree-ssa.
24083         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
24084         Add case for BOOLEAN_TYPE.
24085         * utils2.c (rtl.h): Now include.
24086         (build_call_raise): Test Debug_Flag_NN directly.
24087         (build_call_alloc_dealloc): Don't use local stack allocation for now.
24088         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
24089         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
24090
24091 2004-06-07  Robert Dewar  <dewar@gnat.com>
24092
24093         * a-direct.ads, einfo.ads: Minor comment updates
24094
24095         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
24096         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
24097         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
24098         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
24099         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
24100
24101         * s-interr-sigaction.adb: Remove unreferenced variable
24102         (Attached_Interrupts).  Minor reformatting.
24103         Avoid use of variable I (replace by J).
24104
24105         * par-ch10.adb: Fix text of one error message
24106
24107         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
24108         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
24109         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
24110         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
24111         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
24112         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
24113         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
24114         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
24115         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
24116         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
24117         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
24118         2005 support.
24119
24120 2004-06-07  Doug Rupp  <rupp@gnat.com>
24121
24122         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
24123
24124         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
24125
24126         * mlib-tgt-vms-ia64.adb: New file.
24127
24128         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
24129         Add mlib-tgt-vms-ia64.adb
24130         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
24131         Move to alpha specific ifeq section.
24132         Add VMS specific versions of symbols.adb
24133         Renaming of 5q vms files.
24134
24135         * 5qsystem.ads renamed to system-vms_64.ads.
24136
24137 2004-06-07  Vincent Celier  <celier@gnat.com>
24138
24139         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
24140         explain that when a time of day corresponding to the non existing hour
24141         on the day switching to DST is specified, Split may return a different
24142         value for Seconds.
24143
24144         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
24145         to GNAT PRETTY.
24146
24147         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
24148         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
24149
24150         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
24151         to False.
24152         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
24153         the linking options.
24154         (Build_Library.Check_Libs): On VMS, if there is a dependency on
24155         g-trasym.ads, set Gtrasymobj_Needed to True.
24156
24157         * prj-attr.adb: Add new package Metrics for gnatmetric
24158
24159         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
24160         canonical case to take into account files with upper case characters on
24161         Windows.
24162         (Ada_Check): Load the reference symbol file name in the name buffer to
24163         check it, not the symbol file name.
24164
24165         * snames.ads, snames.adb: Add standard name Metrics (name of project
24166         file package for gnatmetric).
24167
24168         * vms_conv.ads: Add Metric to Comment_Type
24169
24170         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
24171
24172         * vms_data.ads: Add qualifiers for GNAT METRIC
24173
24174         * makegpr.adb (Link_Executables): Take into account the switches
24175         specified in package Linker of the main project.
24176
24177 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
24178
24179         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
24180         the index of the last element is Units.Last, not Units.Table'Last
24181         (which is usually not a valid index within the actually allocated
24182         storage for the table).
24183
24184         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
24185         determines whether to generate a call to a checked storage pool
24186         Dereference action.
24187         Generate such a call only for a dereference that either comes from
24188         source, or is the result of rewriting a dereference that comes from
24189         source.
24190
24191 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
24192
24193         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
24194
24195 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
24196
24197         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
24198         file level, elaborate the stride for inner dimensions in alignment
24199         units, not bytes.
24200
24201         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
24202         in a comment.
24203
24204 2004-06-07  Javier Miranda  <miranda@gnat.com>
24205
24206         * exp_ch6.adb: Correct wrong modification in previous patch
24207
24208 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
24209
24210         * g-trasym.ads: Corrected comment to properly reflect level of support
24211         on VMS.
24212
24213 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
24214
24215         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
24216         includes case of a variable referenced on the left hand side of an
24217         assignment, therefore remove redundant code. Variables and prefixes of
24218         indexed or selected components are now marked as referenced on left
24219         hand side. Warnings are now properly emitted when variables or prefixes
24220         are assigned but not read.
24221
24222         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
24223         left hand side referenced variables. Private access types do not
24224         produce the warning "variable ... is assigned but never read".
24225         Add also additional checks to left hand side referenced variables.
24226         Aliased, renamed objects and access types do not produce the warning
24227         "variable ... is assigned but never read" since other entities may read
24228         the memory location.
24229
24230 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
24231
24232         * Makefile.in: In the powerpc/vxworks-specific section, restore
24233         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
24234         by mistake).
24235
24236 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
24237
24238         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
24239         predefined operators.
24240         Removes spurious type errors from g-trasym-vms.adb.
24241
24242         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
24243         distinct from the operator appearing in the source, call appropriate
24244         routine to insert conversions when needed, and complete resolution of
24245         node.
24246         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
24247         interpretations for rewritten right operand.
24248         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
24249         the other operand is overloaded and the context is a type conversion.
24250
24251 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24252
24253         * ada-tree.def (BLOCK_STMT): Now has two operands.
24254         (BREAK_STMT): New.
24255
24256         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
24257
24258         * gigi.h: (gnat_poplevel): Now returns a tree.
24259
24260         * trans.c (end_block_stmt): Add arg; all callers changed.
24261         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
24262         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
24263         (add_stmt): Set TREE_TYPE.
24264         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
24265         (gnat_expand_stmt, case BREAK_STMT): New case.
24266
24267         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
24268
24269 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
24270
24271         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
24272         procedure Set_Stack_Size that is not needed.
24273
24274 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
24275
24276         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
24277         used for gnatpp input file and for the files upon which it depends
24278
24279 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
24280
24281         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
24282
24283 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
24284
24285         * gnatvsn.ads: Bump version numbers appropriately.
24286         Add new build type.
24287
24288 2004-06-07  Pascal Obry  <obry@gnat.com>
24289
24290         * gnat_ugn.texi: Improve comments about imported names and link names
24291         on Windows. Add a note about the requirement to use -k gnatdll's option
24292         when working with a DLL which has stripped stdcall symbols (no @nn
24293         suffix).
24294
24295 2004-05-27  Vincent Celier  <celier@gnat.com>
24296
24297         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
24298         COMMENTS_LAYOUT=UNTOUCHED
24299
24300         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
24301         symbols-vms-alpha.adb
24302
24303 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
24304
24305         * sem.ads: Clarify documentation on checks suppression.
24306
24307         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
24308
24309 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
24310
24311         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
24312         the case of multiple derivations.
24313         (Is_Object_Reference): For a selected component, verify that the prefix
24314         is itself an object and not a value.
24315
24316         * sem_ch12.adb (Same_Instantiated_Constant): New name for
24317         Same_Instantiated_Entity.
24318         (Same_Instantiated_Variable): Subsidiary to
24319         Check_Formal_Package_Instance, to recognize actuals for in-out generic
24320         formals that are obtained from a previous formal package.
24321         (Instantiate_Subprogram_Body): Emit proper error when
24322         generating code and the proper body of a stub is missing.
24323
24324         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
24325         has a universal interpretation, do the disambiguation here.
24326
24327         * exp_ch4.adb (Expand_N_Type_Conversion,
24328         Expand_N_Unchecked_Type_Conversion): Special handling when target type
24329         is Address, to avoid typing anomalies when Address is a visible integer
24330         type.
24331
24332         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
24333         to determine whether a subprogram should not be marked Pure, even when
24334         declared in a pure package.
24335
24336 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
24337
24338         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
24339
24340         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
24341         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
24342         Update the documentation about the Ravenscar profile, following the
24343         definition found in AI-249.
24344
24345         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
24346         setting the Profile (Ravenscar). This must be done in addition to
24347         setting the required restrictions.
24348
24349         * rtsfind.ads: Add the set of operations defined in package
24350         Ada.Interrupts.
24351
24352         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
24353         restriction.
24354
24355 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
24356
24357         lang-specs.h: Always require -c or -S and always redirect to /dev/null
24358         if -gnatc or -gnats is passed.
24359
24360 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
24361
24362         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
24363         a significant reference. Warnings are now properly emitted when a
24364         discriminated type is not referenced.
24365
24366         * lib-xref.adb (Generate_Reference): A deferred constant completion,
24367         record representation clause or record type discriminant does not
24368         produce a reference to its corresponding entity. Warnings are now
24369         properly emitted when deferred constants and record types are not
24370         referenced.
24371
24372 2004-05-27  Geert Bosch  <bosch@gnat.com>
24373
24374         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
24375         Fixes ACATS Annex G tests.
24376
24377 2004-05-27  Robert Dewar  <dewar@gnat.com>
24378
24379         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
24380         handling WITH
24381
24382 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
24383
24384         * s-interr.adb (Server_Task): Take into account case of early return
24385         from sigwait under e.g. linux.
24386
24387 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
24388
24389         * gnat_ugn.texi: Add description for the new gnatpp options:
24390          -rnb - replace the original source without creating its backup copy
24391          -c0 - do not format comments
24392
24393 2004-05-24  Geert Bosch  <bosch@gnat.com>
24394
24395         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
24396         with 192 bits of precision, sufficient to reduce a double-extended
24397         arguments X with a maximum relative error of T'Machine_Epsilon, for X
24398         in -2.0**32 .. 2.0**32.
24399         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
24400         reduction by the processor, which only uses a 68-bit approximation of
24401         Pi.
24402         (Tan): Always reduce arguments and compute function either using
24403         the processor's fptan instruction, or by dividing sin and cos as needed.
24404
24405 2004-05-24  Doug Rupp  <rupp@gnat.com>
24406
24407         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
24408         gcc error on 32/64 bit VMS.
24409
24410 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
24411
24412         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
24413         since this is what we get for stack overflows although not documented
24414         as such.
24415         Document the issues which may require adjustments to our signal
24416         handlers.
24417
24418 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
24419
24420         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
24421         enclosing dynamic scope if the instantiation is within a generic unit.
24422
24423 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
24424
24425         * exp_dbug.ads: Fix typo.
24426
24427         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
24428         Rename it to its proper name: system-linux-ia64.ads
24429         (stamp-gnatlib1): Remove extra target specific run time files when
24430         setting up the rts directory.
24431
24432 2004-05-24  Javier Miranda  <miranda@gnat.com>
24433
24434         * einfo.ads, einfo.adb (Limited_Views): Removed.
24435         (Limited_View): New attribute that replaces the previous one. It is
24436         now a bona fide package with the limited-view list through the
24437         first_entity and first_private attributes.
24438
24439         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
24440         limited-private-with clause.
24441         (Install_Limited_Withed_Unit): Install the private declarations of a
24442         limited-private-withed package. Update the installation of the shadow
24443         entities according to the new structure (see Build_Limited_Views)
24444         (Build_Limited_Views): Replace the previous implementation of the
24445         limited view by a package entity that references the first shadow
24446         entity plus the first shadow private entity (required for limited-
24447         private-with clause)
24448         (New_Internal_Shadow_Entity): Code cleanup.
24449         (Remove_Limited_With_Clause): Update the implementation to undo the
24450         new work carried out by Build_Limited_Views.
24451         (Build_Chain): Complete documentation.
24452         Replace Ada0Y by Ada 0Y in comments
24453         Minor reformating
24454
24455         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
24456         types the level of accessibility depends on the enclosing type
24457         declaration.
24458
24459         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
24460         entities. Complete documentation of previous change.
24461
24462 2004-05-24  Robert Dewar  <dewar@gnat.com>
24463
24464         * namet.adb: Minor reformatting
24465         Avoid use of name I (replace by J)
24466         Minor code restructuring
24467
24468         * sem_ch6.adb: Minor reformatting
24469
24470         * lib-writ.adb: Do not set restriction as active if this is a
24471         Restriction_Warning case.
24472
24473         * sem_prag.adb: Reset restriction warning flag if real pragma
24474         restriction encountered.
24475
24476         * s-htable.adb: Minor reformatting
24477         Change rotate count to 3 in Hash (improves hash for small strings)
24478
24479         * 5qsystem.ads: Add comments for type Address (no literals allowed).
24480
24481         * gnat_ugn.texi: Add new section of documentation "Code Generation
24482         Control", which describes the use of -m switches.
24483
24484 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
24485
24486         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
24487         through the DECL_INITIAL for renamed variables.
24488
24489 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
24490
24491         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
24492
24493 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
24494
24495         * exp_dbug.ads: Correct comments concerning handling of overloading,
24496         since we no longer use $ anymore.
24497
24498 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
24499
24500         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
24501         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
24502         with illegal subunits.
24503
24504 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
24505
24506         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
24507         body with front-end inlining enabled, check whether an inline pragma
24508         appears immediately after the body and applies to it.
24509
24510         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
24511         enabled and the pragma appears after the body of the subprogram.
24512
24513 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24514
24515         Part of function-at-a-time conversion
24516
24517         * misc.c (adjust_decl_rtl): Deleted.
24518         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
24519         Define.
24520
24521         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
24522         (add_decl_stmt, add_stmt, block_has_vars): New functions.
24523         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
24524
24525         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
24526         when making a decl.
24527         (gnat_to_gnu_entity): Likewise.
24528         Use add_stmt to update setjmp buffer.
24529         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
24530         flush_addressof.
24531         No longer call adjust_decl_rtl.
24532         (DECL_INIT_BY_ASSIGN_P): New macro.
24533         (DECL_STMT_VAR): Likewise.
24534
24535         * trans.c (gigi): Call start_block_stmt to make the outermost
24536         BLOCK_STMT.
24537         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
24538         Call start_block_stmt and end_block_stmt temporarily.
24539         Use gnat_expand_stmt instead of expand_expr_stmt.
24540         (add_decl_stmt): New function.
24541         (tree_transform): Call it.
24542         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
24543         (end_block_stmt): Set type and NULL_STMT.
24544         (gnat_expand_stmt): Make recursize call instead of calling
24545         expand_expr_stmt.
24546         (gnat_expand_stmt, case DECL_STMT): New case.
24547         (set_lineno_from_sloc): Do nothing if global.
24548         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
24549         (start_block_stmt, add_stmt, end_block_stmt): New functions.
24550         (build_block_stmt): Call them.
24551         (gnat_to_code): Don't expand NULL_STMT.
24552         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
24553         args.
24554         (tree_transform): Likewise.
24555         (tree_transform, case N_Null_Statement): Return NULL_STMT.
24556         (gnat_expand_stmt, case NULL_STMT): New case.
24557         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
24558         IF_STMT_TRUE.
24559
24560         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
24561         TREE_ADDRESSABLE.
24562
24563         * utils.c (create_var_decl): Do not call expand_decl or
24564         expand_decl_init.
24565         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
24566         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
24567         here.
24568         (struct e_stack): Add chain_next to GTY.
24569         (struct binding_level): Deleted.
24570         (struct ada_binding_level): New struct.
24571         (free_block_chain): New.
24572         (global_binding_level, clear_binding_level): Deleted.
24573         (global_bindings_p): Rework to see if no chain.
24574         (kept_level_p, set_block): Deleted.
24575         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
24576         new data structure and work directly on BLOCK node.
24577         (gnat_poplevel): Similarly.
24578         (get_decls): Look at BLOCK_VARS.
24579         (insert_block): Work directly on BLOCK node.
24580         (block_has_var): New function.
24581         (pushdecl): Rework for new binding structures.
24582         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
24583         poplevel.
24584         (build_subprog_body): Likewise.
24585         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
24586
24587         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
24588
24589         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
24590         (DECL_STMT_VAR): Likewise.
24591
24592 2004-05-17  Robert Dewar  <dewar@gnat.com>
24593
24594         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
24595         procedure
24596
24597         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
24598         of restriction synonyums by using
24599         Restrict.Process_Restriction_Synonyms.
24600
24601         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
24602
24603         * s-restri.ads (Tasking_Allowed): Correct missing comment
24604
24605         * s-rident.ads: Add entries for restriction synonyms
24606
24607         * ali.adb: Fix some problems with badly formatted ALI files that can
24608         result in infinite loops.
24609
24610         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
24611         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
24612         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
24613         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
24614         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
24615         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
24616         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
24617         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
24618         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
24619         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
24620         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
24621         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
24622         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
24623         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
24624         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
24625         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
24626         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
24627         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
24628         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
24629         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
24630         to Task_Id (minor cleanup).
24631
24632 2004-05-17  Vincent Celier  <celier@gnat.com>
24633
24634         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
24635         directory separator.
24636
24637         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
24638         project being extended, if Languages is not declared in extending
24639         project.
24640
24641 2004-05-17  Javier Miranda  <miranda@gnat.com>
24642
24643         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
24644         limited view of a visible sibling.
24645
24646 2004-05-14  Robert Dewar  <dewar@gnat.com>
24647
24648         * gnat_ugn.texi: Minor change to -gnatS documentation
24649
24650         * sprint.adb: Remove some instances of Assert (False) and for this
24651         purpose replace them by output of a ??? string.
24652
24653         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
24654         Assert (False).
24655
24656         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
24657         flag processing. This was suppressing required dependencies in
24658         No_Run_Time mode and is not needed since the binder does not generate
24659         references for things in libgnat anyway.
24660
24661         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
24662         warning.
24663
24664 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
24665
24666         * gnat_ugn.texi: Document AIX-specific issue with initialization of
24667         resolver library.
24668
24669         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
24670         action for the case of an actual parameter in an init proc call.
24671
24672 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
24673
24674         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
24675         subtype, check visible entities in base type.
24676
24677         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
24678         actions if the object is a renaming.
24679
24680         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
24681         Check_Formal_Package_Instance, to determine more precisely when the
24682         formal and the actual denote the same entity.
24683
24684 2004-05-14  Javier Miranda  <miranda@gnat.com>
24685
24686         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
24687
24688         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
24689         corresponding to a private_with must be removed from visibility; it
24690         will be made visible later, just before we analyze the private part of
24691         the package.
24692         (Check_Private_Child_Unit): Allow private_with clauses in public
24693         siblings.
24694         (Install_Siblings): Make visible the private entities of private-withed
24695         siblings.
24696         (Install_Withed_Unit): Do not install the private withed unit if we
24697         are compiling a package declaration and the Private_With_OK flag was
24698         not set by the caller. These declarations will be installed later,
24699         just before we analyze the private part of the package.
24700
24701         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
24702         during the evaluation of the expression that initializes the object,
24703         decorate it with the expected type to avoid cascade errors.
24704         Code cleanup.
24705
24706         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
24707         subprogram we have to install the private_with clauses after its
24708         specification has been analyzed (as documented in AI-262.TXT).
24709
24710         * sem_ch8.adb (Has_Private_With): New function. Determines if the
24711         current compilation unit has a private with on a given entity.
24712         (Find_Direct_Name): Detect the Beaujolais problem described in
24713         AI-262.TXT
24714
24715         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
24716         provides the functionality of the function Is_Ancestor that was
24717         previously available in sem_ch10. It has been renamed to avoid
24718         overloading.
24719
24720         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
24721
24722 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24723
24724         * utils.c (build_vms_descriptor): Use SImode pointers.
24725
24726 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
24727
24728         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
24729
24730 2004-05-14  GNAT Script  <nobody@gnat.com>
24731
24732         * Make-lang.in: Makefile automatically updated
24733
24734 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
24735
24736         Renaming of target specific files for clarity
24737
24738         * Makefile.in: Rename GNAT target specific files.
24739
24740         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
24741         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
24742         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
24743         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
24744         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
24745         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
24746         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
24747         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
24748         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
24749         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
24750         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
24751         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
24752         51osinte.adb, 51osinte.ads, 51system.ads,
24753         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
24754         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
24755         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
24756         56tpopsp.adb, 57system.ads, 58system.ads,
24757         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
24758         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
24759         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
24760         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
24761         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
24762         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
24763         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
24764         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
24765         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
24766         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
24767         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
24768         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
24769         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
24770         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
24771         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
24772         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
24773         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
24774         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
24775         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
24776         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
24777         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
24778         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
24779         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
24780         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
24781         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
24782         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
24783         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
24784         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
24785         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
24786         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
24787         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
24788         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
24789         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
24790         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
24791         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
24792         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
24793         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
24794         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
24795         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
24796         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
24797
24798         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
24799         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
24800         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
24801         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
24802         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
24803         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
24804         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
24805         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
24806         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
24807         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
24808         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
24809         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
24810         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
24811         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
24812         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
24813         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
24814         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
24815         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
24816         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
24817         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
24818         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
24819         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
24820         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
24821         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
24822         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
24823         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
24824         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
24825         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
24826         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
24827         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
24828         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
24829         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
24830         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
24831         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
24832         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
24833         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
24834         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
24835         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
24836         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
24837         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
24838         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
24839         s-osinte-vms.ads, s-osinte-vxworks.adb,
24840         s-osinte-vxworks.ads, s-osprim-mingw.adb,
24841         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
24842         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
24843         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
24844         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
24845         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
24846         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
24847         s-stchop-vxworks.adb, s-taprop-dummy.adb,
24848         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
24849         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
24850         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
24851         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
24852         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
24853         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
24854         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
24855         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
24856         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
24857         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
24858         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
24859         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
24860         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
24861         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
24862         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
24863         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
24864         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
24865         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
24866         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
24867         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
24868         system-irix-o32.ads, system-linux-x86_64.ads,
24869         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
24870         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
24871         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
24872         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
24873         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
24874         system-vxworks-mips.ads, system-vxworks-ppc.ads,
24875         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
24876         above.
24877
24878 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
24879
24880         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
24881
24882 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
24883
24884         Merge from tree-ssa-20020619-branch.
24885
24886         * config-lang.in (boot_language, build_by_default): Set
24887         to no.
24888         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
24889         (max_size): Add static chain op for call_expr.
24890
24891 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
24892
24893         PR target/15331
24894         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
24895
24896 2004-05-11  Roger Sayle  <roger@eyesopen.com>
24897
24898         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
24899         COND_EXPR.
24900
24901 2004-05-10  Doug Rupp  <rupp@gnat.com>
24902
24903         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
24904         system.aux_dec.
24905
24906         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
24907
24908         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
24909
24910         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
24911         Fixes undefined symbols in IA64 gnatlib.
24912
24913         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
24914
24915         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
24916         Short_Address). This will be moved to system.auxdec.
24917
24918 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
24919
24920         * sem_util.adb: Replace test for presence of a node that is always
24921         present with a call to Discard_Node.
24922
24923         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
24924         Analyze on the library unit node after generation of distribution stub
24925         constructs.  The call was a no-op because Unit_Node has already been
24926         Analyzed, and the tree fragments for the distribution stubs are
24927         analyzed as they are inserted in Exp_Dist.
24928         Update comment regarding to distribution stubs to reflect that we
24929         do not generate stub in separate files anymore.
24930
24931         * einfo.ads: Clarify the fact that a tagged private type has the
24932         E_Record_Type_With_Private Ekind.
24933
24934         * erroutc.adb: Minor reformatting
24935
24936         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
24937         values if line length is increased using -gnatyM (noticed during code
24938         reading).
24939
24940         * eval_fat.adb: Minor reformatting
24941         Put spaces around exponentiation operator
24942
24943 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
24944
24945         PR ada/15005
24946         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
24947         has been rewritten as an explicit dereference, retrieve type of
24948         original node to check for possibly unconstrained record type.
24949
24950 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
24951
24952         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
24953         overriding, use the operation of the parent unconditionally.
24954
24955         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
24956         operation when either operand is a literal, to avoid further
24957         ambiguities.
24958
24959         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
24960         overridden by a previous explicit declaration, mark the previous entity
24961         as overriding.
24962
24963         * sem_disp.adb (Check_Dispatching_Operation): New predicate
24964         Is_Visibly_Controlled, to determine whether a declaration of a
24965         primitive control operation for a derived type overrides an inherited
24966         one. Add warning if the explicit declaration does not override.
24967
24968 2004-05-10  Vincent Celier  <celier@gnat.com>
24969
24970         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
24971         some cases when the sources are no longer present.
24972
24973         * make.adb (Collect_Arguments): Fail if an external source, not part
24974         of any project need to be compiled, when switch -x has not been
24975         specified.
24976
24977         * makeusg.adb: Document new switch -x
24978
24979         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
24980         defaulted to False.
24981
24982         * switch-m.adb (Scan_Make_Switches): New switch -x
24983
24984         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
24985         gnatmake switch -x.
24986
24987         * gnat_ugn.texi: Document new gnatmake switch -x
24988
24989 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
24990
24991         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
24992
24993         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
24994         (process_attributes): Likewise.
24995
24996 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
24997
24998         * s-inmaop.ads: Fix spelling mistake in one of the comments.
24999
25000 2004-05-10  Robert Dewar  <dewar@gnat.com>
25001
25002         * gnat_ugn.texi: Document that for config pragma files, the maximum
25003         line length is always 32767.
25004
25005         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
25006         literals is now allowed.
25007
25008         * gnat-style.texi: Remove statement about splitting long lines before
25009         an operator rather than after, since we do not follow this rule at all.
25010         Clarify rule (really lack of rule) for spaces around exponentiation
25011
25012         * sem_elim.adb: Allow concatenation of string literals as well as a
25013         single string literal for pragma arguments.
25014
25015         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
25016
25017         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
25018         written for append case.
25019
25020         * frontend.adb: Changes to avoid checking max line length in config
25021         pragma files.
25022
25023         * g-os_lib.ads: Minor reformatting
25024
25025         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
25026         wrong in any case. Instead use standard value. Noticed during code
25027         reading.
25028
25029         * opt.ads (Max_Line_Length): New field, used to implement removal of
25030         limitation on length of lines when scanning config pragma files.
25031
25032         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
25033         makeutl.ads, makeutl.adb: Minor reformatting
25034
25035         * scn.adb: Do not check line length while scanning config pragma files
25036         Do not check line length while scanning out license information
25037
25038         * scng.adb: Changes to avoid line length checks while parsing config
25039         pragma files.
25040
25041 2004-05-10  GNAT Script  <nobody@gnat.com>
25042
25043         * Make-lang.in: Makefile automatically updated
25044
25045 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
25046
25047         * osint.adb (Find_Program_Name): Fix handling of VMS version
25048         number.
25049
25050 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
25051
25052         * g-os_lib.ads (Invalid_Time): New constant
25053
25054         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
25055         return OS_Time instead of time_t to match what is imported by Ada.
25056         Now return -1 if the file doesn't exist, instead of a random value
25057
25058 2004-05-05  Robert Dewar  <dewar@gnat.com>
25059
25060         * usage.adb: Add line for -gnatR?s switch
25061
25062         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
25063
25064         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
25065         and for Match (Data_First, Data_last)
25066
25067         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
25068         written when we are dealing with multi-unit files.
25069
25070 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
25071
25072         * Makefile.in: Remove unused targets and variables.
25073
25074 2004-05-05  Vincent Celier  <celier@gnat.com>
25075
25076         * switch-m.adb: New gnatmake switch -eI
25077
25078         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
25079         of new gnatmake switch -eInnn.
25080
25081         * makegpr.adb: Take into account new parameters Index and Src_Index in
25082         Prj.Util.
25083
25084         * clean.adb: Implement support for multi-unit sources, including new
25085         switch -i.
25086
25087         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
25088         Src_Index.
25089
25090         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
25091         (Extract_From_Q): New out parameter Index
25092         (Mark, Is_Marked): Subprograms moved to Makeutl
25093         (Switches_Of): New parameter Source_Index
25094         (Add_Switch): New parameter Index
25095         (Check): New parameter Source_Index
25096         (Collect_Arguments): New parameter Source_Index
25097         (Collect_Arguments_And_Compile): New parameter Source_Index
25098         (Compile): New parameter Source_Index
25099         Put subprograms in alphabetical order
25100         Add support for multi-source sources, including in project files.
25101
25102         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
25103         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
25104         Make.
25105
25106         * makeusg.adb: New gnatmake switch -eInnn
25107
25108         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
25109         Prj.Util.Value_Of.
25110
25111         * opt.ads (Main_Index): New variable, defaulted to 0.
25112
25113         * osint.ads, osinte.adb (Add_File): New parameter Index
25114         (Current_Source_Index): New function
25115
25116         * prj.adb: Take into account new components Index and Src_Index
25117
25118         * prj.ads (String_Element): New component Index
25119         (Variable_Value): New component Index
25120         (Array_Element): New component Src_Index
25121
25122         * prj-attr.adb: Indicate that optional index may be specified for
25123         attributes Main, Executable, Spec, Body and some of Switches.
25124
25125         * prj-attr.ads (Attribute_Kind): New values for optional indexes
25126         (Attribute_Record): New component Optional_Index
25127
25128         * prj-com.ads (File_Name_Data): New component Index
25129
25130         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
25131
25132         * prj-env.adb (Put): Output optional index
25133
25134         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
25135         attributes Spec and Body.
25136
25137         * prj-nmsc.adb: Process optional indexes
25138
25139         * prj-pp.adb: Ouput "at" for optional indexes
25140
25141         * prj-proc.adb: Take into account optional indexes
25142
25143         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
25144         Optional_Index. For string literal,
25145         process optional index when Optional_Index is True.
25146         (Parse_Expresion): New Boolean parameter Optional_Index
25147
25148         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
25149         (Set_Source_Index_Of): New procedure
25150
25151         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
25152         index.
25153
25154         * prj-util.ads (Executable_Of): New parameter Index
25155         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
25156         New parameter Src_Index, defaulted to 0.
25157
25158 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
25159
25160         PR ada/15257
25161         * sem_ch3.adb (Access_Definition): If this is an access parameter
25162         whose designated type is imported through a limited_with clause, do
25163         not add the enclosing subprogram to the list of private dependents of
25164         the type.
25165
25166 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
25167
25168         PR ada/15258
25169         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
25170         a limited_with clause, and the other is its non-limited view.
25171
25172 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
25173
25174         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
25175
25176         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
25177         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
25178         Stand.Boolean_Literals to produce references to entities
25179         Standard_False and Standard_True from compile-time computed boolean
25180         values.
25181
25182         * stand.ads (Boolean_Literals): New variable, provides the entity
25183         values for False and True, for use by the expander.
25184
25185 2004-05-05  Doug Rupp  <rupp@gnat.com>
25186
25187         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
25188         5vinmaop.adb: Unchecked convert Short_Address vice Address
25189
25190         * adaint.c, raise.c: Caste CRTL function return value
25191         to avoid gcc error on 32/64 bit IVMS.
25192
25193         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
25194         target = IA64/VMS.
25195
25196         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
25197
25198         * 5qsystem.ads (Address): Declare as Long_Integer
25199         (Short_Address): Declare as 32 bit subtype of Address
25200         Declare  abstract address operations to avoid gratuitous ambiguities.
25201
25202 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
25203
25204         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
25205         instead of the old Boolean_Entry_Barriers.
25206         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
25207
25208 2004-05-05  GNAT Script  <nobody@gnat.com>
25209
25210         * Make-lang.in: Makefile automatically updated
25211
25212 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
25213
25214         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
25215
25216 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
25217
25218         PR ada/15152
25219         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
25220         alone. Replacing object references by literals is inappropriate in a
25221         so low level context.
25222
25223 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
25224
25225         * a-exexpr.adb: Add comments
25226
25227 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
25228
25229         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
25230         declare the Ancestor_Tags array in Type_Specific_Data with a small size
25231         without risking a bounds check error when accessing one of its
25232         components.
25233         (Type_Specific_Data): Define Ancestor_Tags as a small array.
25234         This prevents us from hitting a limitation during the debug info
25235         generation when using stabs.
25236
25237         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
25238         small array.
25239         This prevents us from hitting a limitation during the debug info
25240         generation when using stabs.
25241
25242 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
25243
25244         lang-specs.h: Remove -gnatz* from specs.
25245
25246 2004-05-03  Vincent Celier  <celier@gnat.com>
25247
25248         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
25249
25250         * Make-lang.in, Makefile.in: Add gprmake
25251
25252 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
25253
25254         * sem_aggr.adb: Fix typo in comment.
25255
25256 2004-05-03  Robert Dewar  <dewar@gnat.com>
25257
25258         * make.adb: Minor reformatting
25259
25260         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
25261
25262         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
25263         so that it works when address is not a private type.
25264
25265         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
25266         properly with rewritten unchecked conversions. This prevents
25267         order-of-elaboration issues that can otherwise arise.
25268         (Minimum_Size): Don't check size of access types under VMS
25269
25270         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
25271         interpretations of integer literals as type System.Address.
25272
25273         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
25274         (Is_Descendent_Of): New function
25275
25276 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
25277
25278         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
25279         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
25280         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
25281
25282         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
25283         of the old Max_Entry_Queue_Depth.
25284
25285         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
25286         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
25287         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
25288
25289         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
25290         New entry for proper handling of Max_Entry_Queue_Depth.
25291         New entry for proper handling of No_Dynamic_Interrupts.
25292
25293         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
25294         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
25295         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
25296         the GNAT specific restriction Max_Entry_Queue_Depth.
25297         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
25298         the GNAT specific restriction No_Dynamic_Interrupts.
25299
25300         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
25301         instead of the old Boolean_Entry_Barriers.
25302         Use the new restriction No_Dynamic_Attachment instead of the old
25303         No_Dynamic_Interrupts.
25304
25305         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
25306         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
25307
25308         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
25309         of the old Max_Entry_Queue_Depth.
25310
25311 2004-05-03  GNAT Script  <nobody@gnat.com>
25312
25313         * Make-lang.in: Makefile automatically updated
25314
25315 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
25316
25317         * checks.adb (Enable_Range_Check): If the prefix of an index component
25318         is an access to an unconstrained array, perform check unconditionally.
25319
25320 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25321
25322         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
25323         Component_Clause.
25324
25325 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
25326
25327         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
25328         alternate stack setting. There was no support for the tasking cases
25329         and the changes eventually caused a number of side-effect failures in
25330         the non-tasking case too.
25331
25332 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
25333
25334         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
25335         -gnats is passed.
25336
25337 2004-04-29  Vincent Celier  <celier@gnat.com>
25338
25339         * make.adb (Gnatmake): Increase max size of argument array for
25340         gnatbind for the potential addition of -F.
25341         If there are Stand-Alone Library projects, invoke gnatbind with -F to
25342         be sure that elaboration flags will be checked.
25343
25344         * switch-c.adb: Correct call to Scan_Pos for -gnateI
25345
25346 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
25347
25348         * sem_warn.adb (Check_References): Move '<access-variable> may be
25349         null' warning out of under Warn_On_No_Value_Assigned.
25350
25351 2004-04-29  Ed Falis  <falis@gnat.com>
25352
25353         * gnat_ugn.texi: Fixed texi error
25354
25355 2004-04-29  Robert Dewar  <dewar@gnat.com>
25356
25357         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
25358         abstract operations if they come from predefined files.
25359
25360         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
25361         Dynamic, not RM).
25362
25363         * s-addope.adb: Correct obvious error in mod function
25364
25365 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
25366
25367         * Makefile.in: Add target pairs for powerpc darwin*
25368         tasking support.
25369
25370         * a-intnam-darwin.ads, s-osinte-darwin.adb,
25371         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
25372
25373 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
25374
25375         * Makefile.in: Add target macro definitions for s390*-linux*.
25376         * system-linux-s390.ads: New file.
25377         * system-linux-s390x.ads: New file.
25378
25379 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
25380
25381         * gnat_ugn.texi: Correct argument to @setfilename.
25382
25383 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
25384
25385         * a-exexpr.adb (Unwind_Word): New data type.
25386         (Unwind_Exception): Use it as type of Private1 and Private2.
25387
25388         * raise.c (db_action_for): Fix debug printf.
25389
25390 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
25391
25392         * a-wtmoio.ads: Formal type must be a modular type, not a signed
25393         integer type.
25394
25395 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25396
25397         * decl.c (gnat_to_gnu_entity, case object): Call
25398         __builtin_update_setjmp_buf.
25399
25400         * gigi.h (update_setjmp_buf): Deleted.
25401         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
25402
25403         * misc.c: (update_setjmp_buf): Deleted.
25404
25405         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
25406         around block of RTL.
25407
25408         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
25409
25410 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
25411
25412         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
25413         subprogram for which no pragma All_Calls_Remote applies, store the
25414         address of the real subprogram in the underlying record type, so local
25415         dereferences do not go through the PCS.
25416
25417 2004-04-26  Robert Dewar  <dewar@gnat.com>
25418
25419         * i-c.ads: Add some type qualifications to avoid ambiguities when
25420         compiling with s-auxdec.ads and a non-private address type.
25421
25422 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
25423
25424         * Makefile.rtl: Fix error in previous check-in:
25425         Add s-addope.o to non tasking object list (rather than tasking object
25426         list).
25427
25428 2004-04-26  Javier Miranda  <miranda@gnat.com>
25429
25430         * sem_aggr.adb: Fix typo in comments
25431         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
25432         Required to check the null-exclusion attribute.
25433
25434         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
25435         case of anonymous access types in record and array components. For a
25436         component definition the level is the same of the enclosing composite
25437         type.
25438
25439         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
25440         that are anonymous access types the level of accessibility depends on
25441         the enclosing type declaration. In order to have this information, set
25442         the scope of the anonymous access type to the enclosing record type
25443         declaration.
25444         (Array_Type_Declaration): In case of components that are anonymous
25445         access types the level of accessibility depends on the enclosing type
25446         declaration. In order to have this information, set the scope of the
25447         anonymous access type to the enclosing array type declaration.
25448
25449         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
25450         access type.
25451
25452         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
25453         renaming of anonymous access-to-constant types allowed if and only if
25454         the renamed object is access-to-constant.
25455
25456         * sem_util.adb (Type_Access_Level): In case of anonymous access types
25457         that are component_definition or discriminants of a nonlimited type,
25458         the level is the same as that of the enclosing component type.
25459
25460 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
25461
25462         * sem_elim.adb: Some minor code reorganization from code reading. Fix
25463         misprint in the function name (File_Name_Match).
25464
25465 2004-04-23  Laurent GUERBY <laurent@guerby.net>
25466
25467         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
25468         install.
25469
25470 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
25471
25472         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
25473
25474 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
25475
25476         * adaint.c (__gnat_try_lock): No longer requires that the parent
25477         directory be writable, the directory itself is enough.
25478         (gnat_is_absolute_path): Change profile, so that the call from
25479         GNAT.OS_Lib can be made more efficient.
25480
25481         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
25482         from GNAT.OS_Lib can be made more efficient.
25483
25484         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
25485         one copy of the file name. Found by code reading.
25486
25487 2004-04-23  Vincent Celier  <celier@gnat.com>
25488
25489         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
25490         Correct documentation on gnatmake switches transmitted to the compiler
25491
25492         * ali.ads: Minor comment fix
25493
25494 2004-04-23  Javier Miranda  <miranda@gnat.com>
25495
25496         * sem_ch6.adb: (Confirming Types): Code cleanup
25497
25498         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
25499         subprogram types: E_Anonymous_Access_Subprogram_Type and
25500         E_Anonymous_Access_Protected_Subprogram_Type.
25501
25502 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
25503
25504         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
25505         whether a pragma All_Calls_Remote applies to the subprogram on which
25506         'Access is taken.
25507         No functional change is introduced by this revision; the new parameter
25508         will be used to allow calls to local RCI subprograms to be optimized
25509         to not use the PCS in the case where no pragma All_Calls_Remote applies,
25510         as is already done in the PolyORB implementation of the DSA.
25511
25512         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
25513         whether a pragma All_Calls_Remote applies to the subprogram on which
25514         'Access is taken.
25515         No functional change is introduced by this revision; the new parameter
25516         will be used to allow calls to local RCI subprograms to be optimized
25517         to not use the PCS in the case where no pragma All_Calls_Remote applies,
25518         as is already done in the PolyORB implementation of the DSA.
25519
25520 2004-04-23  Robert Dewar  <dewar@gnat.com>
25521
25522         * Makefile.rtl: Add entry for s-addope.o in run time library list
25523         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
25524         * s-addope.ads, s-addope.adb: New files.
25525
25526         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
25527         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
25528         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
25529         System.Address to be non-private and signed.
25530
25531         * sem_elim.adb: Minor reformatting (fairly extensive)
25532         Some minor code reorganization from code reading
25533         Add a couple of ??? comments
25534
25535 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25536
25537         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
25538         (tree_transform, case N_If_Statement): Remove non-determinism.
25539
25540         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
25541
25542 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
25543
25544         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
25545         Eliminate' section.
25546
25547         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
25548         no longer used as a parameter name for Eliminate pragma).
25549
25550 2004-04-22  Laurent GUERBY <laurent@guerby.net>
25551
25552         PR optimization/14984
25553         PR optimization/14985
25554         * trans.c (gigi): Fix non determinism leading to bootstrap
25555         comparison failures.
25556
25557 2004-04-21  Pascal Obry  <obry@gnat.com>
25558
25559         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
25560         passed to spawnvp() to properly handle program pathname with spaces on
25561         Win32.
25562
25563 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
25564
25565         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
25566         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
25567         unlocked in case of exceptions.
25568
25569 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
25570
25571         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
25572         This function does not exist anymore.
25573
25574 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
25575
25576         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
25577
25578         * link.c: Move variables to the __gnat name space.
25579
25580         * Makefile.in: list link.o explicitly when needed.
25581
25582         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
25583
25584 2004-04-21  Javier Miranda  <miranda@gnat.com>
25585
25586         * einfo.adb (Original_Access_Type): New subprogram
25587         (Set_Original_Access_Type): New subprogram
25588         (Write_Field21_Name): Write the name of the new field
25589
25590         * einfo.ads (Original_Access_Type): New field present in access to
25591         subprogram types.
25592         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
25593         E_Anonymous_Access_Protected_Subprogram_Type.
25594
25595         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
25596         subprogram types.
25597
25598         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
25599         to anonymous access to subprogram types.
25600
25601         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
25602         to subprogram types.
25603
25604         * sem_ch3.adb (Access_Definition): Complete decoration of entities
25605         corresponding to anonymous access to subprogram types.
25606         (Analyze_Component_Declaration): Add new actual to the call to
25607         subprogram replace_anonymous_access_to_protected_subprogram.
25608         (Array_Type_Declaration): Add new actual to the call to subprogram
25609         replace_anonymous_access_to_protected_subprogram.
25610         (Process_Discriminants): Add new actual to the call to subprogram
25611         replace_anonymous_access_to_protected_subprogram.
25612         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
25613
25614         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
25615         formal.
25616
25617         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
25618         access to subprogram types.
25619
25620         * sem_util.adb (Has_Declarations): Addition of package_specification
25621         nodes.
25622
25623 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
25624
25625         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
25626         inlined flags to renamed entity only if in current unit.
25627
25628 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
25629
25630         * s-parint.ads: Add DSA implementation marker.
25631
25632         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
25633         value of System.Partition_Interface.DSA_Implementation to determine
25634         what version of the distributed systems annex is available (no
25635         implementation, GLADE, or PolyORB).
25636
25637 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
25638
25639         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
25640
25641 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25642
25643         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
25644         with new type if alias sets differ.
25645         Fixes ACATS c41103b.
25646
25647 2004-04-21  Vincent Celier  <celier@gnat.com>
25648
25649         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
25650         Add array Lang_Args for the language specific compiling argument
25651         switches.
25652
25653         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
25654
25655 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
25656
25657         * gnat_rm.texi: Update the descripton of the Eliminate pragma
25658         according to the recent changes in the format of the parameters of the
25659         pragma (replacing Homonym_Number with Source_Location).
25660
25661 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
25662
25663         * 5isystem.ads: Removed, unused.
25664
25665         * gnat_rm.texi: Redo 1.13 change.
25666
25667 2004-04-19  Robert Dewar  <dewar@gnat.com>
25668
25669         * s-stoele.ads: Clean up definition of Storage_Offset (the new
25670         definition is cleaner, avoids the kludge of explicit Standard operator
25671         references, and also is consistent with a visible System.Address with
25672         no visible operations.
25673
25674         * s-geveop.adb: Add declarations to avoid assumption of visible
25675         operations on type System.Address (since these might not be available
25676         if Address is a non-private type for which the operations
25677         are made abstract).
25678
25679         * sem_eval.adb: Minor reformatting
25680
25681         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
25682         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
25683         reformatting (new function spec format).
25684
25685         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
25686         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
25687         s-caun64.adb: Add declarations to avoid assumption of visible
25688         operations on type System.Address (since these might not be available
25689         if Address is a non-private type for which the operations are made
25690         abstract).
25691
25692         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
25693
25694         * exp_intr.adb: Minor comment update
25695
25696         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
25697
25698         * 5omastop.adb: Add declarations to avoid assumption of visible
25699         operations on type System.Address (since these might not be available
25700         if Address is a non-private type for which the operations
25701         are made abstract).
25702
25703 2004-04-19  Vincent Celier  <celier@gnat.com>
25704
25705         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
25706
25707         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
25708         defaulted to Ada.
25709
25710         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
25711         defaulted to Ada.
25712         Call Check with Process_Languages.
25713         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
25714         with Process_Languages.
25715         (Recursive_Check): New Boolean parameter Process_Languages. Call
25716         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
25717         Process_Languages.
25718
25719         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
25720
25721         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
25722         parameter Ada_Main, defaulted to True.
25723         Check for Ada specific characteristics only when Ada_Main is True.
25724
25725         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
25726
25727         * prj.adb: (Project_Empty): Add new Project_Data components.
25728
25729         * prj.ads: New types and tables for non Ada languages.
25730         (Project_Data): New components Languages, Impl_Suffixes,
25731         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
25732         Include_Path, Include_Data_Set.
25733
25734         * prj-env.ads, prj-env.adb: Minor reformatting
25735
25736         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
25737         Put subprograms in alphabetical order
25738
25739         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
25740         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
25741         Opt.Follow_Links.
25742
25743         * mlib-prj.adb: Back out modification in last version, as they are
25744         incorrect.
25745         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
25746
25747         * make.adb: (Mains): Moved to package Makeutl
25748         (Linker_Opts): Moved to package Makeutl
25749         (Is_External_Assignment): Moved to package Makeutl
25750         (Test_If_Relative_Path): Moved to package Makeutl
25751         (Gnatmake): Move sorting of linker options to function
25752         Makeutl.Linker_Options_Switches.
25753
25754         * makeutl.ads, makeutl.adb: New files.
25755
25756         * Makefile.in: Add makeutl.o to the object files for gnatmake
25757
25758         * makeusg.adb: Add line for new switch -eL.
25759
25760         * gnatls.adb (Image): New function.
25761         (Output_Unit): If in verbose mode, output the list of restrictions
25762         specified by pragmas Restrictions.
25763
25764         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
25765         Text_IO.
25766
25767         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
25768         needed, to put it in the range 1970 (included) - 2026 (excluded).
25769         (Time_Of): Do not shift Unix_Min_Year (1970).
25770         Shift the date by multiple of 56 years, if needed, to put it in the
25771         range 1970 (included) - 2026 (excluded).
25772
25773         * adaint.h, adaint.c (__gnat_set_executable): New function.
25774
25775 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25776
25777         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
25778         and pop GC context.
25779         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
25780         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
25781         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
25782         (tree_transform, case N_Code_Statement): Likewise.
25783         (gnat_expand_stmt, case LABEL_STMT): Don't look at
25784         LABEL_STMT_FIRST_IN_EH.
25785         (gnat_expand_stmt, case ASM_STMT): New case.
25786
25787         * utils2.c (build_unary_op): Properly set TREE_READONLY of
25788         UNCONSTRAINED_ARRAY_REF.
25789
25790         * utils.c (poplevel): Temporarily push/pop GC context around inline
25791         function expansion.
25792
25793         * decl.c (maybe_variable): Properly set TREE_READONLY of
25794         UNCONSTRAINED_ARRAY_REF.
25795         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
25796
25797         * ada-tree.def: (ASM_STMT): New.
25798
25799         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
25800         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
25801         ASM_STMT_INPUT): New.
25802         (ASM_STMT_CLOBBER): Likewise.
25803
25804 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
25805
25806         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
25807         general rcheck mechanism to raise Program_Error for E.4(18), instead
25808         of a custom raiser in System.Partition_Interface.
25809         Part of general cleanup work before PolyORB integration.
25810
25811         * snames.ads, snames.adb: Add new runtime library entities and names
25812         for PolyORB DSA.
25813
25814         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
25815         exp_dist.
25816         (Build_Subprogram_Id): New subprogram provided by exp_dist
25817         Code reorganisation in preparation for PolyORB integration.
25818
25819         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
25820         exp_dist.
25821         (Build_Subprogram_Id): New subprogram provided by exp_dist
25822
25823         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
25824         actual parameter types for call to dereference of an
25825         access-to-subprogram type.
25826
25827         * rtsfind.ads: Add new runtime library entities and names for PolyORB
25828         DSA.
25829
25830         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
25831         instead, which has the same behaviour here since we never pass it a
25832         NULL pointer.
25833
25834         * link.c (run_path_option, Solaris case): Use -Wl, as for other
25835         platforms.
25836
25837         * Makefile.in: adjust object file lists for gnatlink and gnatmake
25838         to account for new dependency upon Interfaces.C.Strings + link.o
25839         For x86 FreeBSD, use 86numaux.
25840
25841         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
25842         from Mlib.Tgt to Mlib.
25843
25844         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
25845         target-independent.
25846
25847         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
25848         target-specific versions of this subprogram, now implemented as a
25849         target-independent function in Mlib.
25850
25851         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
25852         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
25853         (Linker_Library_Path_Option): Remove target-specific versions of this
25854         subprogram, now implemented as a target-independent function in Mlib.
25855
25856         * atree.adb: (Allocate_Initialize_Node): New subprogram.
25857         Factors out node table slots allocation.
25858         (Fix_Parents): New subprogram.
25859         Encapsulate the pattern of fixing up parent pointers for syntactic
25860         children of a rewritten node.
25861         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
25862         (Rewrite): Use New_Copy when creating saved copy of original node.
25863         (Replace): Use Copy_Node to copy nodes.
25864
25865 2004-04-19  Javier Miranda  <miranda@gnat.com>
25866
25867         * sprint.adb (Sprint_Node_Actual): Give support to the new
25868         Access_To_Subprogram node available in Access_Definition nodes. In
25869         addition, give support to the AI-231 node fields: null-exclusion,
25870         all-present, constant-present.
25871
25872         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
25873
25874         * sinfo.ads, sinfo.adb:
25875         New field Access_To_Subprogram_Definition in Access_Definition nodes
25876
25877         * sem_ch6.adb (Process_Formals): Move here the code that creates and
25878         decorates internal subtype declaration corresponding to the
25879         null-excluding formal. This code was previously in Set_Actual_Subtypes.
25880         In addition, carry out some code cleanup on this code. In case of
25881         access to protected subprogram call
25882         Replace_Anonymous_Access_To_Protected_Subprogram.
25883         (Set_Actual_Subtypes): Code cleanup.
25884
25885         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
25886         Find_Type in case of anonymous access renamings. Add warning in case of
25887         null-excluding attribute used in anonymous access renaming.
25888
25889         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
25890         subprogram
25891
25892         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
25893         subprogram.
25894         (Access_Definition): In case of anonymous access to subprograms call
25895         the corresponding semantic routine to decorate the node.
25896         (Access_Subprogram_Declaration): Addition of some comments indicating
25897         some code that probably should be added here. Detected by comparison
25898         with the access_definition subprogram.
25899         (Analyze_Component_Declaration): In case of access to protected
25900         subprogram call Replace_Anonymous_Access_To_Protected.
25901         (Array_Type_Declaration): In case of access to protected subprogram call
25902         Replace_Anonymous_Access_To_Protected_Subprogram.
25903         (Process_Discriminants): In case of access to protected subprogram call
25904         Replace_Anonymous_Access_To_Protected_Subprogram.
25905
25906         * par.adb (P_Access_Definition): New formal that indicates if the
25907         null-exclusion part was present.
25908         (P_Access_Type_Definition): New formal that indicates if the caller has
25909         already parsed the null-excluding part.
25910
25911         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
25912         (P_Identifier_Declarations): Code cleanup and give support to renamings
25913         of anonymous access to subprogram types.
25914         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
25915         (P_Array_Type_Definition): Give support to AI-254.
25916         (P_Component_Items): Give support to AI-254.
25917         (P_Access_Definition): New formal that indicates if the header was
25918         already parsed by the caller.
25919         (P_Access_Type_Definition): New formal that indicates if the caller has
25920         already parsed the null-excluding part.
25921
25922         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
25923         call to P_Access_Definition.
25924
25925 2004-04-19  Geert Bosch  <bosch@gnat.com>
25926
25927         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
25928         the delicate semantics of floating-point to integer conversion.
25929         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
25930
25931         * eval_fat.adb (Machine_Mantissa): Moved to spec.
25932         (Machine_Radix): New function.
25933
25934         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
25935         conversion checks.
25936         (Machine_Radix): New function also for use in conversion checks.
25937
25938 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
25939
25940         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
25941
25942         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
25943         to decorate the access-to-protected subprogram and the equivalent type.
25944
25945         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
25946         to anonymous access to subprogram types.
25947
25948         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
25949         constant-folding, for legality checks in contexts that require an RM
25950         static expression.
25951
25952         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
25953         temporary but stack checking is not enabled, increment serial number
25954         to so that symbol generation is consistent with and without stack
25955         checking.
25956
25957         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
25958         independent on whether stack checking is enabled, caller must check
25959         the corresponding flag.
25960
25961         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
25962         range checks.
25963         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
25964         parent if it has discriminants.
25965         (Build_Derived_Private_Type): Constructed full view does
25966         not come from source.
25967         (Process_Discriminants): Default discriminants on a tagged type are
25968         legal if this is the internal completion of a private untagged
25969         derivation.
25970
25971         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
25972         no constraint checks, because it corresponds to an existing object.
25973
25974         * sem_prag.adb (Process_Convention): Pragma applies
25975         only to subprograms in the same declarative part, i.e. the same unit,
25976         not the same scope.
25977
25978         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
25979         ignore type mismatch on a numeric conversion if expression comes from
25980         expansion.
25981
25982 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
25983
25984         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
25985         Homonym_Number parameter, add processing for Source_Location parameter
25986         corresponding.
25987         (Check_Eliminated): Remove the check for homonym numbers, add the check
25988         for source location traces.
25989
25990         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
25991         with Arg_Source_Location corresponding to the changes in the format of
25992         the pragma.
25993
25994         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
25995         Eliminate pragma corresponding to the changes in the format of the
25996         pragma: Homonym_Number is replaced with Source_Location, two ways of
25997         distinguishing homonyms are mutially-exclusive.
25998
25999 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
26000
26001         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
26002
26003         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
26004         No_Dollar_In_Label, no longer necessary, as it is always True.
26005         (Strip_Suffixes): Likewise.
26006
26007 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
26008
26009         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
26010         modulus for compatibility with size clause on targets with 16-bit
26011         Integer.
26012
26013         * layout.adb (Discrimify): In the case of private types, set Vtyp to
26014         full type to fix type mismatches on calls to size functions for
26015         discriminant-dependent array components.
26016
26017 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
26018
26019         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
26020         lib.
26021
26022 2004-04-19  Pascal Obry  <obry@gnat.com>
26023
26024         * mdll-utl.adb (Locate): New version is idempotent.
26025
26026 2004-04-17  Laurent Guerby <laurent@guerby.net>
26027
26028         PR ada/14988 (partial)
26029         * impunit.adb: Fix typo.
26030
26031 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
26032
26033         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
26034         and install-rts-cert targets.  Remove all gnatlib and gnattools
26035         targets and all other rts-* targets (moved to libada).  Remove (now)
26036         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
26037         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
26038
26039 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26040
26041         * trans.c (tree_transform): Shortcut returning error_mark_node for
26042         statements in annotate_only_mode.
26043         (tree_transform, case N_Label, case N_Return_Statement,
26044         N_Goto_Statement): Make statement tree instead of generating code.
26045         (tree_transform, case N_Assignment_Statement): No longer check
26046         type_annotate_only.
26047         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
26048         RETURN_STMT): New.
26049         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
26050         New fcns.
26051         (gnat_to_gnu): Collect any RTL generated and deal with it.
26052         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
26053         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
26054         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
26055
26056         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
26057
26058         * ada-tree.def (EXPR_STMT): Fix typo in name.
26059         (BLOCK_STMT, IF_STMT): New nodes.
26060
26061         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
26062         LABEL_STMT_FIRST_IN_EH): New macros.
26063         (RETURN_STMT_EXPR): Likewise.
26064
26065         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
26066         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
26067
26068 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
26069
26070         * atree.ads: Correct documentation on extended nodes.
26071
26072         * link.c: Set run_path_option for FreeBSD.
26073
26074 2004-04-08  Vincent Celier  <celier@gnat.com>
26075
26076         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
26077         one of the ALI file, do not link with DEC lib.
26078
26079         * par.adb Remove the last two characters ("%s" or "%b") when checking
26080         if a language defined unit may be recompiled.
26081
26082 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
26083
26084         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
26085         removal of abstract operation leaves no possible interpretation for
26086         expression.
26087
26088         * sem_eval.adb (Eval_Qualified_Expression): Use
26089         Set_Raises_Constraint_Error on node when needed, so that it does not
26090         get optimized away by subsequent optimizations.
26091
26092         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
26093         operands even when they are not wrapped in a type conversion.
26094
26095 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
26096
26097         * sem_prag.adb (Set_Exported): Warn about making static as result of
26098         export only when the export is coming from source. This may be not
26099         be true e.g. on VMS where we expand export pragmas for exception codes
26100         together with imported or exported exceptions, and we don't want the
26101         user to be warned about something he didn't write.
26102
26103 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
26104
26105         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
26106         duplication between normal entities and those declared as renamings.
26107         No functional change.
26108
26109         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
26110         inline functions returning an unconstrained result.
26111
26112 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
26113
26114         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
26115         conform to what other front-ends do.
26116
26117 2004-04-08  Doug Rupp  <rupp@gnat.com>
26118
26119         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
26120         libraries.
26121
26122 2004-04-06  Pascal Obry  <obry@gnat.com>
26123
26124         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
26125
26126         * osint.adb (Program_Name): Do not look past a directory separator.
26127
26128 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
26129
26130         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
26131
26132         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
26133         requirement for preserving a copy of the original assignment node.
26134
26135         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
26136
26137 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
26138
26139         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
26140         when supported.
26141
26142 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
26143
26144         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
26145         operator calls in functional notation, and apply
26146         Universal_Interpretation to operands, not to their type.
26147
26148 2004-04-06  Robert Dewar  <dewar@gnat.com>
26149
26150         * 5wdirval.adb: Minor reformatting
26151
26152 2004-04-06  Ed Falis  <falis@gnat.com>
26153
26154         * gnat_rm.texi: Improve a reference to the GCC manual
26155
26156 2004-04-05  Vincent Celier  <celier@gnat.com>
26157
26158         * adaint.h, adaint.c: Add function __gnat_named_file_length
26159
26160         * impunit.adb: Add Ada.Directories to the list
26161
26162         * Makefile.in: Add VMS and Windows versions of
26163         Ada.Directories.Validity package body.
26164
26165         * Makefile.rtl: Add a-direct and a-dirval
26166
26167         * mlib-tgt.ads: Minor comment update.
26168
26169         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
26170         a-direct.ads, a-direct.adb: New files.
26171
26172 2004-04-05  Vincent Celier  <celier@gnat.com>
26173
26174         PR ada/13620
26175         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
26176         just to the compiler.
26177
26178 2004-04-05  Robert Dewar  <dewar@gnat.com>
26179
26180         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
26181         returned string is 1.
26182
26183         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
26184
26185         * eval_fat.ads: Minor reformatting
26186
26187         * g-curexc.ads: Document that lower bound of returned string values
26188         is always one.
26189
26190         * gnatlink.adb: Add ??? comment for previous change
26191         (need to document why this is VMS specific)
26192
26193         * s-stoele.ads: Minor reformatting
26194
26195         * tbuild.ads: Minor reformatting throughout (new function specs)
26196
26197         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
26198         after WITH.
26199
26200         * scng.adb: Minor reformatting
26201
26202 2004-04-05  Geert Bosch  <bosch@gnat.com>
26203
26204         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
26205         (Leading_Part): Still perform truncation to machine number if the
26206         specified radix_digits is greater or equal to machine_mantissa.
26207
26208 2004-04-05  Javier Miranda  <miranda@gnat.com>
26209
26210         * par-ch3.adb: Complete documentation of previous change
26211         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
26212         (aliased must appear before constant).
26213
26214         * par-ch4.adb: Complete documentation of previous change.
26215
26216         * par-ch6.adb: Complete documentation of previous change.
26217
26218         * sinfo.ads: Fix typo in commment.
26219
26220 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
26221
26222         * sem_ch3.adb (Inherit_Components): If derived type is private and has
26223         stored discriminants, use its discriminants to constrain parent type,
26224         as is done for non-private derived record types.
26225
26226         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
26227         Ada 2005 AI-310: an abstract non-dispatching operation is not a
26228         candidate interpretation in an overloaded call.
26229
26230         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
26231         expression is Null and target type is not an access type (e.g. a
26232         non-private address type).
26233
26234 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
26235
26236         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
26237         statement whose right-hand side is an inlined call, save a copy of the
26238         original assignment subtree to preserve enough consistency for
26239         Analyze_Assignment to proceed.
26240
26241         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
26242         complete assignment subtree which is now unnecessary, as the expansion
26243         of inlined call has been improved to preserve a consistent assignment
26244         tree.  Note_Possible_Modification must be called only
26245         after checks have been applied, or else unnecessary checks will
26246         be generated.
26247
26248         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
26249         of explicit dereferences that do not Come_From_Source:
26250          - be selective on cases where we must go back to the dereferenced
26251            pointer (an assignment to an implicit dereference must not be
26252            recorded as modifying the pointer);
26253          - do not rely on Original_Node being present (Analyze_Assignment
26254            calls Note_Possible_Modification on a copied tree).
26255
26256         * sem_warn.adb (Check_References): When an unset reference to a pointer
26257         that is never assigned is encountered, prefer '<pointer> may be null'
26258         warning over '<pointer> is never assigned a value'.
26259
26260 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
26261
26262         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
26263         the ABI.
26264
26265 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
26266
26267         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
26268         libexc. We currently don't reference anything in this library and
26269         linking it in triggers linker warnings we don't want to see.
26270
26271         * init.c: Update comments.
26272
26273 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26274
26275         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
26276         * utils.c (create_field_decl): Likewise.
26277         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
26278
26279 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
26280
26281         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
26282         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
26283         Add info directory entry and category.
26284
26285 2004-04-02  Jan Hubicka  <jh@suse.cz>
26286
26287         * utils.c: Include function.h
26288         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
26289
26290 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
26291
26292         PR ada/14150
26293         * Make-lang.in: Clean up generation of documentation
26294
26295         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
26296
26297         * xgnatug.adb: Removed, replaced by xgnatugn.adb
26298
26299         * xgnatugn.adb: Replaces xgnatug.adb
26300
26301         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
26302
26303         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
26304
26305         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
26306         gnat_ug_wnt.texi: Removed.
26307
26308 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
26309
26310         * utils2.c: Update copyright notice.
26311
26312 2004-04-01  Robert Dewar  <dewar@gnat.com>
26313
26314         * checks.adb: Minor reformatting throughout
26315         Note that prev checkin added RM reference to alignment warning
26316
26317 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
26318
26319         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
26320         non-static when building aggregate for bit-packed array.
26321
26322         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
26323         function call that is itself the actual in a procedure call, build
26324         temporary for it.
26325
26326         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
26327         a string literal, create a temporary for it, constant folding only
26328         handles scalars here.
26329
26330 2004-04-01  Vincent Celier  <celier@gnat.com>
26331
26332         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
26333         Error_Msg_SP): New empty procedures to instantiate the Scanner.
26334         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
26335         tokens.
26336         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
26337         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
26338         and get the checksum.
26339
26340         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
26341         already in the Q.
26342         Increase the Marking_Label at the end of the Multiple_Main_Loop,
26343         instead of at the beginning.
26344
26345         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
26346         directly.
26347         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
26348         on VMS.
26349
26350         * osint.ads (Multi_Unit_Index_Character): New Character global variable
26351
26352         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
26353         not '~' directly.
26354
26355         * par.adb: Remove test on file name to detect language defined units.
26356         Add test on unit name, after parsing, to detect language defined units
26357         that are not compiled with -gnatg (except System.RPC and its children)
26358
26359         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
26360         following units without style checking.
26361
26362         * switch-c.adb: Change -gnatC to -gnateI
26363
26364         * usage.adb: Document new switch -gnateInnn
26365
26366         * scng.adb (Accumulate_Token_Checksum): New procedure
26367         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
26368         word or literal number.
26369         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
26370         numbers.
26371
26372 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
26373
26374         * a-tasatt.adb,
26375         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
26376         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
26377         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
26378         5vtpopde.adb: Add missing 'constant' keywords.
26379
26380 2004-04-01  Javier Miranda  <miranda@gnat.com>
26381
26382         * par-ch4.adb: (P_Allocator): Code cleanup
26383
26384         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
26385         attribute.
26386
26387         * sinfo.ads: Complete documentation of previous change
26388
26389 2004-04-01  Pascal Obry  <obry@gnat.com>
26390
26391         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
26392         only on VMS.  This special handling was done because an old GNU/ld bug
26393         on Windows which has been fixed.
26394
26395 2004-04-01  GNAT Script  <nobody@gnat.com>
26396
26397         * Make-lang.in: Makefile automatically updated
26398
26399 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26400
26401         * decl.c (gnat_to_gnu_entity, make_type_from_size):
26402         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
26403         * trans.c (tree_transform, convert_with_check): Likewise.
26404         * utils.c (gnat_signed_or_unsigned_type): Likewise.
26405         (build_vms_descriptor, unchecked_convert): Likewise.
26406         * utils2.c (nonbinary_modular_operation): Likewise.
26407
26408 2004-03-29  Javier Miranda  <miranda@gnat.com>
26409
26410         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
26411         (Install_Null_Excluding_Check): Local subprogram that determines whether
26412         an access node requires a runtime access check and if so inserts the
26413         appropriate run-time check.
26414         (Apply_Access_Check): Call Install_Null_Excluding check if required
26415         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
26416
26417         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
26418
26419         * einfo.ads: Fix typo in comment
26420
26421         * exp_ch3.adb (Build_Assignment): Generate conversion to the
26422         null-excluding type to force the corresponding run-time check.
26423         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
26424         type to force the corresponding run-time check.
26425
26426         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
26427         the null-excluding type to force the corresponding run-time check.
26428
26429         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
26430         case of access types unless they have the null-excluding attribute.
26431
26432         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
26433         part.
26434
26435         * exp_util.ads: Fix typo in comment
26436
26437         * par.adb (P_Null_Exclusion): New subprogram
26438         (P_Subtype_Indication): New formal that indicates if the null-excluding
26439         part has been scanned-out and it was present
26440
26441         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
26442
26443         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
26444         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
26445         type to force the corresponding run-time check
26446         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
26447         components
26448         (Resolve_Array_Aggregate): Carry out some static checks
26449         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
26450
26451         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
26452         attribute must be set only if specified by means of the null-excluding
26453         part. In addition, we must also propagate the access-constant attribute
26454         if present.
26455         (Access_Subprogram_Declaration, Access_Type_Declaration,
26456         Analyze_Component_Declaration, Analyze_Object_Declaration,
26457         Array_Type_Declaration, Process_Discriminants,
26458         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
26459         and carry out some static checks.
26460         (Build_Derived_Access_Type): Set the null-excluding attribute
26461         (Derived_Type_Declaration, Process_Subtype): Carry out some static
26462         checks.
26463
26464         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
26465
26466         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
26467
26468         * sem_ch6.adb (Process_Formals): Carry out some static checks.
26469         (Set_Actual_Subtypes): Generate null-excluding subtype if the
26470         null-excluding part was present; it is not required to be done here in
26471         case of anonymous access types.
26472         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
26473         value.
26474
26475         * sem_res.adb (Resolve_Actuals): Carry out some static check
26476         (Resolve_Null): Allow null in anonymous access
26477
26478         * sinfo.adb: New subprogram Null_Exclusion_Present
26479         All_Present and Constant_Present available on access_definition nodes
26480
26481         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
26482         object_declaration, derived_type_definition, component_definition,
26483         discriminant_specification, access_to_object_definition,
26484         access_function_definition, allocator, access_procedure_definition,
26485         access_definition, parameter_specification, All_Present and
26486         Constant_Present flags available on access_definition nodes.
26487
26488 2004-03-29  Robert Dewar  <dewar@gnat.com>
26489
26490         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
26491         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
26492         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
26493         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
26494         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
26495         sem_prag.adb: Updates to handle multiple units/file
26496
26497         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
26498
26499         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
26500         sem_util.adb: Minor reformatting
26501
26502         * sem_ch12.adb: Add comment for previous change
26503
26504 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
26505
26506         * osint.adb (Executable_Prefix): Set Exec_Name to the current
26507         executable name when not initialized. Otherwise, use its current value.
26508
26509         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
26510         initialize it to another executable name than the current one. This
26511         allows to configure paths for an executable name (gnatmake) different
26512         from the current one (gnatdist).
26513
26514 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
26515
26516         * exp_ch6.adb (Expand_Call): A call to a function declared in the
26517         current unit cannot be inlined if it appears in the body of a withed
26518         unit, to avoid order of elaboration problems in gigi.
26519
26520         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
26521         information for protected (wrapper) operation as well, to simplify gdb
26522         use.
26523
26524         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
26525         protected body, indicate that the entity for the generated spec comes
26526         from source, to ensure that references are properly generated for it.
26527         (Build_Body_To_Inline): Do not inline a function that returns a
26528         controlled type.
26529
26530         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
26531         apply convention to homonyms that are declared explicitly.
26532
26533         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
26534         that renames an equality operator and the operands are overloaded,
26535         resolve them with the declared formal types, before rewriting as an
26536         operator.
26537
26538 2004-03-29  GNAT Script  <nobody@gnat.com>
26539
26540         * Make-lang.in: Makefile automatically updated
26541
26542 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
26543
26544         * memtrack.adb: Log realloc calls, which are treated as free followed
26545         by alloc.
26546
26547 2004-03-25  Vincent Celier  <celier@gnat.com>
26548
26549         * prj-makr.adb (Process_Directories): Detect when a file contains
26550         several units. Do not include such files in the config pragmas or
26551         in the naming scheme.
26552
26553         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
26554         Resolve links only when not in Trusted_Mode.
26555         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
26556         Do not resolve links for the display names.
26557
26558         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
26559         resolve links when computing the display names.
26560
26561 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
26562
26563         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
26564         attribute reference does not denote a subtype, it can be any
26565         expression that has a classwide type, potentially after an implicit
26566         dereference.  In particular, the prefix can be a view conversion for
26567         a classwide type (for which Is_Object_Reference holds), but it can
26568         also be a value conversion for an access-to-classwide type. In the
26569         latter case, there is an implicit dereference, and the original node
26570         for the prefix does not verify Is_Object_Reference.
26571
26572         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
26573         conversion of a discriminant-dependent component of a mutable object
26574         is one itself.
26575
26576 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
26577
26578         * freeze.adb (Freeze_Entity): When an inherited subprogram is
26579         inherited, has convention C, and has unconstrained array parameters,
26580         place the corresponding warning on the derived type declaration rather
26581         than the original subprogram.
26582
26583         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
26584         indication on renaming declaration, if formal has a box and actual
26585         is absent.
26586
26587         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
26588         determine whether to generate an implicit or explicit reference to
26589         the renamed entity.
26590
26591         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
26592         subprogram renaming comes from a defaulted formal subprogram in an
26593         instance.
26594
26595 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
26596
26597         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
26598         value expressions to ensure that calls within a component definition
26599         will be checked (since those are evaluated during the record type's
26600         elaboration).
26601
26602 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
26603
26604         * s-tpobop.adb: Code clean up:
26605         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
26606         code.
26607         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
26608
26609 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
26610
26611         * Makefile.in: Clean up in the ravenscar run time.
26612
26613 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26614
26615         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
26616         of No_Strict_Aliasing to build_pointer_type_for_mode.
26617         * utils.c (update_pointer_to): Walk pointer and ref chains.
26618
26619 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
26620
26621         * ali.ads: Fix Comment about Dynamic_Elab.
26622
26623         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
26624         Has_RACW, Is_Generic, etc.)
26625         (Output_Object, Gnatls): Take into account ALI files not attached to
26626         an object.
26627
26628 2004-03-22  Vincent Celier  <celier@gnat.com>
26629
26630         * gprep.adb: Change all String_Access to Name_Id
26631         (Is_ASCII_Letter): new function
26632         (Double_File_Name_Buffer): New procedure
26633         (Preprocess_Infile_Name): New procedure
26634         (Process_Files): New procedure
26635         (Gnatprep): Check if output and input are existing directories.
26636         Call Process_Files to do the real job.
26637
26638 2004-03-22  Robert Dewar  <dewar@gnat.com>
26639
26640         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
26641         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
26642
26643 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
26644
26645         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
26646         case when the source contains only comments.
26647
26648 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
26649
26650         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
26651         declaration for a child subprogram body that acts as a spec, indicate
26652         that the entity in the declaration needs debugging information.
26653
26654         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
26655         full view if the subtype is created for a constrained record component;
26656         gigi has enough information to construct the record, and there is no
26657         place in the tree for the declaration.
26658
26659         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
26660         serial number for the dummy body that is built for analysis, to avoid
26661         inconsistencies in the generation of internal names when compiling
26662         with -gnatN.
26663
26664 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
26665
26666         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
26667         object.
26668
26669 2004-03-22  GNAT Script  <nobody@gnat.com>
26670
26671         * Make-lang.in: Makefile automatically updated
26672
26673 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26674
26675         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
26676         * trans.c (tree_transform, emit_index_check): Likewise.
26677         * utils.c (build_template): Likewise.
26678         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
26679         (maybe_unconstrained_array, unchecked_convert): Likewise.
26680         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
26681         (build_unary_op): Likewise.
26682         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
26683         (fill_vms_descriptor): Likewise.
26684         (build_call_alloc_dealloc): Likewise.
26685         ALIGN is unsigned.
26686         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
26687
26688 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
26689
26690         PR other/14630
26691         * gnat_ug.texi: Add info directory category and entry.
26692         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
26693         gnat_ug_wnt.texi: Regenerate.
26694
26695 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
26696
26697         * ada-tree.h: Update copyright notice.
26698         Minor reformatting.
26699
26700 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
26701
26702         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
26703         as regular exception objects and not as mere integers representing the
26704         condition code.  The latter approach required some dynamics to mask off
26705         severity bits, which did not fit well into the GCC table based model.
26706         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
26707         exception data objects. We don't it and it would conflict with the other
26708         external symbol we have to generate for such exceptions.
26709
26710         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
26711         the special code for VMS exceptions, since these are now represented
26712         as regular exceptions objects.
26713
26714 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26715
26716         * decl.c (debug_no_type_hash): Remove.
26717         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
26718         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
26719
26720 2004-03-19  Laurent Guerby <laurent@guerby.net>
26721
26722         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
26723         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
26724
26725 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26726
26727         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
26728         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
26729         (TYPE_RM_SIZE_INT): Directly use type.values.
26730         (TREE_LOOP_ID): Clean up check.
26731         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
26732         TYPE_VALUES, not TYPE_FIELDS.
26733         * trans.c (convert_with_check): Delay access of bounds of basetype
26734         until sure is numeric.
26735
26736 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
26737
26738         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
26739
26740         Code clean up:
26741         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
26742         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
26743         Specific.Set instead of direct call to e.g pthread_setspecific.
26744
26745 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
26746
26747         * adaint.c: Update comments.
26748
26749         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
26750         GNATLIB_SHARED for FreeBSD.
26751
26752 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
26753
26754         * init.c [VxWorks]: Do not fix the stack size for the environment task.
26755         When needed (stack checking) the stack size is retrieved
26756         from the VxWorks kernel.
26757
26758         * Makefile.in: Flag -nostdinc is required when building the run time
26759         for avoiding looking for files in the base compiler.
26760         Add the VxWorks specific version of the package body for
26761         System.Stack_checking.Operations (5zstchop.adb).
26762
26763         * Make-lang.in: Add the object file for
26764         System.Stack_Checking.Operations.
26765
26766         * Makefile.rtl: Add object file for the package
26767         System.Stack_Checking.Operations.
26768
26769         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
26770
26771         * s-stache.ads, s-stache.adb: Move the operations related to stack
26772         checking from this package to package System.Stack_Checking.Operations.
26773         This way, stack checking operations are only linked in the final
26774         executable when using the -fstack-check flag.
26775
26776 2004-03-18  Doug Rupp  <rupp@gnat.com>
26777
26778         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
26779         Reorganize ifeq's.
26780
26781         * 5qsystem.ads, 5xcrtl.ads: New files.
26782
26783 2004-03-18  Vincent Celier  <celier@gnat.com>
26784
26785         * prj.adb (Reset): Reset hash table Files_Htable
26786
26787         * prj-env.adb (Source_Paths, Object_Paths): New tables.
26788         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
26789         the procedures Add_To_Path_File.
26790         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
26791         making sure that each directory is present only once and, for object
26792         dirs, when a directory already present is added, the duplicate is
26793         removed and the directory is always put as the last in the table.
26794         Write the path files at the end of these accumulations.
26795
26796         * prj-nmsc.adb (Record_Source): Add source file name in hash table
26797         Files_Htable for all sources.
26798
26799         * prj-proc.adb (Process): Remove restrictions between not directly
26800         related extending projects.
26801
26802 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
26803
26804         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
26805         (Find_Sources): Minor speed optimization.
26806
26807         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
26808         parameter Trusted_Mode.
26809
26810 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
26811
26812         * scn.adb (Determine_License): Take into account a degenerated case
26813         when the source contains only comments.
26814
26815 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
26816
26817         * sem_warn.adb (Check_References): For a warning on a selected
26818         component that does not come from source, locate an uninitialized
26819         component of the record type to produce a more precise error message.
26820
26821 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
26822
26823         * 3zsoccon.ads: Fix multicast options.
26824
26825         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
26826         in the spec.
26827
26828 2004-03-15  Robert Dewar  <dewar@gnat.com>
26829
26830         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
26831         pragma used for a private type.
26832
26833         * lib-xref.adb (Generate_Reference): Do not generate warning if
26834         reference is in a different unit from the pragma Unreferenced.
26835
26836         * 5vtpopde.adb: Minor reformatting
26837         Fix casing of To_Task_ID
26838
26839         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
26840         flag if we have an unchecked conversion to an access type in the same
26841         unit.
26842
26843 2004-03-15  Geert Bosch  <bosch@gnat.com>
26844
26845         * a-ngcoty.adb (Modulus): In alternate formula for large real or
26846         imaginary parts, use Double precision throughout.
26847
26848         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
26849         we want to be able to compile run-time with -gnata for testing, but
26850         this may also be instantiated in user code that is compiled with -gnata.
26851
26852 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
26853
26854         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
26855         codes. Having a separate type for this is useful to enforce consistency
26856         throughout the various run-time units.
26857         (Exception_Data): Use Exception_Code for Import_Code.
26858
26859         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
26860         Natural and Integer in various places.
26861         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
26862         with the severity bits masked off.
26863         (Register_VMS_Exception): Handle the additional exception data pointer
26864         argument.
26865
26866         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
26867         component, now reflected by an exported accessor.
26868         (is_handled_by): New routine to compute whether the propagated
26869         occurrence matches some handler choice specification. Extracted out of
26870         get_action_description_for, and expanded to take care of the VMS
26871         specifities.
26872         (get_action_description_for): Use is_handled_by instead of an explicit
26873         complex condition to decide if the current choice at hand catches the
26874         propagated occurrence.
26875
26876         * raise.h (Exception_Code): New type for C.
26877
26878         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
26879         System.Standard_Library.Exception_Code, to allow references from the
26880         pragma import/export expander.
26881
26882         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
26883         New accessors to allow easy access to GNAT exception data
26884         characteristics.
26885         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
26886         redundant Handled_By_Others component, helper for the personality
26887         routine which will now be able to call the appropriate exception data
26888         accessor instead.
26889
26890         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
26891         component of Standard_Exception_Type to be the closest possible to
26892         Exception_Code in System.Standard_Library, that we cannot get at this
26893         point. Expand a ??? comment to notify that this type node should
26894         probably be rewritten later on.
26895
26896         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
26897         registration call to include a pointer to the exception object in the
26898         arguments.
26899
26900         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
26901         instead of int and explicit bitmasks.
26902
26903 2004-03-15  Vincent Celier  <celier@gnat.com>
26904
26905         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
26906         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
26907
26908         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
26909         longer needed now that it is in the spec of
26910         System.Tasking.Task_Attributes.
26911
26912         * adaint.h, adaint.c: (__gnat_create_output_file): New function
26913
26914         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
26915
26916         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
26917
26918         * make.adb (Gnatmake): Do not check the executable suffix; it is being
26919         taken care of in Scan_Make_Arg.
26920         (Scan_Make_Arg): Add the executable suffix only if the argument
26921         following -o, in canonical case, does not end with the executable
26922         suffix.  When in verbose mode and executable file name does not end
26923         with executable suffix, output the executable name, in canonical case.
26924
26925         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
26926         to avoid warnings when instantiating Ada.Task_Attributes.
26927         Minor reformating.
26928
26929         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
26930         in the correct order.
26931
26932         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
26933         redirect standard output and error to a file for the invocation of the
26934         compiler, then read the file.
26935
26936         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
26937         directory, instead of the Value.
26938         (Find_Source_Dirs): Remove useless code & comments.
26939
26940 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
26941
26942         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
26943         tagged type is inherited, and the parent operation is not frozen yet,
26944         force generation of a freeze node for the inherited operation, so the
26945         corresponding dispatch entry is properly initialized.
26946         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
26947         when looking for user-defined equality operation.
26948
26949         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
26950         boolean when locating primitive equality of tagged component.
26951
26952         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
26953         bit-aligned field and the right-hand side a string literal, introduce
26954         a temporary before expanding assignment into a loop.
26955
26956         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
26957         priority in full, to ensure that any expanded subepxressions of it are
26958         elaborated in the scope of the init_proc.
26959
26960         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
26961         after object declaration, skipping over code that may have been
26962         generated for validity checks.
26963
26964         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
26965         discriminants, ignore the known discriminants of its full view, if
26966         any, to check legality.
26967
26968         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
26969         component if type has unknown discriminants.
26970         (Analyze_Private_Extension_Declaration): Discriminant constraint is
26971         null if type has unknown discriminants.
26972
26973         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
26974         for end label when present.
26975
26976         * s-fileio.adb (Open): When called with a C_Stream, use given name for
26977         temporary file, rather than an empty string.
26978
26979 2004-03-15  Ed Falis  <falis@gnat.com>
26980
26981         * s-thread.adb: Removed, no longer used.
26982
26983 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26984
26985         * decl.c (target.h): Now include.
26986         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
26987         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
26988         (validate_size): For POINTER_TYPE, get smallest size permitted on
26989         machine.
26990
26991         * fe.h: Sort Einfo decls and add Set_Mechanism.
26992
26993         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
26994         (ada/decl.o): Depends on target.h.
26995
26996         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
26997         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
26998
26999 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
27000
27001         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
27002
27003         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
27004         Insert_Dereference_Action when rewriting an implicit dereference into
27005         an explicit one, this will be taken care of during expansion of the
27006         explicit dereference.
27007         (Expand_N_Slice): Same. Always do the rewriting, even for the case
27008         of non-packed slices, since the dereference action generated by
27009         expansion of the explicit dereference is needed in any case.
27010         (Expand_N_Selected_Component): When rewriting an implicit dereference,
27011         analyze and resolve the rewritten explicit dereference so it is seen
27012         by the expander.
27013         (Insert_Dereference_Action): This procedure is now called only for the
27014         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
27015         dereferences that do not come from source (including explicit
27016         dereferences resulting from rewriting implicit ones), but do not
27017         recursively insert a check for the dereference nodes contained within
27018         the check.
27019         (Insert_Dereference_Action): Clarify and correct comment.
27020
27021 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
27022
27023         PR ada/14131
27024         Move language detection to the top level.
27025         * config-lang.in: Build by default.
27026
27027 2004-03-05  Robert Dewar  <dewar@gnat.com>
27028
27029         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
27030
27031         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
27032         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
27033         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
27034         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
27035         unchecked conversion to spec to avoid warnings.
27036
27037         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
27038         to Task_ID
27039
27040         * 7stpopsp.adb: Correct casing in To_Task_ID call
27041
27042         * a-strsea.ads, a-strsea.adb: Minor reformatting
27043
27044         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
27045
27046         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
27047         Adjust Max_Msg_Length to be clearly large enough.
27048
27049         * fe.h: Define In_Same_Source_Unit
27050
27051         * osint.adb: Add pragma Warnings Off to suppress warnings
27052         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
27053         aliasing warnings.
27054
27055         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
27056
27057         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
27058
27059         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
27060
27061         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
27062
27063         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
27064
27065         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
27066         node. We now do generate them for gcc back end.
27067
27068         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
27069         warning.
27070
27071         * sinput-c.adb: Fix bad name in header.
27072         Add pragma Warnings Off to suppress aliasing warning.
27073
27074         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
27075
27076         * snames.h, snames.ads, snames.adb: Add entry for pragma
27077         No_Strict_Aliasing.
27078
27079 2004-03-05  Vincent Celier  <celier@gnat.com>
27080
27081         * prj-com.ads: Add hash table Files_Htable to check when a file name
27082         is already a source of another project.
27083
27084         * prj-nmsc.adb (Record_Source): Before recording a new source, check
27085         if its file name is not already a source of another project. Report an
27086         error if it is.
27087
27088         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
27089         source file name, call gnatpp with all the sources of the main project.
27090
27091         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
27092         of file names.
27093
27094         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
27095         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
27096         /RUNTIME_SYSTEM=, converted to --RTS=
27097         /NOTABS, converted to -notabs
27098
27099 2004-03-05  Pascal Obry  <obry@gnat.com>
27100
27101         * make.adb: Minor reformatting.
27102
27103 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
27104
27105         Part of implemention of AI-262.
27106         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
27107
27108         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
27109         procedure.
27110
27111         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
27112         when component type is a partially constrained class-wide subtype.
27113         (Constrain_Discriminated_Type): If parent type has unknown
27114         discriminants, a constraint is illegal, even if full view has
27115         discriminants.
27116         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
27117         with unknown discriminants whose full view is a discriminated record.
27118
27119         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
27120         flag, to handle properly derivations of tagged types with unknown
27121         discriminants.
27122         (Analyze_Package_Spec, Analyze_Package_Body): Install
27123         Private_With_Clauses before analyzing private part or body.
27124
27125         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
27126         Has_Discriminants can be true for a given type (documentation).
27127
27128 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
27129
27130         * s-restri.ads: Fix license (GPL->GMGPL).
27131
27132         * s-tassta.adb: Minor reformatting.
27133
27134         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
27135         by calls to Exit_One_ATC_Level, since additional clean up is performed
27136         by this function.
27137
27138         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
27139         by calls to Exit_One_ATC_Level, since additional clean up is performed
27140         by this function.
27141
27142 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27143
27144         * trans.c: Reflect GCC changes to fix bootstrap problem.
27145         Add warning for suspicious aliasing unchecked conversion.
27146
27147 2004-03-05  GNAT Script  <nobody@gnat.com>
27148
27149         * Make-lang.in: Makefile automatically updated
27150
27151 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
27152
27153         * ali.adb (Read_Instantiation_Instance): Do not modify the
27154         current_file_num when reading information about instantiations, since
27155         this corrupts files in later references.
27156
27157 2004-03-02  Vincent Celier  <celier@gnat.com>
27158
27159         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
27160         before checking if it is read-only.
27161
27162         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
27163         of SRC_DIRS and eliminate duplicates.
27164
27165         * gprcmd.adb: Replace command "path" with command "path_sep" to return
27166         the path separator.
27167         (Usage): Document path_sep
27168
27169         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
27170         C++ compiler. No need for a script.
27171         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
27172         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
27173         subst.
27174
27175         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
27176         where there are Ada sources.
27177         (Set_Ada_Paths): Only add to the include path the source dirs of project
27178         with Ada sources.
27179         (Add_To_Path): Add the Display_Values of the directories, not their
27180         Values.
27181
27182         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
27183         data.
27184
27185         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
27186         is not No_Name.
27187         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
27188         Value is canonicalized.
27189         (Language_Independent_Check): Do not copy Value to Display_Value when
27190         canonicalizing Value.
27191
27192         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
27193         path to find limited with cycles.
27194         (Parse_Single_Project): Use canonical cased path to find the end of a
27195         with cycle.
27196
27197 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
27198
27199         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
27200         and not a child unit.
27201
27202         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
27203         appear in a with_clause.
27204
27205         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
27206         only happen in type_annotate mode, do not try to elaborate it.
27207
27208         * exp_util.adb (Force_Evaluation): If expression is a selected
27209         component on the left of an assignment, use a renaming rather than a
27210         temporary to remove side effects.
27211
27212         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
27213         inlined instance body, which is analyzed before the end of the
27214         enclosing scope.
27215
27216 2004-03-02  Robert Dewar  <dewar@gnat.com>
27217
27218         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
27219         sem_ch4.adb: Use new feature for substitution of keywords in VMS
27220
27221         * errout.ads, errout.adb: Implement new circuit for substitution of
27222         keywords in VMS.
27223
27224         * sem_case.adb (Analyze_Choices): Place message properly when case is
27225         a subtype reference rather than an explicit range.
27226
27227         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
27228
27229 2004-03-02  Doug Rupp  <rupp@gnat.com>
27230
27231         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
27232
27233 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
27234
27235         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
27236
27237 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27238
27239         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
27240         BLKmode bitfield.
27241
27242 2004-02-25  Robert Dewar  <dewar@gnat.com>
27243
27244         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
27245         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
27246         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
27247         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
27248         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
27249         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
27250         the defining instance of the type to avoid aliasing problems.
27251         Fix copyright header.  Fix bad comments in package header.
27252
27253         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
27254
27255 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
27256
27257         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
27258         rewritten as references when aliased through an address clause.
27259
27260         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
27261         whether call can be interpreted as an indirect call to the result of a
27262         parameterless function call returning an access subprogram.
27263
27264 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
27265
27266         Code clean up:
27267         * exp_ch7.adb (Make_Clean): Remove generation of calls to
27268         Unlock[_Entries], since this is now done by Service_Entries directly.
27269
27270         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
27271
27272         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
27273         Requeue_Call for better code readability. Change spec and update calls:
27274         PO_Service_Entries now unlock the PO on exit.
27275         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
27276         PO_Service_Entries.
27277
27278         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
27279
27280         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
27281
27282 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
27283
27284         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
27285         protected subprogram call and analyzing the result of such expanding
27286         in case when the called protected subprogram is eliminated.
27287
27288         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
27289         names.
27290
27291 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
27292
27293         * Makefile.in: Clean ups.
27294
27295 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
27296
27297         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
27298         protected operations if original subprogram is flagged as eliminated.
27299         (Expand_N_Subprogram_Body): For a protected operation, create
27300         discriminals for next operation before checking whether the operation
27301         is eliminated.
27302
27303         * exp_ch9.adb (Expand_N_Protected_Body,
27304         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
27305         for internal protected operations if the original subprogram is
27306         eliminated.
27307
27308         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
27309         declared in a single protected object.
27310
27311 2004-02-23  Vincent Celier  <celier@gnat.com>
27312
27313         * prj-attr.adb: Make attribute Builder'Executable an associative array,
27314         case insensitive if file names are case insensitive, instead of a
27315         standard associative array.
27316
27317         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
27318         them as case insensitive on platforms where the file names are case
27319         sensitive.
27320
27321         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
27322         project file has already been parsed that canonical path are compared.
27323
27324 2004-02-23  Robert Dewar  <dewar@gnat.com>
27325
27326         * sinput-c.ads: Correct bad unit title in header
27327
27328         * freeze.adb: Minor reformatting
27329
27330 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27331
27332         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
27333         nonaddressable COMPONENT_REF that is removing padding that we are
27334         taking the address of, take the address of the padded record instead
27335         if item is variable size.
27336
27337 2004-02-20  Robert Dewar  <dewar@gnat.com>
27338
27339         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
27340
27341 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
27342
27343         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
27344         itype references for the constrained designated type of a component
27345         whose base type is already frozen.
27346
27347 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
27348
27349         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
27350         avoid GCC warnings.
27351
27352 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
27353
27354         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
27355         identifier for a phantom package that rewrites the formal package
27356         declaration with a box. The Add semantic decorations for the defining
27357         identifier from the original node (that represents the formal package).
27358
27359 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
27360
27361         * Make-lang.in (ada/stamp-sdefault): Use the top level
27362         move-if-change.
27363
27364 2004-02-19  Richard Henderson  <rth@redhat.com>
27365
27366         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
27367
27368 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
27369
27370         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
27371         Scan_ALI can be used for multiple ALI files without reinitializing
27372         between calls.
27373
27374 2004-02-18  Robert Dewar  <dewar@gnat.com>
27375
27376         * debug.adb: Minor reformatting.
27377
27378 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27379
27380         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
27381         to zero if there is an address clause.
27382
27383 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
27384
27385         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
27386
27387 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
27388
27389         * layout.adb (Layout_Component_List): Revise generation of call to
27390         discriminant-checking function to pass selections of all of the type's
27391         discriminants rather than just the variant-controlling discriminant.
27392
27393 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
27394
27395         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
27396         fail in the current setup and triggers spurious system error messages.
27397         Pretend it occurred and failed instead.
27398
27399 2004-02-18  Vincent Celier  <celier@gnat.com>
27400
27401         * bld.adb: Mark FLDFLAGS as saved
27402         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
27403         it is not the root project.  Put each directory to be
27404         extended between double quotes to prevent it to be expanded on Windows.
27405         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
27406         the project file. Set them back to their initial values if they have not
27407         been set in the project file.
27408
27409         * gprcmd.adb: (Gprdebug, Debug): New global variables
27410         (Display_Command): New procedure
27411         (Usage): Document new command "linkopts"
27412         Call Display_Command when env var GPRDEBUG has the value "TRUE"
27413         Implement new command "linkopts"
27414         Remove quotes that may be around arguments for "extend"
27415         Always call Normalize_Pathname with arguments formatted for the platform
27416
27417         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
27418         Change @echo to @$(display) in target clean to be able to clean silently
27419
27420         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
27421
27422         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
27423         canonical case.
27424
27425         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
27426         = Extending_All when current project is an extending all project.
27427
27428         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
27429         set to True only for LINK command, after Unix switch -o.
27430         (Process_Arguments): Set Output_File_Expected to True for LINK command
27431         after Unix switch -o. When Output_File_Expected is True, never add an
27432         extension to a file name.
27433
27434         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
27435         option file name, only to the --for-linker= switch.
27436         (Option_File_Name): If option file name do not end with ".opt", append
27437         "/OPTIONS".
27438
27439 2004-02-18  GNAT Script  <nobody@gnat.com>
27440
27441         * Make-lang.in: Makefile automatically updated
27442
27443 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
27444
27445         * Make-lang.in (stamp-sdefault): Do not depend on
27446         move-if-change.
27447
27448 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
27449
27450         * config-lang.in: Disable Ada by default until probe logic for
27451         a bootstrap Ada compiler can be moved to the top level configure
27452         script.
27453
27454 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
27455
27456         * decl.c (components_to_record): Don't claim that the internal fields
27457         we make to hold the variant parts are semantically addressable, because
27458         they are not.
27459
27460         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
27461         adjust the comment describing the modular type form when we can use it.
27462         (Install_PAT): Account for the Esiz renaming.
27463
27464         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
27465         sc_onstack context indication before raising the exception to which
27466         the signal is mapped. Allows better handling of later signals possibly
27467         triggered by the resumed user code if the exception is handled.
27468
27469 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
27470
27471         * 5zinit.adb: Removed, no longer used.
27472
27473 2004-02-12  Robert Dewar  <dewar@gnat.com>
27474
27475         * ali.adb: Remove separating space between parameters on R line. Makes
27476         format consistent with format used by the binder for Set_Globals call.
27477
27478         * atree.ads, atree.adb: Minor reformatting (new function header format)
27479
27480         * bindgen.adb: Add Run-Time Globals documentation section containing
27481         detailed documentation of the globals passed from the binder file to
27482         the run time.
27483
27484         * gnatls.adb: Minor reformatting
27485
27486         * init.c (__gnat_set_globals): Add note pointing to documentation in
27487         bindgen.
27488
27489         * lib-writ.ads, lib-writ.adb: Remove separating space between
27490         parameters on R line.
27491         Makes format consistent with format used by the binder for Set_Globals
27492         call.
27493
27494         * osint.ads: Add 2004 to copyright notice
27495         Minor reformatting
27496
27497         * snames.ads: Correct capitalization of FIFO_Within_Priorities
27498         Noticed during code reading, documentation issue only
27499
27500         * usage.adb: Remove junk line for obsolete C switch
27501         Noticed during code reading
27502
27503 2004-02-12  Vincent Celier  <celier@gnat.com>
27504
27505         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
27506         extend for each directory, so that multiple /** directories are
27507         extended individually.
27508         (Recursive_Process): Set the default for LANGUAGES to ada
27509
27510         * gprcmd.adb: Define new command "ignore", to do nothing.
27511         Implement new comment "path".
27512
27513         * Makefile.generic: Suppress output when SILENT is set
27514         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
27515         used, so that the correct compiler is invoked.
27516         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
27517         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
27518
27519 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
27520
27521         * Makefile.in: Clean ups and remove obsolete targets.
27522
27523 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
27524
27525         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
27526         predicate declared in exp_util.
27527
27528         * exp_util.adb: Add comments.
27529
27530         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
27531         visibility before compiling context of the subunit.
27532
27533         * sem_res.adb (Check_Parameterless_Call): If the context expects a
27534         value but the name is a procedure, do not attempt to analyze as a call,
27535         in order to obtain more telling diagnostics.
27536
27537         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
27538         'Access on parameterless function calls.
27539         (Normalize_Actuals): For a parameterless function call with missing
27540         actuals, defer diagnostic until resolution of enclosing call.
27541
27542         * sem_util.adb (Wrong_Type): If the context type is an access to
27543         subprogram and the expression is a procedure name, suggest a missing
27544         'attribute.
27545
27546 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
27547             Nathanael Nerode  <neroden@gcc.gnu.org>
27548
27549         PR ada/6637
27550         PR ada/5911
27551         Merge with libada-branch:
27552         * config-lang.in: Build libada only when ada is built.
27553
27554 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
27555
27556         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
27557         for a tagged type, verify that both formals have the same type.
27558
27559         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
27560         temporary when the formal is an in-parameter and the actual a possibly
27561         unaligned slice.
27562
27563         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
27564         when expansion is disabled, to ensure proper name capture with
27565         overloaded literals.  Condition can be of any boolean type, resolve
27566         accordingly.
27567
27568         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
27569         renaming is for a formal subprogram with a default operator name, and
27570         there is a usable operator that is visible at the point of
27571         instantiation.
27572
27573 2004-02-09  Robert Dewar  <dewar@gnat.com>
27574
27575         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
27576         rewrite to ignore errors in ali files, intended to allow tools downward
27577         compatibility with new versions of ali files.
27578
27579         * ali.ads: Add new parameter Ignore_Errors
27580
27581         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
27582         duplicating the error message giving the file with restrictions.
27583
27584         * debug.adb: Add debug flag I for gnatbind
27585
27586         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
27587         operators for the case where the operator is a defining operator.
27588
27589         * exp_ch3.adb: Minor reformatting (new function spec format).
27590
27591         * exp_ch4.adb: Add comment for previous change, and make minor
27592         adjustment to loop to always check for improper loop termination.
27593         Minor reformatting throughout (new function spec format).
27594
27595         * gnatbind.adb: Implement -di debug flag for gnatbind
27596
27597         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
27598
27599         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
27600
27601         * lib-load.adb: Fix bad assertion.
27602         Found by testing and code reading.
27603         Minor reformatting.
27604
27605         * lib-load.ads: Minor reformatting.
27606
27607         * lib-writ.adb: There is only one R line now.
27608
27609         * lib-writ.ads: Add documentation on making downward compatible changes
27610         to ali files so old tools work with new ali files.
27611         There is only one R line now.
27612         Add documentation on format incompatibilities (with special GPS note)
27613
27614         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
27615
27616         * par-load.adb: Minor reformatting
27617
27618         * sem_ch8.adb: Fix to error message from last update
27619         Minor reformatting and restructuring of code from last update
27620
27621         * par-prag.adb, snames.adb, snames.ads, snames.h,
27622         sem_prag.adb: Implement pragma Profile.
27623
27624         * stylesw.adb: Implement -gnatyN switch to turn off all style check
27625         options.
27626
27627         * usage.adb: Add line for -gnatyN switch
27628
27629         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
27630
27631 2004-02-09  Albert Lee  <lee@gnat.com>
27632
27633         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
27634
27635 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
27636
27637         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
27638         slices.
27639
27640         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
27641         is nested in an instance that is not frozen yet, to avoid
27642         order-of-elaboration problems in gigi.
27643
27644         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
27645         body the attribute is legal.
27646
27647 2004-02-09  Robert Dewar  <dewar@gnat.com>
27648
27649         * s-rident.ads: Minor comment correction
27650
27651         * targparm.adb: Remove dependence on uintp completely. There was
27652         always a bug in Make in that it called Targparm before initializing
27653         the Uint package. The old code appeared to get away with this, but
27654         the new code did not! This caused an assertion error in gnatmake.
27655
27656         * targparm.ads: Fix bad comment, restriction pragmas with parameters
27657         are indeed fully supported.
27658
27659 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
27660
27661         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
27662
27663 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
27664
27665         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
27666         with targetm.calls.promote_prototypes.
27667
27668 2004-02-04  Robert Dewar  <dewar@gnat.com>
27669
27670         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
27671         ali.ads, gprcmd.adb: Minor reformatting
27672
27673         * bindgen.adb: Output restrictions string for new style restrictions
27674         handling
27675
27676         * impunit.adb: Add s-rident.ads (System.Rident) and
27677         s-restri (System.Restrictions)
27678
27679         * lib-writ.adb: Fix bug in writing restrictions string (last few
27680         entries wrong)
27681
27682         * s-restri.ads, s-restri.adb: Change name Restrictions to
27683         Run_Time_Restrictions to avoid conflict with package name.
27684         Add circuit to read and acquire run time restrictions.
27685
27686 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
27687
27688         * restrict.ads, restrict.adb: Use the new restriction
27689         No_Task_Attributes_Package instead of the old No_Task_Attributes.
27690
27691         * sem_prag.adb: No_Task_Attributes is a synonym of
27692         No_Task_Attributes_Package.
27693
27694         * snames.ads, snames.adb: New entry for proper handling of
27695         No_Task_Attributes.
27696
27697         * s-rident.ads: Adding restriction No_Task_Attributes_Package
27698         (AI-00249) that supersedes the GNAT specific restriction
27699         No_Task_Attributes.
27700
27701 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
27702
27703         * sem_prag.adb:
27704         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
27705          body, an identifier may be wrapped in an unchecked conversion.
27706
27707 2004-02-04  Vincent Celier  <celier@gnat.com>
27708
27709         * lib-writ.ads: Comment update for the W lines
27710
27711         * bld.adb: (Expression): An empty string list is static
27712
27713         * fname-uf.adb: Minor comment update
27714
27715         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
27716
27717         * gnatbind.adb: Initialize Cumulative_Restrictions with the
27718         restrictions on the target.
27719
27720 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
27721
27722         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
27723         gen_rtx.
27724
27725 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
27726
27727         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
27728
27729 2004-02-02  Vincent Celier  <celier@gnat.com>
27730
27731         * gprcmd.adb (Check_Args): If condition is false, print the invoked
27732         comment before the usage.
27733         Gprcmd: Fail when command is not recognized.
27734         (Usage): Document command "prefix"
27735
27736         * g-md5.adb (Digest): Process last block.
27737         (Update): Do not process last block. Store remaining characters and
27738         length in Context.
27739
27740         * g-md5.ads (Update): Document that several call to update are
27741         equivalent to one call with the concatenated string.
27742         (Context): Add fields to allow new Update behaviour.
27743
27744         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
27745         defaulted to False.
27746         When May_Fail is True and no existing file can be found, return No_File.
27747
27748         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
27749         functions.
27750
27751         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
27752         spec file name instead on the W line.
27753
27754 2004-02-02  Robert Dewar  <dewar@gnat.com>
27755
27756         * ali.adb: Read and acquire info from new format restrictions lines
27757
27758         * bcheck.adb: Add circuits for checking restrictions with parameters
27759
27760         * bindgen.adb: Output dummy restrictions data
27761         To be changed later
27762
27763         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
27764         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
27765         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
27766         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
27767         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
27768
27769         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
27770         the warning message on access to possibly uninitialized variable S)
27771         Minor changes for new restrictions handling.
27772
27773         * gnatbind.adb: Minor reformatting
27774         Minor changes for new restrictions handling
27775         Move circuit for -r processing here from bcheck (cleaner)
27776
27777         * gnatcmd.adb, gnatlink.adb: Minor reformatting
27778
27779         * lib-writ.adb: Output new format restrictions lines
27780
27781         * lib-writ.ads: Document new R format lines for new restrictions
27782         handling.
27783
27784         * s-restri.ads/adb: New files
27785
27786         * Makefile.rtl: Add entry for s-restri.ads/adb
27787
27788         * par-ch3.adb: Fix bad error messages starting with upper case letter
27789         Minor reformatting
27790
27791         * restrict.adb: Major rewrite throughout for new restrictions handling
27792         Major point is to handle restrictions with parameters
27793
27794         * restrict.ads: Major changes in interface to handle restrictions with
27795         parameters. Also generally simplifies setting of restrictions.
27796
27797         * snames.ads/adb: New entry for proper handling of No_Requeue
27798
27799         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
27800         restriction counting.
27801         Other minor changes for new restrictions handling
27802
27803         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
27804         Restriction_Warnings now allows full parameter notation
27805         Major rewrite of Restrictions for new restrictions handling
27806
27807 2004-02-02  Javier Miranda  <miranda@gnat.com>
27808
27809         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
27810         syntax rule for object renaming declarations.
27811         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
27812         component definitions.
27813
27814         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
27815         components.
27816         (Array_Type_Declaration): Give support to access components. In addition
27817         it was also modified to reflect the name of the object in anonymous
27818         array types. The old code did not take into account that it is possible
27819         to have an unconstrained anonymous array with an initial value.
27820         (Check_Or_Process_Discriminants): Allow access discriminant in
27821         non-limited types.
27822         (Process_Discriminants): Allow access discriminant in non-limited types
27823         Initialize the new Access_Definition field in N_Object_Renaming_Decl
27824         node.  Change Ada0Y to Ada 0Y in comments
27825
27826         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
27827         equality operators.
27828         Change Ada0Y to Ada 0Y in comments
27829
27830         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
27831         renamings Change Ada0Y to Ada 0Y in comments
27832
27833         * sem_type.adb (Find_Unique_Type): Give support to the equality
27834         operators for universal access types
27835         Change Ada0Y to Ada 0Y in comments
27836
27837         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
27838
27839         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
27840         field.
27841         (N_Object_Renaming_Declaration): Addition of Access_Definition field
27842         Change Ada0Y to Ada 0Y in comments
27843
27844         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
27845         component definition and object renaming nodes
27846         Change Ada0Y to Ada 0Y in comments
27847
27848 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
27849
27850         * restrict.adb: Use the new restriction identifier
27851         No_Requeue_Statements instead of the old No_Requeue for defining the
27852         restricted profile.
27853
27854         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
27855         No_Requeue_Statements.
27856
27857         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
27858         that supersedes the GNAT specific restriction No_Requeue. The later is
27859         kept for backward compatibility.
27860
27861 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
27862
27863         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
27864         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
27865         pragma and fix incorrect ones.
27866
27867         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
27868         warning if the pragma is redundant.
27869
27870 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
27871
27872         * 5staprop.adb: Add missing 'constant' keywords.
27873
27874         * Makefile.in: use consistent value for SYMLIB on
27875         platforms where libaddr2line is supported.
27876
27877 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27878
27879         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
27880         annotating types.
27881
27882 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
27883
27884         * init.c (__gnat_install_handler): Setup an alternate stack for signal
27885         handlers in the environment thread. This allows proper propagation of
27886         an exception on stack overflows in this thread even when the builtin
27887         ABI stack-checking scheme is used without support for a stack reserve
27888         region.
27889
27890         * utils.c (create_field_decl): Augment the head comment about bitfield
27891         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
27892         here, because the former is not accurate enough at this point.
27893         Let finish_record_type decide instead.
27894         Don't make a bitfield if the field is to be addressable.
27895         Always set a size for the field if the record is packed, to ensure the
27896         checks for bitfield creation are triggered.
27897         (finish_record_type): During last pass over the fields, clear
27898         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
27899         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
27900         from DECL_BIT_FIELD.
27901
27902 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
27903
27904         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
27905         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
27906         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
27907
27908 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
27909
27910         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
27911
27912         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
27913         (ZCX_By_Default): Likewise.
27914         (Front_End_ZCX_Support): Likewise.
27915
27916         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
27917         (Initialize_Lock): Mark Level unreferenced.
27918         (Sleep): Mark Reason unreferenced.
27919         (Timed_Sleep): Likewise.
27920         (Wakeup): Likewise.
27921         (Exit_Task): Use Result.
27922         (Check_No_Locks): Mark Self_ID unreferenced.
27923
27924         * 5gtasinf.adb (New_Sproc): Make Attr constant.
27925         (Bound_Thread_Attributes): Make Sproc constant.
27926         (New_Bound_Thread_Attributes): Likewise.
27927
27928 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
27929
27930         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
27931         one-dimensional array an slice assignments, when component type is
27932         controlled.
27933
27934         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
27935         component type is controlled, and control_actions are in effect, use
27936         TSS procedure rather than generating inline code.
27937
27938         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
27939         arrays with controlled components.
27940
27941 2004-01-26  Vincent Celier  <celier@gnat.com>
27942
27943         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
27944         command line for the non VMS case.
27945
27946         * gnatlink.adb (Process_Binder_File): When building object file, if
27947         GNU linker is used, put all object paths between quotes, to prevent ld
27948         error when there are unusual characters (such as '!') in the paths.
27949
27950         * Makefile.generic: When there are sources in Ada and the main is in
27951         C/C++, invoke gnatmake with -B, instead of -z.
27952
27953         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
27954         from VMS_Conversion.
27955         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
27956         specification of argument file on the command line.
27957
27958 2004-01-26  Bernard Banner  <banner@gnat.com>
27959
27960         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
27961
27962 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
27963
27964         * snames.adb: Update copyright notice.
27965         Add info on slice assignment for controlled arrays.
27966
27967 2004-01-23  Robert Dewar  <dewar@gnat.com>
27968
27969         * exp_aggr.adb: Minor reformatting
27970
27971         * exp_ch9.adb: Minor code clean up
27972         Minor reformatting
27973         Fix bad character in comment
27974
27975         PR ada/13471
27976         * targparm.adb (Get_Target_Parameters): Give clean abort error on
27977         unexpected end of file, along with more detailed message.
27978
27979 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27980
27981         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
27982         PAT.
27983
27984         * decl.c (copy_alias_set): New function.
27985         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
27986
27987 2004-01-23  Doug Rupp  <rupp@gnat.com>
27988
27989         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
27990         lib$${file} in case subsequent character is not a separator.
27991
27992 2004-01-23  Vincent Celier  <celier@gnat.com>
27993
27994         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
27995         when the GCC version is at least 3.
27996
27997         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
27998         Remove all "Opt.", to prepare for opt split
27999
28000         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
28001         Extends_All. Set to True when the project parsed is an extending all
28002         project. Fails for importing an extending all project only when the
28003         imported project is an extending all project.
28004         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
28005         depending on the value of Extends_All returned.
28006
28007         * prj-proc.adb (Process): Check that no project shares its object
28008         directory with a project that extends it, directly or indirectly,
28009         including a virtual project.
28010         Check that no project extended by another project shares its object
28011         directory with another also extended project.
28012
28013         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
28014         Kind = N_With_Clause
28015
28016         * prj-tree.ads: Minor reformatting
28017         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
28018
28019 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
28020
28021         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
28022         applies to a type with an incomplete view, use full view in Name of
28023         clause, for consistency with uses of Get_Attribute_Definition_Clause.
28024
28025 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
28026
28027         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
28028         SCHED_RR, since other values are not supported by this policy.
28029         (Initialize): Move initialization of mutex attribute to package
28030         elaboration, to prevent early access to this variable.
28031
28032         * Makefile.in: Remove mention of Makefile.adalib, unused.
28033
28034         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
28035         1ssecsta.ads: Removed, unused.
28036
28037 2004-01-21  Javier Miranda  <miranda@gnat.com>
28038
28039         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
28040         entity if already built in the current scope.
28041
28042         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
28043         reminder in internal scopes. Required for nested limited aggregates.
28044
28045 2004-01-21  Doug Rupp  <rupp@gnat.com>
28046
28047         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
28048         VMS. Replace all occurences of libgnat- and libgnarl- with
28049         libgnat$(hyphen) and libgnarl$(hyphen).
28050         Fixed shared library build problem on VMS.
28051
28052 2004-01-21  Robert Dewar  <dewar@gnat.com>
28053
28054         * mlib-prj.adb: Minor reformatting
28055
28056 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
28057
28058         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
28059         'constant' keywords for declaration of pointers that are not modified.
28060
28061         * exp_pakd.adb: Fix English in comment.
28062
28063 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
28064
28065         PR ada/10889
28066         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
28067         copy all attributes of the parent, including the foreign language
28068         convention.
28069
28070 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
28071
28072         PR ada/10565
28073         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
28074         for 'delay until' statement.
28075
28076 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
28077
28078         * Make-lang.in: Replace $(docdir) with doc.
28079         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
28080         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
28081         to use consistent MAKEINFO rule.
28082         (ada.man, ada.srcman): Dummy entry.
28083         (ADA_INFOFILES): Define.
28084         (ada.info, ada.srcinfo): New rules.
28085
28086 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
28087
28088         * utils.c: Update copyright notice, missed in previous change.
28089
28090 2004-01-19  Vincent Celier  <celier@gnat.com>
28091
28092         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
28093         args if Bind is True. Set First_ALI, if not already done.
28094         (Build_Library): For Stand Alone Libraries, extract from one ALI file
28095         an eventual --RTS switch, for gnatbind, and all backend switches +
28096         --RTS, for linking.
28097
28098 2004-01-19  Robert Dewar  <dewar@gnat.com>
28099
28100         * sem_attr.adb, memtrack.adb: Minor reformatting
28101
28102 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
28103
28104         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
28105         that rename enumeration literals. This is properly done in sem_eval.
28106
28107         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
28108         to functions that rename enumeration literals.
28109
28110         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
28111         functions that rename enumeration literals.
28112
28113 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
28114
28115         * Make-lang.in (utils.o): Depend on target.h.
28116         * utils.c: Include target.h.
28117         (process_attributes): Use targetm.have_named_sections instead
28118         of ASM_OUTPUT_SECTION_NAME.
28119
28120 2004-01-16  Andreas Jaeger  <aj@suse.de>
28121
28122         * Makefile.in: Add $(DESTDIR).
28123
28124 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
28125
28126         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
28127         also when not defining if a Size clause applies. That information is
28128         not to be ignored.
28129
28130 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
28131
28132         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
28133         symbolic links for the shared gnat run time when needed.
28134
28135 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
28136
28137         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
28138         for writing, and terminate with an error message if not.
28139
28140 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
28141
28142         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
28143         warning on an access to subprogram in an instance, when the target
28144         type is declared in the same generic unit.
28145         (Eval_Attribute): If 'access is known to fail accessibility check,
28146         rewrite as a raise statement.
28147
28148 2004-01-15  GNAT Script  <nobody@gnat.com>
28149
28150         * Make-lang.in: Makefile automatically updated
28151
28152 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
28153
28154         * Make-lang.in (ada.srcextra): Dummy entry.
28155
28156 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
28157
28158         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
28159
28160 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
28161
28162         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
28163         components that are initialized with aggregates.
28164
28165 2004-01-13  Vincent Celier  <celier@gnat.com>
28166
28167         * gnatlink.adb (Process_Binder_File): To find directory of shared
28168         libgcc, if "gcc-lib" is not a subdirectory, look for the last
28169         subdirectory "lib" in the path of the shared libgnat or libgnarl.
28170
28171         * make.adb (Gnatmake): If GCC version is at least 3, link with
28172         -shared-libgcc, when there is at least one shared library project.
28173
28174         * opt.ads (GCC_Version): New integer constant.
28175
28176         * adaint.c (get_gcc_version): New function.
28177
28178 2004-01-13  Robert Dewar  <dewar@gnat.com>
28179
28180         * sem_dist.adb, sem_res.adb, sem_util.adb,
28181         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
28182         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
28183
28184 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
28185
28186         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
28187         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
28188         declarations.
28189
28190 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
28191
28192         * misc.c: Remove trailing spaces.
28193         Update copyright notice missed in previous change.
28194
28195         PR ada/13572
28196         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
28197         prefix/share/make
28198
28199         * Makefile.generic: Update copyright.
28200         Add license notice.
28201
28202         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
28203         of prefix/share/make.
28204
28205         * Makefile.prolog: Update copyright.
28206         Add license notice.
28207
28208 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
28209
28210         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
28211         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
28212         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
28213         instead of String.
28214
28215         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
28216         signature.
28217
28218 2004-01-12  Javier Miranda  <miranda@gnat.com>
28219
28220         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
28221         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
28222         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
28223         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
28224         Component_Definition node.
28225
28226 2004-01-12  Ed Falis  <falis@gnat.com>
28227
28228         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
28229
28230 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
28231
28232         * link.c: Change default libgnat kind to STATIC for FreeBSD.
28233
28234 2004-01-12  Bernard Banner  <banner@gnat.com>
28235
28236         * Makefile.in: map 86numaux to a-numaux for x86_64
28237
28238 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
28239
28240         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
28241         generated to rename a generic actual, go to the actual itself, the
28242         subtype is not a user-visible entity.
28243
28244         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
28245         part is a private subtype, reset the visibility of its full view, if
28246         any, to be consistent.
28247
28248         PR ada/13417
28249         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
28250         to use a generic package G as a formal package for another generic
28251         declared within G.
28252
28253 2004-01-12  Robert Dewar  <dewar@gnat.com>
28254
28255         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
28256
28257         * usage.adb: Remove mention of obsolete -gnatwb switch
28258         Noticed during code reading
28259
28260 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
28261
28262         * 1ssecsta.adb: Minor changes for -gnatwa warnings
28263
28264 2004-01-12  GNAT Script  <nobody@gnat.com>
28265
28266         * Make-lang.in: Makefile automatically updated
28267
28268 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
28269
28270         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
28271
28272 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
28273
28274         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
28275
28276 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
28277
28278         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
28279         Update comment and copyright date.
28280         * stamp-xgnatug: Delete.
28281
28282 2004-01-05  Robert Dewar  <dewar@gnat.com>
28283
28284         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
28285         be modified by the binder generated main program if the -D switch is
28286         used.
28287
28288         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
28289         imported functions (since now we expect this to be done for imported
28290         functions)
28291
28292         * 5vtaprop.adb: Add several ??? for sections requiring more comments
28293         Minor reformatting throughout
28294
28295         * 5zinit.adb: Minor reformatting
28296         Add 2004 to copyright date
28297         Minor changes to avoid -gnatwa warnings
28298         Correct some instances of using OR instead of OR ELSE (noted while
28299         doing reformatting)
28300
28301         * sprint.adb: Minor updates to avoid -gnatwa warnings
28302
28303         * s-secsta.ads, s-secsta.adb:
28304         (SS_Get_Max): New function to obtain high water mark for ss stack
28305         Default_Secondary_Stack is not a constant since it may be modified by
28306         the binder generated main program if the -D switch is used.
28307
28308         * switch-b.adb: New -Dnnn switch for binder
28309
28310         * switch-c.adb:
28311         Make -gnatg imply all warnings currently in -gnatwa
28312
28313         * vms_conv.adb: Minor reformatting
28314         Add 2004 to copyright notice
28315         Add 2004 to printed copyright notice
28316
28317         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
28318         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
28319         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
28320         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
28321         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
28322         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
28323         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
28324         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
28325         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
28326         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
28327         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
28328         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
28329         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
28330         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
28331         checks.adb, clean.adb, cstand.adb, einfo.ads,
28332         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
28333         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
28334         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
28335         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
28336         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
28337         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
28338         Minor reformatting and code clean ups.
28339         Minor changes to prevent -gnatwa warnings
28340
28341         * ali.adb: Minor reformatting and cleanup of code
28342         Acquire new SS indication of secondary stack use from ali files
28343
28344         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
28345         (since now we expect this to be done for imported functions)
28346
28347         * bindgen.adb: Generate call to modify default secondary stack size if
28348         -Dnnn switch given
28349
28350         * bindusg.adb: Add line for new -D switch
28351
28352         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
28353         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
28354         Add circuitry for both records and arrays to avoid gigi
28355         processing if the type involved has non-bit-aligned components
28356
28357         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
28358         N_String_Literal node always references an E_String_Literal_Subtype
28359         entity. This may not be true in the future.
28360         (Possible_Bit_Aligned_Component): Move processing of
28361         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
28362
28363         * exp_ch6.adb (Expand_Thread_Body): Pick up
28364         Default_Secondary_Stack_Size as variable so that we get value modified
28365         by possible -Dnnn binder parameter.
28366
28367         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
28368         (Type_May_Have_Bit_Aligned_Components): New function.
28369
28370         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
28371         (Type_May_Have_Bit_Aligned_Components): New function.
28372
28373         * fe.h: (Set_Identifier_Casing): Fix prototype.
28374         Add declaration for Sem_Elim.Eliminate_Error_Msg.
28375         Minor reformatting.
28376
28377         * freeze.adb (Freeze_Entity): Add RM reference to error message about
28378         importing constant atomic/volatile objects.
28379         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
28380         unless explicit Pure_Function pragma given, to avoid insidious bug of
28381         call to non-pure imported function getting eliminated.
28382
28383         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
28384         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
28385         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
28386         Add 2004 to printed copyright notice
28387
28388         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
28389         stack used.
28390
28391         * Makefile.rtl: Add entry for g-sestin.o
28392         g-sestin.ads: New file.
28393
28394         * mdll.adb: Minor changes to avoid -gnatwa warnings
28395
28396         * mlib-tgt.adb: Minor reformatting
28397
28398         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
28399         New switch Sec_Stack_Used (GNAT, GNATBIND)
28400         Make Default_Secondary_Stack_Size a variable instead of a constant,
28401         so that it can be modified by the new -Dnnn bind switch.
28402
28403         * rtsfind.adb (Load_Fail): Give full error message in configurable
28404         run-time mode if all_errors mode is set. This was not done in the case
28405         of a file not found, which was an oversight.
28406         Note if secondary stack unit is used by compiler.
28407
28408         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
28409         ineffective elaborate all pragmas on non-visible packages (this
28410         happened when a renamed subprogram was called). Now the elaborate all
28411         always goes on the package containing the renaming rather than the one
28412         containing the renamed subprogram.
28413
28414         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
28415         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
28416
28417         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
28418         has an Etype that references an E_String_Literal.
28419         (Eval_String_Literal): Avoid assumption that N_String_Literal node
28420         always references an E_String_Literal_Subtype entity. This may not
28421         be true in the future.
28422
28423         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
28424         pragma location.
28425
28426         * sem_res.adb (Resolve): Specialize msg for function name used in proc
28427         call.
28428
28429 2004-01-05  Ed Falis  <falis@gnat.com>
28430
28431         * g-debuti.adb: Replaced direct boolean operator with short-circuit
28432         form.
28433
28434 2004-01-05  Vincent Celier  <celier@gnat.com>
28435
28436         * bld.adb: Minor comment updates
28437         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
28438         of Item_Name).
28439
28440         * make.adb (Gnatmake): Special process for files to compile/check when
28441         -B is specified. Fail when there are only foreign mains in attribute
28442         Main of the project file and -B is not specified. Do not skip bind/link
28443         steps when -B is specified.
28444
28445         * makeusg.adb: Document new switch -B
28446
28447         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
28448
28449         * switch-m.adb: (Scan_Make_Switches): Process -B switch
28450
28451         * vms_data.ads: Add new GNAT PRETTY qualifier
28452         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
28453
28454 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28455
28456         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
28457         case.
28458
28459         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
28460         Set_Identifier_Casing.
28461
28462         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
28463         has size that overflows.
28464
28465 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
28466
28467         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
28468         -gnatwa warning on static condition.
28469
28470 2004-01-05  Doug Rupp  <rupp@gnat.com>
28471
28472         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
28473
28474 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
28475
28476         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
28477         all attributes, including read-only attribute.
28478
28479 2004-01-05  Pascal Obry  <obry@gnat.com>
28480
28481         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
28482         library naming scheme.
28483
28484         * mlib-prj.adb (Build_Library): Generate different names for the static
28485         or dynamic version of the GNAT runtime. This is needed to support the
28486         new shared library naming scheme.
28487         (Process_Binder_File): Add detection of shared library in binder file
28488         based on the new naming scheme.
28489
28490         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
28491         scheme for the shared runtime libraries.
28492
28493         * Makefile.in:
28494         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
28495         scheme.
28496         (install-gnatlib): Do not create symlinks for shared libraries.
28497         (gnatlib-shared-default): Idem.
28498         (gnatlib-shared-dual-win32): New target. Not used for now as the
28499         auto-import feature does not support arrays/records.
28500         (gnatlib-shared-win32): Do not create copy for the shared libraries.
28501         (gnatlib-shared-vms): Fix shared runtime libraries names.
28502
28503         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
28504         dependent runtime shared library name.
28505
28506 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
28507
28508         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
28509         than the object.
28510
28511 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
28512
28513         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
28514         protected objects when allocator has a subtype indication, not a
28515         qualified expression. Note that qualified expressions may have to be
28516         checked when limited aggregates are implemented.
28517
28518         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
28519         pure, emit warning.
28520         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
28521         subprogram is imported, remove warning.
28522
28523 2004-01-05  Geert Bosch  <bosch@gnat.com>
28524
28525         * s-poosiz.adb: Update copyright notice.
28526         (Allocate): Use Task_Lock to protect against concurrent access.
28527         (Deallocate): Likewise.
28528
28529 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
28530
28531         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
28532         comment.
28533
28534 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
28535
28536         * gnat_ug.texi: Force a CVS commit by updating copyright.
28537         * gnat_ug_vxw.texi: Regenerate.
28538         * gnat_ug_wnt.texi: Regenerate.
28539         * gnat_ug_vms.texi: Regenerate.
28540         * gnat_ug_unx.texi: Regenerate.
28541
28542 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
28543
28544         * trans.c: Remove uses of "register" specifier in
28545         declarations of local variables.
28546
28547 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
28548
28549         * stamp-xgnatug: New stamp file.
28550         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
28551         (ada/doctools/xgnatug): Add $(build_exeext).
28552         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
28553         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
28554
28555 2003-12-17  Ed Falis  <falis@gnat.com>
28556
28557         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
28558         eliminate warning.
28559
28560         * a-exextr.adb: Add context clause for
28561         Ada.Exceptions.Last_Chance_Handler.
28562
28563 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
28564
28565         * cstand.adb (Create_Standard): Change the way how the declaration of
28566         the Duration type is created (making it the same way as it is for all
28567         the other standard types).
28568
28569 2003-12-17  Robert Dewar  <dewar@gnat.com>
28570
28571         * s-crtl.ads: Fix header format
28572         Change Pure to Preelaborate
28573
28574 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
28575
28576         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
28577         the expression type only if it is declared in the current unit.
28578
28579         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
28580         are universal and already analyzed, as can occur in constrained
28581         subcomponents that depend on discriminants, when one constraint is a
28582         subtype mark.
28583
28584         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
28585         type Any_Fixed is legal as the argument of a conversion, if only one
28586         fixed-point type is in context.
28587
28588 2003-12-17  GNAT Script  <nobody@gnat.com>
28589
28590         * Make-lang.in: Makefile automatically updated
28591
28592 2003-12-15  Robert Dewar  <dewar@gnat.com>
28593
28594         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
28595         sec stack size.
28596
28597 2003-12-15  Vincent Celier  <celier@gnat.com>
28598
28599         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
28600         (Gnatchop): Do not set failure status when reporting the number of
28601         warnings.
28602
28603 2003-12-15  Doug Rupp  <rupp@gnat.com>
28604
28605         * s-ctrl.ads: New file.
28606
28607         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
28608
28609         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
28610         (GNATBIND_OBJS): Add ada/s-crtl.o.
28611
28612         * Makefile.in [VMS]: Clean up ifeq rules.
28613
28614         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
28615         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
28616         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
28617         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
28618         s-tasdeb.adb: Update copyright.
28619         Import System.CRTL.
28620         Make minor modifications to use System.CRTL declared functions instead
28621         of importing locally.
28622
28623 2003-12-15  GNAT Script  <nobody@gnat.com>
28624
28625         * Make-lang.in: Makefile automatically updated
28626
28627 2003-12-11  Ed Falis  <falis@gnat.com>
28628
28629         * 5zinit.adb: Clean up.
28630
28631         * 5zintman.adb (Notify_Exception): replaced case statement with a call
28632         to __gnat_map_signal, imported from init.c to support
28633         signal -> exception mappings that depend on the vxWorks version.
28634
28635         * init.c:
28636         Created and exported __gnat_map_signal to support signal -> exception
28637         mapping that is dependent on the VxWorks version.
28638         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
28639
28640 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
28641
28642         * 5wosinte.ads: Link with -mthreads switch.
28643
28644 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
28645
28646         * init.c (__gnat_install_handler [NetBSD]): Set
28647         __gnat_handler_installed, as done on all other platforms.
28648         Remove duplicated code.
28649
28650 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
28651
28652         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
28653
28654 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
28655
28656         * sinfo.ads: Fix inconsistent example code in comment.
28657
28658 2003-12-11  Robert Dewar  <dewar@gnat.com>
28659
28660         * a-tiinau.adb: Add a couple of comments
28661
28662         * sem_ch3.adb: Minor reformatting
28663
28664         * sem_prag.adb:
28665         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
28666         Minor reformatting throughout
28667
28668 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
28669
28670         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
28671         bounds of a loop, create a separate block in order to generate proper
28672         cleanup actions to prevent memory leaks.
28673
28674         * sem_res.adb (Resolve_Call): After a call to
28675         Establish_Transient_Scope, the call may be rewritten and relocated, in
28676         which case no further processing is needed.
28677
28678         * sem_util.adb: (Wrong_Type): Refine previous fix.
28679          Fixes ACATS regressions.
28680
28681         PR ada/13353
28682         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
28683         be inlined.
28684
28685 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
28686
28687         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
28688         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
28689         obsolete files.
28690
28691         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
28692         (rts-zfp): Ditto.
28693
28694 2003-12-08  Robert Dewar  <dewar@gnat.com>
28695
28696         * 7sintman.adb: Minor reformatting
28697
28698         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
28699         standard linker options to get standard libraries linked. We now plan
28700         to provide dummy versions of these libraries to match the appropriate
28701         configurable run-time (e.g. if a library is not needed at all, provide
28702         a dummy empty library).
28703
28704         * targparm.ads: Configurable_Run_Time mode no longer affects linker
28705         options (-L parameters and standard libraries). What we plan to do is
28706         to provide dummy libraries where the libraries are not required.
28707
28708         * gnatbind.adb: Minor comment improvement
28709
28710 2003-12-08  Javier Miranda  <miranda@gnat.com>
28711
28712         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
28713         aggregate in the parent. Otherwise constants with limited aggregates
28714         are not supported. Add new formal to pass the component type (Ctype).
28715         It is required to call the corresponding IP subprogram in case of
28716         default initialized components.
28717         (Gen_Assign): In case of default-initialized component, generate a
28718         call to the IP subprogram associated with the component.
28719         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
28720         of aggregate with default initialized components.
28721         (Has_Default_Init_Comps): Improve implementation to recursively check
28722         all the present expressions.
28723
28724         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
28725         to indicate that the initialization call corresponds to a
28726         default-initialized component of an aggregate.
28727         In case of default initialized aggregate with tasks this parameter is
28728         used to generate a null string (this is just a workaround that must be
28729         improved later). In case of discriminants, this parameter is used to
28730         generate a selected component node that gives access to the discriminant
28731         value.
28732
28733         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
28734         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
28735         allocated aggregates with default-initialized components.
28736
28737         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
28738         the box notation is used in positional aggregates.
28739
28740 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
28741
28742         * lib.ads: Fix typo in comment
28743
28744 2003-12-08  Vincent Celier  <celier@gnat.com>
28745
28746         * prj.adb (Project_Empty): New component Unkept_Comments
28747         (Scan): Remove procedure; moved to Prj.Err.
28748
28749         * prj.ads (Project_Data): New Boolean component Unkept_Comments
28750         (Scan): Remove procedure; moved to Prj.Err.
28751
28752         * prj-dect.adb: Manage comments for the different declarations.
28753
28754         * prj-part.adb (With_Record): New component Node
28755         (Parse): New Boolean parameter Store_Comments, defaulted to False.
28756         Set the scanner to return ends of line and comments as tokens, if
28757         Store_Comments is True.
28758         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
28759         comments are associated with these nodes. Store the node IDs in the
28760         With_Records.
28761         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
28762         With_Records.
28763         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
28764         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
28765         current project. Call Tree.Restore afterwards. Set the various nodes
28766         for comment storage (Next_End, End_Of_Line, Previous_Line,
28767         Previous_End).
28768
28769         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
28770         defaulted to False.
28771
28772         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
28773         to False. When Truncated is True, truncate the string, never go to the
28774         next line.
28775         (Write_End_Of_Line_Comment): New procedure
28776         (Print): Process comments for nodes N_With_Clause,
28777         N_Package_Declaration, N_String_Type_Declaration,
28778         N_Attribute_Declaration, N_Typed_Variable_Declaration,
28779         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
28780         Process nodes N_Comment.
28781
28782         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
28783         without comments and there are some comments, set the flag
28784         Unkept_Comments to True.
28785         (Scan): If there are comments, set the flag Unkept_Comments to True and
28786         clear the comments.
28787         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
28788         (Next_End_Nodes: New table
28789         (Comment_Zones_Of): New function
28790         (Scan): New procedure; moved from Prj. Accumulate comments in the
28791         Comments table and set end of line comments, comments after, after end
28792         and before end.
28793         (Add_Comments): New procedure
28794         (Save, Restore, Seset_State): New procedures
28795         (There_Are_Unkept_Comments): New function
28796         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
28797         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
28798         procedures.
28799         (First_Comment_After, First_Comment_After_End): New functions
28800         (First_Comment_Before, First_Comment_Before_End): New functions
28801         (Next_Comment): New function
28802         (End_Of_Line_Comment, Follows_Empty_Line,
28803         Is_Followed_By_Empty_Line): New functions
28804         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
28805         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
28806         (Set_Next_Comment): New procedure
28807         (Default_Project_Node): Associate comment before if the node can store
28808         comments.
28809
28810         * scans.ads (Token_Type): New enumeration value Tok_Comment
28811         (Comment_Id): New global variable
28812
28813         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
28814         defaulted to False.
28815         (Scan): Store position of start of comment. If comments are tokens, set
28816         Comment_Id and set Token to Tok_Comment when scanning a comment.
28817         (Set_Comment_As_Token): New procedure
28818
28819         * sinput-p.adb: Update Copyright notice
28820         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
28821         that no longer exists.
28822
28823 2003-12-08  Javier Miranda  <miranda@gnat.com>
28824
28825         * sem_aggr.adb: Add dependence on Exp_Tss package
28826         Correct typo in comment
28827         (Resolve_Aggregate): In case of array aggregates set the estimated
28828         type of the aggregate before calling resolve. This is needed to know
28829         the name of the corresponding IP in case of limited array aggregates.
28830         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
28831         in case of default initialized array components.
28832
28833         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
28834         types. Required to give support to limited aggregates in generic
28835         formals.
28836
28837 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
28838
28839         * sem_ch3.adb (Check_Initialization): For legality purposes, an
28840         inlined body functions like an instantiation.
28841         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
28842         until bounds are analyzed, to diagnose premature use of type.
28843
28844         * sem_util.adb (Wrong_Type): Improve error message when the type of
28845         the expression is used prematurely.
28846
28847 2003-12-08  GNAT Script  <nobody@gnat.com>
28848
28849         * Make-lang.in: Makefile automatically updated
28850
28851 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
28852
28853         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
28854         they are automatically generated by Make-lang.in and cause nothing but
28855         maintenance troubles.
28856
28857 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
28858
28859         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
28860         version of this unit).
28861
28862 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
28863
28864         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
28865         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
28866         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
28867         the body of System.Interrupt_Management common to several targets.
28868         Update copyright notice when appropriate.
28869
28870         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
28871         constant.
28872
28873         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
28874         to ensure that the kernel fills in the interrupted context structure
28875         before calling a signal handler, which is necessary to be able to
28876         unwind past it. Update the copyright notice.
28877
28878 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
28879
28880         * a-elchha.ads: New file.
28881
28882         * a-elchha.adb: New default last chance handler. Contents taken from
28883         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
28884
28885         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
28886         is moved to a-elchha.adb to provide a target-independent default last
28887         chance handler.
28888
28889         * Makefile.rtl: Add a-elchha.o
28890
28891         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
28892
28893 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
28894
28895         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
28896         declared in an instance, do not inline the call if the instance is not
28897         frozen yet, to prevent order of elaboration problems.
28898
28899         * sem_prag.adb: Add comments for previous fix.
28900
28901 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
28902
28903         * g-table.adb: Use the right variable in Set_Item.
28904         Update copyright notice.
28905
28906 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
28907
28908         * Makefile.in: Remove unused rules.
28909
28910 2003-12-05  Vincent Celier  <celier@gnat.com>
28911
28912         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
28913         -nostdlib. Not needed here after all.
28914
28915 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
28916
28917         PR ada/11724
28918         * adaint.h, adaint.c, g-os_lib.ads:
28919         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
28920         on some platforms (including FreeBSD), it is a 64 bit value.
28921         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
28922
28923 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
28924
28925         * gnatvsn.ads (Library_Version): Now contain only the relevant
28926         version info.
28927         (Verbose_Library_Version): New constant.
28928
28929         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
28930         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
28931         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
28932
28933         * gnatlbr.adb: Clean up: replace Library_Version by
28934         Verbose_Library_Version.
28935
28936         * make.adb, lib-writ.adb, exp_attr.adb:
28937         Clean up: replace Library_Version by Verbose_Library_Version.
28938
28939         * 5lintman.adb: Removed.
28940
28941         * Makefile.in:
28942         Update and simplify computation of LIBRARY_VERSION.
28943         Fix computation of GSMATCH_VERSION.
28944         5lintman.adb is no longer used: replaced by 7sintman.adb.
28945
28946 2003-12-03  Robert Dewar  <dewar@gnat.com>
28947
28948         * exp_ch5.adb:
28949         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
28950         name. Modified to consider small non-bit-packed arrays as troublesome
28951         and in need of component-by-component assigment expansion.
28952
28953 2003-12-03  Vincent Celier  <celier@gnat.com>
28954
28955         * lang-specs.h: Process nostdlib as nostdinc
28956
28957         * back_end.adb: Update Copyright notice
28958         (Scan_Compiler_Arguments): Process -nostdlib directly.
28959
28960 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
28961
28962         * Makefile.in:
28963         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
28964         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
28965         included in HIE_NONE_TARGET_PAIRS.
28966
28967 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
28968
28969         * sem_attr.adb:
28970         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
28971         is legal in an instance, because legality is cheched in the template.
28972
28973         * sem_prag.adb:
28974         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
28975         appplied to an unchecked conversion of a formal parameter.
28976
28977         * sem_warn.adb:
28978         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
28979         variables.
28980
28981 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
28982
28983         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
28984         routines. The second one is new functionality to deal with backtracing
28985         through signal handlers.
28986         (unwind): Split into the two separate subroutines above.
28987         Update the documentation, and deal properly with sizeof (REG) different
28988         from sizeof (void*).
28989
28990 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
28991
28992         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
28993         so that the debugger can reliably access the value of the parameter,
28994         and therefore is able to display the exception name when an exception
28995         breakpoint is reached.
28996
28997 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
28998
28999         * fmap.adb: Fix typo in warning message.
29000
29001         * g-socket.ads, g-socket.adb: Make Free a visible instance of
29002         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
29003
29004 2003-12-01  Vincent Celier  <celier@gnat.com>
29005
29006         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
29007         ther is no Afile.
29008         (Build_Library): Get the switches only if Default_Switches is declared
29009         in package Binder.
29010
29011 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
29012
29013         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
29014         actuals that are indexed components, reanalyze actual to ensure that
29015         packed array references are properly expanded.
29016
29017         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
29018         attempted assignment to a discriminant.
29019
29020 2003-12-01  Robert Dewar  <dewar@gnat.com>
29021
29022         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
29023         reformatting.
29024
29025         * switch-c.adb: Minor reformatting of comments
29026
29027 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
29028
29029         * Makefile.in: Clean ups.
29030
29031 2003-12-01  GNAT Script  <nobody@gnat.com>
29032
29033         * Make-lang.in: Makefile automatically updated
29034
29035 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
29036
29037         * 5wsystem.ads: Disable zero cost exception, not ready yet.
29038
29039 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
29040
29041         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
29042         to force serialization.
29043
29044 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
29045
29046         * g-socket.ads, g-socket.adb:
29047         Clarify documentation of function Stream. Introduce a Free procedure
29048         to release the returned Stream once it becomes unused.
29049
29050         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
29051
29052 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
29053
29054         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
29055         since NT 4 cannot handle timeout values that are too large,
29056         e.g. DWORD'Last - 1.
29057
29058 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
29059
29060         * exp_ch4.adb:
29061         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
29062         in procedure calls and whose expansion must be deferred.
29063
29064         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
29065         is in exp_ch4.
29066
29067         * sem_ch3.adb:
29068         (Build_Derived_Array_Type): Create operator for unconstrained type
29069         if ancestor is unconstrained.
29070
29071 2003-11-26  Vincent Celier  <celier@gnat.com>
29072
29073         * make.adb (Project_Object_Directory): New global variable
29074         (Change_To_Object_Directory): New procedure
29075         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
29076         of Change_Dir directly. Do not change working directory to object
29077         directory of main project after each compilation.
29078         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
29079         directly.
29080         Change to object directory of main project before binding step.
29081         (Initialize): Initialize Project_Object_Directory to No_Project
29082
29083         * mlib-prj.adb:
29084         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
29085         binding a Stand-Alone Library.
29086
29087         * output.adb: Update Copyright notice
29088         (Write_Char): Output buffer when full
29089
29090 2003-11-26  Robert Dewar  <dewar@gnat.com>
29091
29092         * sem_ch13.adb: (Check_Size): Reset size if size is too small
29093
29094         * sem_ch13.ads:
29095         (Check_Size): Fix documentation to include bit-packed array case
29096
29097         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
29098
29099         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
29100
29101         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
29102
29103 2003-11-24  Arnaud Charlet <charlet@act-europe.fr>
29104
29105         PR ada/13142
29106         * utils.c (init_gigi_decls): Change name of built-in setjmp to
29107         __builtin_setjmp, since this is apparently needed by recent
29108         non Ada changes.
29109
29110 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
29111
29112         * adadecode.c: Only include ctype.h if not IN_GCC.
29113         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
29114
29115 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
29116
29117         * Makefile.in:
29118         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
29119         signals and interrupts.
29120
29121         * 5zintman.ads: New File.
29122
29123         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
29124         add exception signals to the set of unmasked signals.
29125
29126         * 5ztaprop.adb:
29127         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
29128         between signals and interrupts.
29129         Add to Unblocked_Signal_Mask the set of signals that are in
29130         Keep_Unmasked.
29131
29132         * 7sinmaop.adb:
29133         Adding a check to see whether the Interrupt_ID we want to unmask is in
29134         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
29135         reason is that the index type of the Keep_Unmasked array is not always
29136         Interrupt_ID; it may be a subtype of Interrupt_ID.
29137
29138 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
29139
29140         * exp_util.adb:
29141         (Remove_Side_Effects): Condition constantness of object created for a
29142          an unchecked type conversion on the constantness of the expression
29143          to ensure the correct value for 'Constrained when passing components
29144          of view-converted class-wide objects.
29145
29146 2003-11-24  Robert Dewar  <dewar@gnat.com>
29147
29148         * par-load.adb (Load): Improve handling of misspelled and missing units
29149         Removes several cases of compilation abandoned messages
29150
29151         * lib.adb: (Remove_Unit): New procedure
29152
29153         * lib.ads: (Remove_Unit): New procedure
29154
29155         * lib-load.adb: Minor reformatting
29156
29157 2003-11-24  Vincent Celier  <celier@gnat.com>
29158
29159         * make.adb:
29160         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
29161         (Marking_Label): Label to mark processed source files. Incremented for
29162         each executable.
29163         (Gnatmake): Increase Marking_Labet for each executable
29164         (Is_Marked): Compare against marking label
29165         (Mark): Mark with marking label
29166
29167 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
29168
29169         * s-thread.ads:
29170         Move the declaration of the TSD for System.Threads to System.Soft_Links.
29171         Add some comments.
29172
29173         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
29174         (rts-cert): build a single relocatable object for the run-time lib.
29175         Fix perms.
29176
29177 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
29178
29179         * Make-lang.in:
29180         Use gnatls rather than gcc to obtain the location of GNAT RTL for
29181         crosstools build.
29182
29183 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
29184
29185         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
29186         can not use it as before (that is, as a variable) when dumping it into
29187         the tree file. Add a local variable to store the result of this
29188         function and to be used as the string to be written into the tree.
29189
29190         * scn.adb (Initialize_Scanner): Add comments explaining the recent
29191         changes.
29192
29193         * sinput.adb (Source_First, Source_Last): In case of
29194         Internal_Source_File, replace returning attributes of
29195         Internal_Source_Ptr (which is wrong) with returning attributes of
29196         Internal_Source.
29197
29198 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
29199
29200         * sem_ch3.adb:
29201         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
29202         used for implicit concatenation operators.
29203         Code cleanup.
29204
29205         * sem_elab.adb:
29206         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
29207         task bodies that are in the scope of a Suppress pragma.
29208         (Check_A Call): Use the flag to prevent spurious elaboration checks.
29209
29210         * sinfo.ads, sinfo.adb:
29211         New flag No_Elaboration_Check on function/procedure calls, to properly
29212         suppress checks on calls in task bodies that are within a local suppress
29213         pragma.
29214
29215         * exp_ch4.adb:
29216         (Expand_Concatenate_Other): Use the proper integer type for the
29217         expression for the upper bound, to avoid universal_integer computations
29218         when possible.
29219
29220 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
29221
29222         * .cvsignore: Delete.
29223
29224 2003-11-21  Andreas Schwab  <schwab@suse.de>
29225
29226         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
29227
29228 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
29229
29230         * 5wsystem.ads: Enable zero cost exception.
29231
29232 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
29233
29234         * 5ztiitho.adb: Remove an unreferenced variable.
29235
29236 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
29237
29238         * adaint.c: For FreeBSD, use mkstemp.
29239
29240 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
29241
29242         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
29243
29244 2003-11-21  Robert Dewar  <dewar@gnat.com>
29245
29246         * bld.adb: Remove useless USE of gnatvsn
29247
29248         * gnatchop.adb: Minor reformatting
29249         Clean up version handling to be more consistent
29250
29251         * gnatxref.adb: Minor reformatting
29252
29253         * gprcmd.adb: Minor reformatting
29254         Fix output of copyright to be more consistent with other tools
29255
29256 2003-11-21  Vincent Celier  <celier@gnat.com>
29257
29258         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
29259
29260 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
29261
29262         * atree.adb (Initialize): Add initializations for global variables
29263         used in New_Copy_Tree.
29264
29265         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
29266         Internal_Source_File as the actual).
29267         Put the set of statements creating Any_Character before the set of
29268         statements creating Any_Array to have Any_Character fully initialized
29269         when it is used in creating Any_Array.
29270
29271         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
29272         not call Scan in case if the actual is Internal_Source_File
29273         Add 2003 to copyright note.
29274
29275         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
29276         processing Internal_Source_File.
29277
29278         * types.ads: Add the constant Internal_Source_File representing the
29279         source buffer for artificial source-code-like strings created within
29280         the compiler (the definition of Source_File_Index is changed).
29281
29282 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
29283
29284         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
29285         56system.ads: New file, FreeBSD version.
29286
29287 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
29288
29289         * Make-lang.in (ada.extraclean): Delete.
29290
29291 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
29292
29293         * gnatmem.adb: Clean up verbose output.
29294
29295         * gprcmd.adb: Change copyright to FSF.
29296
29297 2003-11-19  Vincent Celier  <celier@gnat.com>
29298
29299         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
29300         and Version (ignored).
29301
29302         * symbols.ads: (Policy): New type
29303         (Initialize): New parameter Reference, Symbol_Policy and
29304         Library_Version.
29305         Remove parameter Force.
29306         Minor reformatting.
29307
29308         * snames.ads, snames.adbadb: New standard names
29309         Library_Reference_Symbol_File and Library_Symbol_Policy
29310
29311         * mlib-prj.adb:
29312         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
29313         project.
29314
29315         * mlib-tgt.adb:
29316         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
29317
29318         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
29319
29320         * prj.adb: (Project_Empty): New component Symbol_Data
29321
29322         * prj.ads: (Policy, Symbol_Record): New types
29323         (Project_Data): New component Symbol_Data
29324
29325         * prj-attr.adb:
29326         New attributes Library_Symbol_File, Library_Symbol_Policy and
29327         Library_Reference_Symbol_File.
29328
29329         * prj-nmsc.adb:
29330         (Ada_Check): When project is a Stand-Alone library project, process
29331         attribute Library_Symbol_File, Library_Symbol_Policy and
29332         Library_Reference_Symbol_File.
29333
29334         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
29335         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
29336         5sml-tgt.adb (Build_Dynamic_Library): New parameter
29337         Symbol_Data (ignored).
29338
29339         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
29340         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
29341         functions Option_File_Name and Version_String. Set new options of
29342         gnatsym related to symbol file, symbol policy and reference symbol
29343         file.
29344
29345         * 5vsymbol.adb:
29346         Extensive modifications to take into account the reference symbol file,
29347         the symbol policy, the library version and to put in the symbol file the
29348         minor and major IDs.
29349
29350         * bld.adb (Process_Declarative_Items): Put second argument of
29351         gprcmd to_absolute between single quotes, to avoid problems with
29352         Windows.
29353
29354         * bld-io.adb: Update Copyright notice.
29355         (Flush): Remove last character of a line, if it is a back slash, to
29356         avoid make problems.
29357
29358         * gnatsym.adb:
29359         Implement new scheme with reference symbol file and symbol policy.
29360
29361         * g-os_lib.ads: (Is_Directory): Clarify comment
29362
29363 2003-11-19  Robert Dewar  <dewar@gnat.com>
29364
29365         * atree.adb: Move New_Copy_Tree global variables to head of package
29366
29367         * errout.adb: Minor reformatting
29368
29369 2003-11-19  Javier Miranda  <miranda@gnat.com>
29370
29371         * sem_ch4.adb: (Diagnose_Call): Improve error message.
29372         Add reference to Ada0Y (AI-50217)
29373
29374         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
29375         sem_util.adb: Add reference to AI-50217
29376
29377         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
29378
29379         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
29380
29381         * sem_aggr.adb: Complete documentation of AI-287 changes
29382
29383         * par-ch4.adb: Document previous changes.
29384
29385         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
29386         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
29387         Ada0Y (AI-50217)
29388
29389         * exp_aggr.adb: Add references to AI-287 in previous changes
29390
29391 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
29392
29393         * exp_ch6.adb:
29394         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
29395         in the rewriting is the result of an inlined call.
29396
29397         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
29398         parameter is a type conversion, use original node to construct the
29399         post-call assignment, because expression may have been rewritten, e.g.
29400         if it is a packed array.
29401
29402         * sem_attr.adb:
29403         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
29404         body, just as it is in an instance.
29405         Categorization routines
29406
29407         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
29408         Instantiate_Object): Set proper sloc reference for message on missing
29409         actual.
29410
29411 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
29412
29413         * Makefile.in: Add FreeBSD libgnat pairs.
29414
29415         * usage.adb: Fix typo in usage message.
29416
29417 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
29418
29419         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
29420         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
29421         pragma Thread_Body.
29422         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
29423
29424         * s-thread.adb: This file is now a dummy implementation of
29425         System.Thread.
29426
29427 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
29428
29429         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
29430
29431 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
29432
29433         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
29434         instanciation references in the parent type description.
29435
29436 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29437
29438         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
29439
29440         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
29441         TYPE_PRECISION directly from esize.
29442
29443 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
29444
29445         * cstreams.c:
29446         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
29447
29448         * init.c: Initialization routines for FreeBSD
29449
29450         * link.c: Link info for FreeBSD
29451
29452         * sysdep.c: Add the case of FreeBSD
29453
29454 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
29455
29456         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
29457         already called in System.Threads.
29458
29459         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
29460         environment task, as it has been moved to System.Threads.Initialization.
29461
29462 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
29463
29464         * adaint.c (__gnatlib_install_locks): Only reference
29465         __gnat_install_locks on VMS, since other platforms can avoid using
29466         --enable-threads=gnat
29467
29468 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29469
29470         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
29471
29472         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
29473         TYPE_PACKED_ARRAY_TYPE_P.
29474         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
29475
29476         Part of PR ada/12806
29477         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
29478         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
29479
29480 2003-11-17  Vincent Celier  <celier@gnat.com>
29481
29482         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
29483         to False.
29484         Do not set exit status to Failure when Warning is True.
29485         (Gnatchop): Make errors "no compilation units found" and
29486         "no source files written" warnings only.
29487
29488         * make.adb (Gnatmake): When using a project file, set
29489         Look_In_Primary_Dir to False.
29490         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
29491         and Local_Configuration_Pragmas in the project where they are declared
29492         not an extending project which might have inherited them.
29493
29494         * osint.adb (Locate_File): If Name is already an absolute path, do not
29495         look for a directory.
29496
29497         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
29498         -gnats (Check_Syntax) is used, issue only a warning, not an error.
29499
29500         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
29501         in objects of type Variable_Value.
29502
29503         * prj.ads: (Variable_Value): New component Project
29504
29505         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
29506         is in a project extended by Project.
29507
29508         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
29509         Project of Variable_Values to this new parameter value.
29510         (Expression): Set component Project of Variable_Values.
29511         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
29512         Set the component Project in array elements.
29513
29514 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
29515
29516         * errout.adb: (Initialize): Add initialization for error nodes.
29517
29518         * sem_ch12.adb (Initialize): Add missing initializations for
29519         Exchanged_Views and Hidden_Entities.
29520
29521 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
29522
29523         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
29524         already instantiated tree for use in subsequent inlining.
29525         (Analyze_Associations, Instantiate_Formal_Subprogram,
29526         Instantiate_Object): improve error message for mismatch in
29527         instantiations.
29528
29529         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
29530         instantiations of subprograms declared in instances.
29531
29532 2003-11-17  Javier Miranda  <miranda@gnat.com>
29533
29534         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
29535         executed only under the Extensions_Allowed flag.
29536
29537 2003-11-17  Robert Dewar  <dewar@gnat.com>
29538
29539         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
29540         zeroes suppressed.
29541         (Address_Image): Fix bug of returning 0x instead of 0x0
29542         Minor reformatting (function specs).
29543
29544         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
29545         (missed case of 33-63)
29546
29547         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
29548
29549         * s-thread.adb: Add comments for pragma Restriction
29550
29551         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
29552         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
29553
29554 2003-11-17  Ed Falis  <falis@gnat.com>
29555
29556         * s-thread.adb: Added No_Tasking restriction for this implementation.
29557
29558 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
29559
29560         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
29561         instanciation references in the parent type description.
29562
29563 2003-11-17  GNAT Script  <nobody@gnat.com>
29564
29565         * Make-lang.in: Makefile automatically updated
29566
29567 2003-11-16  Jason Merrill  <jason@redhat.com>
29568
29569         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
29570         and TAGS files that include them for each front end.
29571
29572 2003-11-14  Andreas Jaeger  <aj@suse.de>
29573
29574         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
29575         is the canonical version.
29576         * misc.c (gnat_handle_option): Likewise.
29577
29578         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
29579
29580         * 5nsystem.ads: New file for x86_64-linux-gnu.
29581
29582 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
29583
29584         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
29585
29586         * comperr.adb: Fix logic in previous change.
29587
29588 2003-11-13  Vincent Celier  <celier@gnat.com>
29589
29590         * 5bml-tgt.adb (Build_Dynamic_Library): Use
29591         Osint.Include_Dir_Default_Prefix instead of
29592         Sdefault.Include_Dir_Default_Name.
29593
29594         * gnatlbr.adb: Update Copyright notice
29595         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
29596         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
29597         instead of Sdefault.Object_Dir_Default_Name
29598
29599         * gnatlink.adb:
29600         (Process_Binder_File): Never suppress the option following -Xlinker
29601
29602         * mdll-utl.adb:
29603         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
29604         Sdefault.Object_Dir_Default_Name.
29605
29606         * osint.ads, osint.adb:
29607         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
29608         Minor reformatting.
29609
29610         * vms_conv.ads: Minor reformating
29611         Remove GNAT STANDARD and GNAT PSTA
29612
29613         * vms_conv.adb:
29614         Allow GNAT MAKE to have several files on the command line.
29615         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
29616         Sdefault.Object_Dir_Default_Name.
29617         Minor Reformating
29618         Remove data for GNAT STANDARD
29619
29620         * vms_data.ads:
29621         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
29622         Remove data for GNAT STANDARD
29623         Remove options and documentation for -gnatwb/-gnatwB: these warning
29624         options no longer exist.
29625
29626 2003-11-13  Ed Falis  <falis@gnat.com>
29627
29628         * 5zthrini.adb: (Init_RTS): Made visible
29629
29630         * 5zthrini.adb:
29631         (Register): Removed unnecessary call to taskVarGet that checked whether
29632          an ATSD was already set as a task var for the argument thread.
29633
29634         * s-thread.adb:
29635         Updated comment to reflect that this is a VxWorks version
29636         Added context clause for System.Threads.Initialization
29637         Added call to System.Threads.Initialization.Init_RTS
29638
29639 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
29640
29641         * 5zthrini.adb:
29642         (Init_RTS): New procedure, for the initialization of the run-time lib.
29643
29644         * s-thread.adb:
29645         Remove dependancy on System.Init, so that this file can be used in the
29646         AE653 sequential run-time lib.
29647
29648 2003-11-13  Robert Dewar  <dewar@gnat.com>
29649
29650         * bindgen.adb: Minor reformatting
29651
29652 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
29653
29654         * checks.adb:
29655         (Apply_Discriminant_Check): Do no apply check if target type is derived
29656         from source type with no applicable constraint.
29657
29658         * lib-writ.adb:
29659         (Ensure_System_Dependency): Do not apply the style checks that may have
29660         been specified for the main unit.
29661
29662         * sem_ch8.adb:
29663         (Find_Selected_Component): Further improvement in error message, with
29664         RM reference.
29665
29666         * sem_res.adb:
29667         (Resolve): Handle properly the case of an illegal overloaded protected
29668         procedure.
29669
29670 2003-11-13  Javier Miranda  <miranda@gnat.com>
29671
29672         * exp_aggr.adb:
29673         (Has_Default_Init_Comps): New function to check the presence of
29674         default initialization in an aggregate.
29675         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
29676         extension aggregate of a limited record. In addition, a new formal
29677         was added to do not initialize the record controller (if any) during
29678         this recursive expansion of ancestors.
29679         (Init_Controller): Add support for limited record components.
29680         (Expand_Record_Aggregate): In case of default initialized components
29681         convert the aggregate into a set of assignments.
29682
29683         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
29684         describing the new syntax.
29685         Nothing else needed to be done because this subprogram delegates part of
29686         its work to P_Precord_Or_Array_Component_Association.
29687         (P_Record_Or_Array_Component_Association): Give support to the new
29688         syntax for default initialization of components.
29689
29690         * sem_aggr.adb:
29691         (Resolve_Aggregate): Relax the strictness of the frontend in case of
29692         limited aggregates.
29693         (Resolve_Record_Aggregate): Give support to default initialized
29694         components.
29695         (Get_Value): In case of default initialized components, duplicate
29696         the corresponding default expression (from the record type
29697         declaration). In case of default initialization in the *others*
29698         choice, do not check that all components have the same type.
29699         (Resolve_Extension_Aggregate): Give support to limited extension
29700         aggregates.
29701
29702         * sem_ch3.adb:
29703         (Check_Initialization): Relax the strictness of the front-end in case
29704         of aggregate and extension aggregates. This test is now done in
29705         Get_Value in a per-component manner.
29706
29707         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
29708         expression corresponds to a limited aggregate. This test is now done
29709         in Get_Value.
29710
29711         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
29712         Box_Present flag.
29713
29714         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
29715         present in an N_Component_Association node
29716
29717 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
29718
29719         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
29720         type-conformant entry only if they are homographs.
29721
29722 2003-11-13  GNAT Script  <nobody@gnat.com>
29723
29724         * Make-lang.in: Makefile automatically updated
29725
29726 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
29727
29728         * adadecode.c: Use <> form of include for ctype.h.
29729         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
29730
29731 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
29732
29733         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
29734         Works around PR middle-end/6552.
29735
29736 2003-11-10  Ed Falis  <falis@gnat.com>
29737
29738         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
29739
29740         * 5zinit.adb: (Install_Handler): Moved back to spec
29741         (Install_Signal_Handlers): Deleted
29742
29743         * 5zthrini.adb: Added context clause for System.Storage_Elements
29744         (Register): Only handles creation of taskVar; initialization moved to
29745         Thread_Body_Enter.
29746         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
29747         Added declaration of environment task secondary stack and
29748         initialization.
29749
29750         * s-thread.adb: Implement bodies for thread body processing
29751
29752         * s-thread.ads:
29753         Added comment identifying supported targets for pragma Thread_Body.
29754
29755 2003-11-10  Pascal Obry  <obry@gnat.com>
29756
29757         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
29758         GNAT_MAX_PATH_LEN.
29759
29760         * s-fileio.adb:
29761         (Open): Properly check for string length before copying into the buffer.
29762         Raises Name_Error if buffer is too small. Note that this was a potential
29763         buffer overflow.
29764
29765 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
29766
29767         * bindgen.adb, comperr.adb: Code clean ups.
29768         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
29769
29770 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
29771
29772         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
29773
29774 2003-11-10  Vincent Celier  <celier@gnat.com>
29775
29776         * gprcmd.adb:
29777         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
29778         installation.
29779
29780         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
29781
29782         * prj.adb: (Project_Empty): Add new boolean component Virtual
29783
29784         * prj.ads: (Virtual_Prefix): New constant string
29785         (Project_Data): New boolean component Virtual
29786
29787         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
29788         a library project is extended by a virtual extending project.
29789
29790         * prj-part.adb:
29791         Modifications throughout to implement extending-all project, including:
29792         (Virtual_Hash, Processed_Hash): New hash tables
29793         (Create_Virtual_Extending_Project): New procedure
29794         (Look_For_Virtual_Projects_For): New procedure
29795
29796         * prj-proc.adb:
29797         (Process): After checking the projects, if main project is an
29798         extending-all project, set the object directory of all virtual extending
29799         project to the object directory of the main project.
29800         Adjust error message when a virtual extending project has the same
29801         object directory as an project being extended.
29802         (Recursive_Process): If name starts with the virtual prefix, set Virtual
29803         to True in the project data.
29804
29805         * prj-tree.adb:
29806         (Default_Project_Node): Add new boolean component Extending_All
29807         (Is_Extending_All): New function
29808         (Set_Is_Extending_All): New procedure
29809
29810         * prj-tree.ads: (Is_Extending_All): New function
29811         (Set_Is_Extending_All): New procedure
29812         (Project_Node_Record): New boolean component Extending_All
29813
29814         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
29815
29816         * vms_data.ads:
29817         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
29818
29819         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
29820         "gprcmd prefix" to define it.
29821
29822 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
29823
29824         * einfo.ads: Fix a typo and remove an extraneous word in comments.
29825
29826         * lib-load.adb:
29827         (Create_Dummy_Package_Unit): Set the scope of the entity for the
29828         created dummy package to Standard_Standard, not to itself, to
29829         defend other parts of the front-end against encoutering a cycle in
29830         the scope chain.
29831
29832         * sem_ch10.adb:
29833         (Analyze_With_Clause): When setting the entities for the successive
29834         N_Expanded_Names that constitute the name of a child unit, do not
29835         attempt to go further than Standard_Standard in the chain of scopes.
29836         This case arises from the placeholder units created by
29837         Create_Dummy_Package_Unit in the case of a with_clause for a
29838         nonexistent child unit.
29839
29840 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
29841
29842         * exp_ch6.adb:
29843         (Expand_Thread_Body): Place subprogram on scope stack, so that new
29844         declarations are given the proper scope.
29845
29846         * sem_ch13.adb:
29847         (Check_Expr_Constants): Reject an expression that contains a constant
29848         created during expansion, and that appears after the object to which
29849         the address clause applies.
29850
29851         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
29852         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
29853         that uses 'Range of a function call with controlled components, so
29854         that the function result can be finalized before starting the loop.
29855
29856         * sem_ch8.adb:
29857         (Find_Selected_Component): Improve error message when prefix is
29858         an implicit dereference of an incomplete type.
29859
29860 2003-11-10  Robert Dewar  <dewar@gnat.com>
29861
29862         * opt.ads: New Print_Standard flag for -gnatS switch
29863
29864         * sem_ch13.adb: Remove some additional checks for unaligned arrays
29865
29866         * cstand.adb (Create_Standard): Print out package standard if -gnatS
29867         switch set
29868
29869         * debug.adb: Update doc for -gnatds to discuss relationship with new
29870         -gnatS flag
29871
29872         * sinfo.adb: Add new field Entity_Or_Associated_Node
29873
29874         * sinfo.ads: Add new field Entity_Or_Associated_Node
29875         Update documentation for Associated_Node and Entity fields to clarify
29876         relationship and usage.
29877
29878         * sprint.adb:
29879         (Write_Id): Properly process Associated_Node field in generic template
29880
29881         * switch-c.adb:
29882         Recognize new -gnatS switch for printing package Standard
29883         This replaces gnatpsta
29884
29885         * usage.adb:
29886         Add line for  new -gnatS switch for printing package Standard
29887         This replaces gnatpsta
29888
29889 2003-11-10  Andreas Jaeger  <aj@suse.de>
29890
29891         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
29892         integer.
29893
29894 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
29895
29896         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
29897         by gnat1.
29898
29899 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
29900
29901         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
29902         no longer needed.
29903
29904         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
29905
29906         * sysdep.c: Add handling of cygwin.
29907
29908 2003-11-10  GNAT Script  <nobody@gnat.com>
29909
29910         * Make-lang.in: Makefile automatically updated
29911
29912 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
29913
29914         PR 12950
29915         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
29916         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
29917         Replace GNAT_ROOT by GCC_ROOT.
29918
29919         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
29920
29921 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
29922
29923         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
29924         and update for changed meaning of GET_MODE_BITSIZE.
29925
29926 2003-11-04  Doug Rupp  <rupp@gnat.com>
29927
29928         * sysdep.c: Problem discovered during IA64 VMS port.
29929         [VMS] #include <unixio.h> to get proper prototypes.
29930
29931         * adaint.c:
29932         Issues discovered/problems fixed during IA64 VMS port.
29933         [VMS] #define _POSIX_EXIT for proper semantics.
29934         [VMS] #include <unixio.h> for proper prototypes.
29935         [VMS] (fork): #define IA64 version.
29936         (__gnat_os_exit): Remove unnecessary VMS specific code.
29937
29938 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29939
29940         Part of PR ada/12806
29941         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
29942         tree, not integer.
29943
29944         * decl.c:
29945         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
29946         not integer.
29947
29948         * targtyps.c, decl.c, misc.c,
29949         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
29950         routines to work around change in FP sizing semantics in GCC.
29951
29952         * utils.c:
29953         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
29954
29955         * gigi.h: (enumerate_modes): New function.
29956
29957         * Make-lang.in: (ada/misc.o): Add real.h.
29958
29959         * misc.c: (enumerate_modes): New function.
29960
29961 2003-11-04  Robert Dewar  <dewar@gnat.com>
29962
29963         * 3vtrasym.adb: Minor reformatting
29964         Use terminology encoded/decoded name, rather than C++ specific notion
29965         of mangling (this is the terminology used throughout GNAT).
29966
29967         * einfo.h: Regenerated
29968
29969         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
29970
29971         * exp_ch6.adb:
29972         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
29973
29974         * par-prag.adb: Add dummy entry for Thread_Body pragma
29975
29976         * rtsfind.ads:
29977         Add entries for System.Threads entities for thread body processing
29978
29979         * sem_attr.adb:
29980         (Analyze_Pragma, Access attributes): Check these are not applied to a
29981         thread body, since this is not permitted
29982
29983         * sem_prag.adb: Add processing for Thread_Body pragma.
29984         Minor comment fix.
29985
29986         * sem_res.adb:
29987         (Resolve_Call): Check for incorrect attempt to call a thread body
29988          procedure with a direct call.
29989
29990         * snames.ads, snames.adb: Add entry for Thread_Body pragma
29991         Add names associated with thread body expansion
29992
29993         * snames.h: Add entry for Thread_Body pragma
29994
29995         * s-thread.adb: Add entries for thread body processing
29996         These are dummy bodies so far
29997
29998         * s-thread.ads: Add documentation on thread body handling.
29999         Add entries for thread body processing.
30000
30001 2003-11-04  Javier Miranda  <miranda@gnat.com>
30002
30003         * sem_ch10.adb:
30004         (Build_Limited_Views): Return after posting an error in case of limited
30005         with_clause on subprograms, generics, instances or generic renamings
30006         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
30007         on subprograms, generics, instances or generic renamings
30008
30009 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
30010
30011         * raise.c (setup_to_install): Correct mistake in last revision; two
30012         arguments out of order.
30013
30014         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
30015         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
30016         notice, missed in previous change.
30017         Remove trailing blanks and other style errors introduced in previous
30018         change.
30019
30020 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
30021
30022         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
30023         rid of the wrapper for a LJM type, ensuring we don't do that if the
30024         field is addressable.  This avoids potential low level type view
30025         mismatches later on, for instance in a by-reference argument passing
30026         process.
30027
30028 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30029
30030         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
30031         aligned at byte boundary.
30032
30033 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
30034
30035         * decl.c (components_to_record): Do not delete the empty variants from
30036         the end of the union type.
30037
30038 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
30039
30040         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
30041         operation for a derived type, an explicit declaration may use a local
30042         subtype of Boolean.
30043
30044 2003-11-04  Vincent Celier  <celier@gnat.com>
30045
30046         * make.adb (Gnatmake): Allow main sources on the command line with a
30047         library project when it is only for compilation (no binding or
30048         linking).
30049
30050 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
30051
30052         * Makefile.in: Remove many duplicate variables.
30053
30054 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
30055
30056         * Make-lang.in (dvi): Move targets to $(docobjdir).
30057         (gnat_ug_vms.dvi): Simplify rule and adjust target.
30058         (gnat_ug_wnt.dvi): Likewise.
30059         (gnat_ug_unx.dvi): Likewise.
30060         (gnat_ug_vxw.dvi): Likewise.
30061         (gnat_rm.dvi): Likewise.
30062         (gnat-style.dvi): Likewise.
30063
30064 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
30065
30066         * gigi.h: Missed commit from update for C90.
30067
30068 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
30069
30070         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
30071
30072 2003-10-31  Andreas Schwab  <schwab@suse.de>
30073
30074         * raise.c (get_action_description_for): Fix typo in last change.
30075
30076 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
30077
30078         PR ada/12761
30079         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
30080         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
30081
30082 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
30083
30084         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
30085         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
30086         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
30087         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
30088         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
30089
30090 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
30091
30092         * 3vtrasym.adb:
30093         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
30094         numbers when symbol name is too long.
30095
30096 2003-10-30  Ed Falis  <falis@gnat.com>
30097
30098         * g-signal.ads, g-signal.adb: New files
30099
30100         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
30101
30102         * Makefile.rtl: Introduce GNAT.Signals
30103
30104 2003-10-30  Robert Dewar  <dewar@gnat.com>
30105
30106         * freeze.adb: Minor reformatting
30107
30108         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
30109
30110         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
30111         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
30112         New handling of Id_Check parameter to improve recognition of keywords
30113         used as identifiers.
30114         Update copyright notice to include 2003
30115
30116 2003-10-29  Robert Dewar  <dewar@gnat.com>
30117
30118         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
30119         sem_ch10.adb: Minor reformatting
30120
30121         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
30122         (Expand_Assign_Record): Test right hand side for bit unaligned as well
30123
30124 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
30125
30126         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
30127         Support for TBK$SYMBOLIZE-based symbolic traceback.
30128
30129 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
30130
30131         * exp_disp.adb:
30132         Revert previous change, that did not work well when pragma No_Run_Time
30133         was used in conjunction with a run-time other than ZFP.
30134
30135 2003-10-29  Vincent Celier  <celier@gnat.com>
30136
30137         * make.adb:
30138         (Gnatmake): When there are no Ada mains in attribute Main, disable the
30139          bind and link steps only is switch -z is not used.
30140
30141 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
30142
30143         * Makefile.generic: Remove duplicated setting of CC.
30144
30145         * Makefile.prolog: Set CC to gcc by default, to override make's
30146         default (cc).
30147
30148         * einfo.h: Regenerated.
30149
30150 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
30151
30152         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
30153         current body, after compiling subunit.
30154
30155         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
30156         when in deleted code, because gigi needs properly ordered freeze
30157         actions to annotate types.
30158
30159         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
30160         prevent the premature freezing of record type that contains
30161         subcomponents with a private type that does not yet have a completion.
30162
30163 2003-10-29  Javier Miranda  <miranda@gnat.com>
30164
30165         * sem_ch12.adb:
30166         (Analyze_Package_Instantiation): Check that instances can not be used in
30167         limited with_clauses.
30168
30169         * sem_ch8.adb:
30170         (Analyze_Package_Renaming): Check that limited withed packages cannot
30171         be renamed. Improve text on error messages related to limited
30172         with_clauses.
30173
30174         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
30175
30176         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
30177         Update copyright notice.
30178
30179         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
30180         (Install_Limited_Context_Clauses): New subprogram that isolates all the
30181         checks required for limited context_clauses and installs the limited
30182         view.
30183         (Install_Limited_Withed_Unit): Complete its documentation.
30184         (Analyze_Context): Check that limited with_clauses are only allowed in
30185         package specs.
30186         (Install_Context): Call Install_Limited_Context_Clauses after the
30187         parents have been installed.
30188         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
30189         package as 'From_With_Type'; this mark indicates that the limited view
30190         is installed. Used to check bad usages of limited with_clauses.
30191         (Build_Limited_Views): Do not add shadow entities to the scope's list
30192         of entities. Do not add real entities to the Non_Limited_Views chain.
30193         Improve error notification.
30194         (Remove_Context_Clauses): Remove context clauses in two phases:
30195         limited views first and regular views later (to maintain the
30196         stack model).
30197         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
30198         its visible entities.
30199
30200 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
30201
30202         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
30203         with any type that Is_Fixed_Point_Type.
30204
30205         * sinfo.ads: Fix documentation for Associated_Node attribute.
30206
30207 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
30208
30209         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
30210         both '-gnatc' and '-gnatt' are specified.
30211
30212         * atree.adb (Initialize): Add initialization for Node_Count (set to
30213         zero).
30214
30215 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30216
30217         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
30218         do not consider as Pure.
30219
30220         Part of implementation of function-at-a-time:
30221
30222         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
30223         (tree_transform): Add new argument to build_component_ref.
30224         (tree_transform, case N_Assignment_Statement): Make and return an
30225         EXPR_STMT.
30226         (tree_transform): If result IS_STMT, set flags and return it.
30227         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
30228
30229         * utils2.c (build_simple_component_ref, build_component_ref): Add new
30230         arg, NO_FOLD_P.
30231         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
30232         (build_allocator): Likewise.
30233
30234         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
30235         Add new arg to build_component_ref.
30236         (maybe_unconstrained_array, unchecked_convert): Likewise.
30237
30238         * ada-tree.def (EXPR_STMT): New code.
30239
30240         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
30241
30242         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
30243         build_component_ref calls.
30244
30245         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
30246
30247         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
30248         (build_component_ref): Add new argument, NO_FOLD_P.
30249
30250 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
30251
30252         * Makefile.generic: Add missing substitution on object_deps handling.
30253
30254         PR ada/5909
30255         * Make-lang.in (check-ada): Enable ACATS test suite.
30256
30257 2003-10-27  Robert Dewar  <dewar@gnat.com>
30258
30259         * exp_ch3.adb:
30260         (Freeze_Array_Type): We do not need an initialization routine for types
30261         derived from String or Wide_String. They should be treated the same
30262         as String and Wide_String themselves. This caused problems with the
30263         use of Initialize_Scalars.
30264
30265         * exp_ch5.adb:
30266         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
30267         composites. This allows use of component clauses that are not byte
30268         aligned.
30269
30270         * sem_prag.adb:
30271         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
30272         is an attempt to pack an array of atomic objects.
30273
30274         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
30275
30276 2003-10-27  Pascal Obry  <obry@gnat.com>
30277
30278         * g-dirope.adb:
30279         (Basename): Check for drive letters in a pathname only on DOS based OS.
30280
30281 2003-10-27  Vincent Celier  <celier@gnat.com>
30282
30283         * make.adb:
30284         (Gnatmake): When unable to change dir to the object dir, display the
30285         content of the parent dir of the obj dir, to try to understand why this
30286         happens.
30287
30288 2003-10-27  GNAT Script  <nobody@gnat.com>
30289
30290         * Make-lang.in: Makefile automatically updated
30291
30292 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
30293
30294         * sem_ch12.adb:
30295         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
30296         should not be done in Save/Restore_Scope_Stack, because it is performed
30297         locally.
30298
30299         * sem_ch8.adb:
30300         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
30301         whether use clauses should be removed/restored.
30302
30303         * sem_ch8.ads:
30304         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
30305         whether use clauses should be removed/restored.
30306
30307 2003-10-26  Andreas Jaeger  <aj@suse.de>
30308
30309         * Makefile.in: Remove duplicated lines.
30310
30311 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
30312
30313         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
30314         minimize the differences with ACT tree.
30315
30316         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
30317         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
30318         Gnatvsn.Gnat_Static_Version_String to reduce differences between
30319         ACT and FSF trees.
30320
30321 2003-10-24  Pascal Obry  <obry@gnat.com>
30322
30323         PR ada/12014
30324         * adadecode.c (ostrcpy): New function.
30325         (__gnat_decode): Use ostrcpy of strcpy.
30326         (has_prefix): Set first parameter a const.
30327         (has_suffix): Set first parameter a const.
30328         Update copyright notice. Fix source name in header.
30329         Removes a trailing space.
30330
30331 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
30332
30333         * exp_disp.adb:
30334         Remove the test against being in No_Run_Time_Mode before generating a
30335         call to Register_Tag. It is redundant with the test against the
30336         availability of the function Register_Tag.
30337
30338 2003-10-24  Vincent Celier  <celier@gnat.com>
30339
30340         * g-catiio.adb: (Month_Name): Correct spelling of February
30341
30342         * make.adb: (Mains): New package
30343         (Initialize): Call Mains.Delete
30344         (Gnatmake): Check that each main on the command line is a source of a
30345         project file and, if there are several mains, each of them is a source
30346         of the same project file.
30347         (Gnatmake): When a foreign language is specified in attribute Languages,
30348         no main is specified on the command line and attribute Mains is not
30349         empty, only build the Ada main. If there is no Ada main, just compile
30350         the Ada sources and their closure.
30351         (Gnatmake): If a main is specified on the command line with directory
30352         information, check that the source exists and, if it does, that the path
30353         is the actual path of a source of a project.
30354
30355         * prj-env.adb:
30356         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
30357         Full_Path is True, return the full path instead of the simple file name.
30358         (Project_Of): New function
30359
30360         * prj-env.ads:
30361         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
30362         defaulted to False.
30363         (Project_Of): New function
30364
30365 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
30366
30367         * Makefile.generic:
30368         Ensure objects of main project are always checked and rebuilt if needed.
30369         Set CC to gcc by default.
30370         Prepare new handling of link by creating a global archive (not activated
30371         yet).
30372
30373         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
30374         stringt.h: Update copyright notice. Remove trailing blanks.
30375         Fix source name in header.
30376
30377 2003-10-24  Robert Dewar  <dewar@gnat.com>
30378
30379         * sem_ch12.adb: Minor reformatting
30380
30381         * sem_ch3.adb:
30382         Minor reformatting (including new function return style throughout)
30383
30384         * sem_ch3.ads:
30385         Minor reformatting (including new function return style throughout)
30386
30387 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
30388
30389         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
30390         stringt.h: Update copyright notice. Remove trailing blanks.
30391         Fix source name in header.
30392
30393 2003-10-24  GNAT Script  <nobody@gnat.com>
30394
30395         * Make-lang.in: Makefile automatically updated
30396
30397 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
30398
30399         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
30400         stringt.h: Convert to ISO C90 declarations and definitions.
30401
30402 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
30403
30404         PR ada/11978
30405         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
30406         External_Tag attribute definition clauses.
30407
30408 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
30409
30410         PR ada/7613
30411         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
30412         child unit, generate a fully qualified name to avoid spurious errors
30413         when the context contains renamings of different child units with
30414         the same simple name.
30415
30416         * exp_dbug.ads: Add documentation on name qualification for renamings
30417         of child units.
30418
30419 2003-10-23  Robert Dewar  <dewar@gnat.com>
30420
30421         * g-regpat.ads, g-regpat.adb: Minor reformatting
30422
30423 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
30424
30425         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
30426
30427 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30428
30429         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
30430         Machine call.
30431
30432         * urealp.h: (Machine): Update to proper definition.
30433
30434 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
30435
30436         * init.c, adaint.c: Minor reformatting.
30437
30438 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
30439
30440         * adaint.c (w32_epoch_offset): Define static const at file level.
30441         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
30442         rather than t_create, t_access in call to GetFileTime. Use union
30443         to convert between FILETIME and  unsigned long long.
30444         (__gnat_file_time_name): Test for invalid file handle.
30445         (__gnat_set_filetime_name): Support win32 targets using
30446         w32api SetFileTime.
30447
30448 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
30449
30450         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
30451
30452         * ctrl_c.c (__gnat_int_handler): Remove declaration.
30453
30454         * decl.c (creat_concat_name):  Const-ify prefix.
30455
30456         * adaint.c: Include ctype.h if __MINGW32__.
30457         (__gnat_readlink): Mark arguments as possibly unused.
30458         (__gnat_symlink): Likewise.
30459         (__gnat_is_symbolic_link): Likewise.
30460         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
30461         declaration
30462         (__gnat_file_time_name): Don't declare struct stat statbuf when
30463         not needed.
30464         (__gnat_is_absolute_path): Add parenthesis around condition of
30465         'if' statement to avoid warning.
30466         (__gnat_plist_init): Specify void as parameter.
30467         (plist_enter): Likewise.
30468         (plist_leave): Likewise.
30469         (remove_handle): Make static. Initialize prev.
30470
30471 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
30472
30473         PR ada/10110
30474         * Makefile.in: Disable build of gnatpsta.
30475         * cstreams.c (__gnat_full_name): Minor improvements and clean up
30476         of previous change.
30477
30478 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
30479
30480         * tracebak.c (MAX): Avoid redefinition warning.
30481
30482         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
30483         Change msg to const char *.
30484         (__gnat_install_handler): Remove ss, unused.
30485         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
30486         to const char *.
30487         * cstreams.c (__gnat_full_name): Declare p only when used.
30488         (__gnat_full_name) [sgi] Return buffer.
30489
30490 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
30491
30492         * mingw32.h: New file.
30493         * gnat_wrapper.adb: New file.
30494
30495 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
30496
30497         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
30498         string match a pre compiled regular expression (the corresponding
30499         version of the function working on a raw regular expression)
30500         Fix typos in various comments
30501         Update copyright notice in spec
30502
30503 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
30504
30505         * exp_ch3.adb:
30506         (Component_Needs_Simple_Initialization): Return False when the type is a
30507         packed bit array. Revise spec comments to document this case.
30508
30509         * exp_prag.adb:
30510         (Expand_Pragma_Import): Set any expression on the imported object to
30511         empty to avoid initializing imported objects (in particular this
30512         covers the case of zero-initialization of bit arrays).
30513         Update copyright notice.
30514
30515 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
30516
30517         * sem_ch12.adb:
30518         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
30519         a subunit is missing.
30520         (Instantiate_Subprogram_Body): If body of function is missing, set type
30521         of return expression explicitly in dummy body, to prevent cascaded
30522         errors when a subunit is missing.
30523         Fixes PR 5677.
30524
30525         * sem_ch3.adb:
30526         (Access_Subprogram_Declaration): Verify that return type is valid.
30527         Fixes PR 8693.
30528
30529         * sem_elab.adb:
30530         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
30531         generic.
30532         Fixes PR 12318.
30533
30534         * sem_util.adb:
30535         (Corresponding_Discriminant): If the scope of the discriminant is a
30536         private type without discriminant, use its full view.
30537         Fixes PR 8247.
30538
30539 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
30540
30541         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
30542         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
30543         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
30544         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
30545         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
30546         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
30547         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
30548         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
30549         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
30550         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
30551         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
30552         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
30553         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
30554         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
30555         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
30556         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
30557         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
30558         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
30559         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
30560         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
30561         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
30562         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
30563         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
30564         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
30565         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
30566         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
30567         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
30568         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
30569         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
30570         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
30571         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
30572         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
30573         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
30574         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
30575         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
30576         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
30577         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
30578         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
30579         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
30580         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
30581         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
30582         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
30583         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
30584         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
30585         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
30586         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
30587         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
30588         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
30589         vms_conv.ads, vms_conv.adb, vms_data.ads,
30590         vxaddr2line.adb: Files added. Merge with ACT tree.
30591
30592         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
30593         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
30594         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
30595         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
30596         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
30597         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
30598         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
30599         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
30600         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
30601         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
30602
30603         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
30604         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
30605         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
30606         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
30607         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
30608         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
30609         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
30610         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
30611         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
30612         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
30613         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
30614         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
30615         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
30616         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
30617         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
30618         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
30619         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
30620         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
30621         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
30622         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
30623         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
30624         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
30625         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
30626         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
30627         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
30628         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
30629         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
30630         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
30631         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
30632         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
30633         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
30634         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
30635         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
30636         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
30637         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
30638         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
30639         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
30640         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
30641         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
30642         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
30643         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
30644         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
30645         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
30646         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
30647         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
30648         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
30649         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
30650         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
30651         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
30652         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
30653         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
30654         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
30655         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
30656         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
30657         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
30658         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
30659         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
30660         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
30661         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
30662         checks.adb, checks.ads, cio.c, comperr.adb,
30663         comperr.ads, csets.adb, cstand.adb, cstreams.c,
30664         debug_a.adb, debug_a.ads, debug.adb, decl.c,
30665         einfo.adb, einfo.ads, errout.adb, errout.ads,
30666         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
30667         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
30668         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
30669         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
30670         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
30671         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
30672         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
30673         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
30674         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
30675         fe.h, fmap.adb, fmap.ads, fname.adb,
30676         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
30677         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
30678         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
30679         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
30680         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
30681         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
30682         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
30683         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
30684         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
30685         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
30686         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
30687         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
30688         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
30689         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
30690         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
30691         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
30692         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
30693         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
30694         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
30695         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
30696         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
30697         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
30698         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
30699         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
30700         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
30701         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
30702         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
30703         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
30704         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
30705         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
30706         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
30707         layout.adb, lib.adb, lib.ads, lib-list.adb,
30708         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
30709         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
30710         link.c, live.adb, make.adb, make.ads,
30711         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
30712         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
30713         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
30714         misc.c, mkdir.c, mlib.adb, mlib.ads,
30715         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
30716         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
30717         namet.adb, namet.ads, namet.h, nlists.ads,
30718         nlists.h, nmake.adt, opt.adb, opt.ads,
30719         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
30720         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
30721         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
30722         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
30723         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
30724         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
30725         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
30726         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
30727         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
30728         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
30729         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
30730         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
30731         prj-util.adb, prj-util.ads, raise.c, raise.h,
30732         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
30733         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
30734         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
30735         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
30736         scans.ads, scn.adb, scn.ads, s-crc32.adb,
30737         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
30738         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
30739         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
30740         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
30741         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
30742         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
30743         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
30744         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
30745         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
30746         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
30747         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
30748         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
30749         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
30750         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
30751         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
30752         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
30753         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
30754         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
30755         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
30756         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
30757         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
30758         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
30759         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
30760         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
30761         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
30762         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
30763         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
30764         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
30765         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
30766         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
30767         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
30768         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
30769         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
30770         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
30771         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
30772         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
30773         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
30774         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
30775         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
30776         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
30777         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
30778         stringt.adb, stringt.ads, stringt.h, style.ads,
30779         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
30780         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
30781         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
30782         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
30783         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
30784         table.adb, table.ads, targparm.adb, targparm.ads,
30785         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
30786         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
30787         ttypes.ads, types.ads, types.h, uintp.adb,
30788         uintp.ads, uintp.h, uname.adb, urealp.adb,
30789         urealp.ads, urealp.h, usage.adb, utils2.c,
30790         utils.c, validsw.adb, validsw.ads, widechar.adb,
30791         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
30792         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
30793         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
30794         gnatvsn.ads: Merge with ACT tree.
30795
30796         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
30797
30798 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
30799
30800         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
30801         (gnat_ug_vmx.info): Likewise.
30802         (gnat_ug_vxw.info): Likewise.
30803         (gnat_ug_wnt.info): Likewise.
30804         (gnat_rm.info): Likewise.
30805         (gnat-style.info): Likewise.
30806
30807         * Make-lang.in (ada.install-info): Remove target.
30808         (info): New target.
30809         (install-info): Likewise.
30810         (gnat_ug_unx.info): Simplify rule.
30811         (gnat_ug_vmx.info): Likewise.
30812         (gnat_ug_vxw.info): Likewise.
30813         (gnat_ug_wnt.info): Likewise.
30814         (gnat_rm.info): Likewise.
30815         (gnat-style.info): Likewise.
30816
30817 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
30818
30819         * Make-lang.in: Replace uses of $(target_alias) with
30820         $(target_noncanonical).
30821         * ada/Makefile.in: Remove unused mention of $(target_alias).
30822
30823 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
30824
30825         * Make-lang.in (ada.info): Replace with ...
30826         (info): ... this.
30827         (ada.dvi): Replace with ...
30828         (dvi): ... this.
30829
30830 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
30831
30832         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
30833         initialize dconstp5 and dconstmp5.
30834
30835 2003-09-28  Richard Henderson  <rth@redhat.com>
30836
30837         * trans.c (tree_transform): Update call to expand_asm_operands.
30838
30839 2003-09-21  Richard Henderson  <rth@redhat.com>
30840
30841         * trans.c, utils.c: Revert.
30842
30843 2003-09-21  Richard Henderson  <rth@redhat.com>
30844
30845         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
30846         change to const.
30847
30848 2003-09-04  Michael Matz  <matz@suse.de>
30849
30850         * misc.c: Include "target.h".
30851         * Make-lang.in (misc.o): Add dependency on target.h.
30852
30853 2003-09-03  DJ Delorie  <dj@redhat.com>
30854
30855         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
30856         hook.
30857
30858 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
30859
30860         * Makefile.in: Update substitutions to match changes to
30861         configure.  Use include directives instead of @-insertions
30862         to read in host and target fragments.  Add a rule to
30863         regenerate ada/Makefile.
30864
30865 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
30866
30867         * lang-options.h: Remove.
30868         * lang.opt: Add help text.
30869
30870 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
30871
30872         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
30873         calls.
30874
30875 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
30876
30877         * misc.c (gnat_handle_option): Don't handle filenames.
30878
30879 2003-07-04  H.J. Lu <hongjiu.lu@intel.com>
30880
30881         * Make-lang.in: Replace PWD with PWD_COMMAND.
30882         * Makefile.adalib: Likewise.
30883         * Makefile.in: Likewise.
30884
30885 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
30886
30887         * misc.c (gnat_argv): Revert last change.
30888         (gnat_handle_option, gnat_init_options): Copy arguments.
30889
30890 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
30891
30892         * misc.c (gnat_argv): Make const.
30893
30894 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
30895
30896         * misc.c (save_argc, save_argv): Keep non-static!
30897
30898 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
30899
30900         * misc.c (save_argc, save_argv): Make static.
30901         (gnat_init_options): New prototype.
30902         (gnat_init_options): Update.
30903
30904 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
30905
30906         * gnat_ug.texi: Remove unlikely characters from @vars.
30907         * gnat_ug_vms.texi: Regenerate.
30908
30909 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
30910
30911         * misc.c (record_code_position): Adjust emit_note call.
30912
30913 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
30914
30915         * misc.c (gnat_handle_option): Don't check for missing arguments.
30916
30917 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
30918
30919         * utils.c (end_subprog_body): Adjust expand_function_end call.
30920
30921 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
30922
30923         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
30924         Bind_Main_Program.
30925
30926 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
30927
30928         * lang.opt: Declare Ada.
30929         * misc.c (gnat_init_options): Update.
30930
30931 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
30932
30933         * utils.c (begin_subprog_body): Adjust init_function_start call.
30934
30935 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
30936
30937         * Make-lang.in: Update to use options.c and options.h.
30938         * misc.c: Include options.h not aoptions.h.
30939         (gnat_handle_option): Abort on unrecognized switch.
30940         (gnat_init_options): Request Ada switches.
30941
30942 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
30943
30944         * lang.opt: Add -Wall.
30945         * misc.c (gnat_handle_option): Handle it.
30946
30947 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
30948
30949         * misc.c (gnat_handle_option): Fix warnings.
30950
30951 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
30952
30953         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
30954
30955 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
30956
30957         * Make-lang.in: Update to handle command-line options.
30958         * lang.opt: New file.
30959         * misc.c: Include aoptions.h.
30960         (cl_options_count, cl_options): Remove.
30961         (gnat_handle_option): New.
30962         (gnat_decode_option): Remove.
30963         (LANG_HOOKS_DECODE_OPTION): Remove.
30964         (LANG_HOOKS_HANDLE_OPTION): Override.
30965
30966 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
30967
30968         * init.c, misc.c, trans.c, utils.c: Remove dead code.
30969
30970 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
30971
30972         * Makefile.in: Replace "host_canonical" with "host" for autoconf
30973         substitution.
30974
30975 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
30976
30977         * Make-lang.in: Update.
30978         * misc.c: Include opts.h. Define cl_options_count and cl_options.
30979
30980 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
30981
30982         * misc.c (gnat_init_options): Update.
30983
30984 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
30985
30986         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
30987         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
30988         __attribute__ ((__unused__)).
30989
30990 2003-06-05  Jan Hubicka  <jh@suse.cz>
30991
30992         * Make-lang.in:  Add support for stageprofile and stagefeedback
30993
30994 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
30995
30996         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
30997         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
30998
30999 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
31000
31001         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
31002         Remove non-VMS directive.
31003         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
31004         alternatives.
31005         (Examples of gnatls Usage): Remove VMS alternative.
31006
31007 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
31008
31009         PR ada/9953
31010         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
31011         and turn ZCX_By_Default back to False since the underlying support
31012         is not quite there yet.
31013
31014 2003-06-01  Andreas Jaeger  <aj@suse.de>
31015
31016         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
31017         and ROUND_TYPE_SIZE_UNIT.
31018
31019 2003-05-22   Geert Bosch <bosch@gnat.com>
31020
31021         * gnat_rm.texi : Remove reference to Ada Core Technologies.
31022
31023 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
31024
31025         * trans.c (tree_transform): Use location_t and input_location
31026         directly.
31027         (build_unit_elab): Likewise.
31028         * utils.c (create_label_decl): Likewise.
31029
31030 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
31031
31032         * trans.c (tree_transform, build_unit_elab,
31033         set_lineno): Rename lineno to input_line.
31034         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
31035         end_subprog_body): Likewise.
31036         * utils2.c (build_call_raise): Likewise.
31037
31038 2003-05-01  Laurent Guerby <guerby@acm.org>
31039
31040         PR ada/10546
31041         * 5iosinte.ads: Increase pthread_cond_t size to match recent
31042         LinuxThread and NPTL version, merge from ACT.
31043
31044 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
31045
31046         * utils.c (convert): No need to clear TREE_CST_RTL.
31047
31048 2003-04-23   Geert Bosch <bosch@gnat.com>
31049
31050         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
31051         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
31052         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
31053         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
31054         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
31055         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
31056         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
31057         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
31058         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
31059         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
31060         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
31061         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
31062         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
31063         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
31064         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
31065         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
31066         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
31067         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
31068         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
31069         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
31070         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
31071         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
31072         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
31073         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
31074         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
31075         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
31076         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
31077         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
31078         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
31079         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
31080         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
31081         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
31082         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
31083         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
31084         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
31085         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
31086         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
31087         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
31088         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
31089         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
31090         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
31091         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
31092         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
31093         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
31094         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
31095         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
31096         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
31097         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
31098         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
31099         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
31100         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
31101         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
31102         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
31103         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
31104         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
31105         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
31106         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
31107         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
31108         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
31109         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
31110         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
31111         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
31112         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
31113         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
31114         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
31115         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
31116         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
31117         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
31118         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
31119         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
31120         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
31121         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
31122         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
31123         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
31124         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
31125         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
31126         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
31127         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
31128         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
31129         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
31130         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
31131         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
31132         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
31133         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
31134         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
31135         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
31136         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
31137         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
31138         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
31139         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
31140         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
31141         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
31142         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
31143         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
31144         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
31145         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
31146         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
31147         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
31148         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
31149         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
31150         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
31151         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
31152         ali.adb, ali.ads, alloc.ads, argv.c,
31153         atree.adb, atree.ads, atree.h, aux-io.c,
31154         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
31155         binde.adb, binde.ads, binderr.adb, binderr.ads,
31156         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
31157         butil.adb, butil.ads, cal.c, calendar.ads,
31158         casing.adb, casing.ads, ceinfo.adb, checks.adb,
31159         checks.ads, cio.c, comperr.adb, comperr.ads,
31160         config-lang.in, csets.adb, csets.ads, csinfo.adb,
31161         cstand.adb, cstand.ads, cuintp.c, debug.adb,
31162         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
31163         dec-io.ads, dec.ads, deftarg.c, directio.ads,
31164         einfo.adb, einfo.ads, elists.adb, elists.ads,
31165         elists.h, errno.c, errout.adb, errout.ads,
31166         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
31167         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
31168         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
31169         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
31170         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
31171         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
31172         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
31173         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
31174         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
31175         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
31176         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
31177         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
31178         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
31179         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
31180         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
31181         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
31182         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
31183         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
31184         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
31185         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
31186         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
31187         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
31188         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
31189         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
31190         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
31191         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
31192         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
31193         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
31194         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
31195         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
31196         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
31197         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
31198         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
31199         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
31200         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
31201         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
31202         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
31203         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
31204         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
31205         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
31206         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
31207         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
31208         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
31209         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
31210         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
31211         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
31212         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
31213         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
31214         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
31215         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
31216         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
31217         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
31218         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
31219         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
31220         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
31221         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
31222         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
31223         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
31224         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
31225         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
31226         lib.adb, lib.ads, live.adb, live.ads,
31227         machcode.ads, make.adb, make.ads, makeusg.adb,
31228         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
31229         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
31230         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
31231         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
31232         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
31233         mlib.ads, namet.adb, namet.ads, nlists.adb,
31234         nlists.ads, opt.adb, opt.ads, osint-b.adb,
31235         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
31236         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
31237         osint.ads, output.adb, output.ads, par-ch10.adb,
31238         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
31239         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
31240         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
31241         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
31242         par-tchk.adb, par-util.adb, par.adb, par.ads,
31243         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
31244         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
31245         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
31246         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
31247         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
31248         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
31249         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
31250         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
31251         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
31252         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
31253         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
31254         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
31255         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
31256         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
31257         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
31258         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
31259         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
31260         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
31261         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
31262         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
31263         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
31264         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
31265         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
31266         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
31267         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
31268         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
31269         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
31270         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
31271         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
31272         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
31273         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
31274         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
31275         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
31276         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
31277         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
31278         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
31279         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
31280         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
31281         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
31282         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
31283         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
31284         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
31285         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
31286         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
31287         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
31288         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
31289         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
31290         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
31291         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
31292         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
31293         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
31294         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
31295         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
31296         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
31297         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
31298         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
31299         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
31300         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
31301         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
31302         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
31303         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
31304         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
31305         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
31306         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
31307         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
31308         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
31309         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
31310         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
31311         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
31312         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
31313         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
31314         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
31315         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
31316         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
31317         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
31318         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
31319         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
31320         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
31321         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
31322         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
31323         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
31324         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
31325         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
31326         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
31327         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
31328         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
31329         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
31330         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
31331         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
31332         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
31333         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
31334         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
31335         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
31336         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
31337         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
31338         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
31339         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
31340         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
31341         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
31342         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
31343         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
31344         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
31345         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
31346         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
31347         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
31348         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
31349         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
31350         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
31351         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
31352         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
31353         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
31354         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
31355         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
31356         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
31357         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
31358         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
31359         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
31360         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
31361         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
31362         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
31363         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
31364         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
31365         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
31366         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
31367         snames.ads, sprint.adb, sprint.ads, stand.adb,
31368         stand.ads, stringt.adb, stringt.ads, style.adb,
31369         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
31370         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
31371         switch-m.ads, switch.adb, switch.ads, system.ads,
31372         table.adb, table.ads, targparm.adb, targparm.ads,
31373         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
31374         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
31375         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
31376         ttypef.ads, ttypes.ads, types.adb, types.ads,
31377         uintp.adb, uintp.ads, uname.adb, uname.ads,
31378         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
31379         usage.adb, usage.ads, validsw.adb, validsw.ads,
31380         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
31381         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
31382         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
31383         formatting and other trivial changes from ACT.
31384
31385 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
31386
31387         * gigi.h, utils2.c (build_constructor):
31388         Rename gnat_build_constructor. Use build_constructor.
31389         * decl.c (gnat_to_gnu_entity)
31390         * trans.c (tree_transform, pos_to_constructor, extract_values)
31391         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
31392         (unchecked_convert)
31393         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
31394         (fill_vms_descriptor):
31395         Update to match.
31396
31397 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
31398
31399         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
31400         * misc.c (gnat_tree_size): New function.
31401         (LANG_HOOKS_TREE_SIZE): Override.
31402
31403 2003-04-03  Jason Merrill  <jason@redhat.com>
31404
31405         * misc.c (gnat_adjust_rli): #if 0.
31406
31407 2003-03-31   Geert Bosch <bosch@gnat.com>
31408
31409         PR ada/10020
31410         * link.c : Fix misspelled "const" keyword
31411
31412 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
31413
31414         PR c++/7086
31415         * utils2.c: Adjust calls to put_var_into_stack.
31416
31417 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
31418
31419         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
31420
31421 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
31422
31423         * misc.c (gnat_init): Update for new prototype.
31424
31425 2003-03-05  Olivier Hainque  <hainque@gnat.com>
31426
31427         ada/9961
31428         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
31429         warning, and fix return type for the IN_RTS && !SJLJ case.
31430
31431 2003-03-04  Tom Tromey  <tromey@redhat.com>
31432
31433         * Make-lang.in (ada.tags): New target.
31434
31435 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
31436
31437         ada/9911
31438         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
31439         wrapper, which name remains constant whatever underlying GCC
31440         scheme.
31441
31442         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
31443         the stable interface needed for a-except.
31444
31445 2003-03-02  Andreas Jaeger  <aj@suse.de>
31446
31447         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
31448         gnat_ug_wnt.texi: Regenerate.
31449
31450 2003-03-02  Laurent Guerby <guerby@acm.org>
31451
31452         * Makefile.in (install-gnatlib): Match previous change there
31453         so it works.
31454
31455 2003-02-28  Andreas Schwab  <schwab@suse.de>
31456
31457         * Make-lang.in (install-gnatlib): Change to ada directory before
31458         running make instead of using ada/Makefile directly.
31459
31460 2003-02-18  Ben Elliston  <bje@redhat.com>
31461
31462         Part of PR ada/9406
31463         * gnat_ug.texi (Binder output file): Grammar fix.
31464
31465 2003-02-18  Ben Elliston  <bje@redhat.com>
31466
31467         PR other/7350
31468         * 5qtaprop.adb (Sleep): Fix typo in comment.
31469
31470 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
31471
31472         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
31473         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
31474         gnat_ug_wnt.texi: Regenerate.
31475
31476 2003-02-03  Christian Cornelssen <ccorn@cs.tu-berlin.de>
31477
31478         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
31479         be created if necessary.
31480         (ada.install-common): Let $(DESTDIR)$(bindir) be created
31481         if necessary.  Remove erroneous and redundant gnatchop
31482         installation commands.  Test for gnatdll before attempting
31483         to install it.
31484         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
31485         and gnatdll from all plausible locations.
31486
31487 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
31488
31489         * utils2.c (build_unary_op): Don't check flag_volatile.
31490         * gnat_ug.texi: Remove -fvolatile from example.
31491         * gnat_ug_vxw.texi: Likewise.
31492
31493 2003-01-29  Laurent Guerby <guerby@acm.org>
31494
31495         PR ada/8344
31496         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
31497         * Makefile.in: match previous change.
31498         * Make-lang.in: match previous change.
31499
31500 2003-01-29      Joel Sherrill <joel@OARcorp.com>
31501
31502         * 5rosinte.ads: Add SIGXCPU.
31503         * 5rtpopsp.adb: New file.
31504         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
31505         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
31506         specific file 5rtpopsp.adb.
31507         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
31508         is likely needed for all newlib targets.
31509         * init.c: Add RTEMS specific version of __gnat_initialize().
31510
31511 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31512
31513         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
31514
31515 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31516
31517         * init.c (__gnat_error_handler): Make msg const.
31518
31519         * gmem.c (convert_addresses): Move declaration ...
31520         * adaint.h: ... here.
31521         * adaint.c (convert_addresses): Adapt addrs type to match
31522         prototype.
31523
31524         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
31525
31526 2003-01-24  Andreas Schwab  <schwab@suse.de>
31527
31528         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
31529         size_t to avoid warning.
31530
31531 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
31532
31533         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
31534
31535 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
31536
31537         * gnat_rm.texi: Remove RCS version number.
31538
31539         * ada-tree.h (union lang_tree_node): Add chain_next option.
31540
31541 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
31542
31543         * Make-lang.in (ada.install-info, ada.install-common,
31544         ada.uninstall): Prepend $(DESTDIR) to the destination
31545         directory in all (un)installation commands.
31546         * Makefile.in (install-gnatlib, install-rts): Ditto.
31547
31548 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
31549
31550         * gnat_rm.texi, gnat_ug.texi: Use @copying.
31551         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
31552         gnat_ug_wnt.texi: Regenerate.
31553
31554 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
31555
31556         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
31557         only.
31558         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
31559         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
31560         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
31561         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
31562         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
31563         $(srcdir)/doc/include/gcc-common.texi.
31564
31565 2002-12-15   Geert Bosch <bosch@gnat.com>
31566
31567         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
31568
31569 2002-12-14   Geert Bosch <bosch@gnat.com>
31570
31571         PR ada/5690
31572         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
31573         case of a body created for a Renaming_As_Body, on which
31574         conformance checks are not performed.
31575
31576 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
31577
31578         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
31579         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
31580         not already included.
31581         * Make-lang.in: Update dependencies.
31582
31583 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
31584         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
31585         solution to buffer overflow bug on GNU/Linux.
31586
31587 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
31588
31589         PR ada/5856
31590         PR ada/6919
31591         * bindgen.adb: Remove all references to Public_Version.
31592         * comperr.adb: Remove all references to Public_Version and
31593         GNATPRO_Version; correct bug reporting instructions.
31594         * comperr.ads: Change to match bug box.
31595         * gnatvsn.ads: Remove all references to Public version and
31596         GNATPRO version.
31597
31598 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
31599
31600         PR ada/6919
31601         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
31602         GNU/Linux.
31603
31604         PR ada/6558
31605         * config-lang.in: Remove diff_excludes.
31606
31607 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
31608
31609         PR ada/8358
31610         * trans.c (gnu_pending_elaboration_lists): New GC root.
31611         (build_unit_elab): Use..
31612
31613 2002-10-30   Geert Bosch <bosch@gnat.com>
31614
31615         PR ada/6558
31616         * misc.c : Include optabs.h
31617
31618         * Make-lang.in (misc.o): Add dependency on optabs.h
31619
31620 2002-10-29   Geert Bosch <bosch@gnat.com>
31621
31622         PR ada/6558
31623         * Make-lang.in (gnatbind): Depend on CONFIG_H
31624
31625 2002-10-29  Geert bosch  <bosch@gnat.com>
31626
31627         PR ada/6558
31628         * misc.c: Unrevert misc.c (1.13)
31629
31630 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
31631
31632         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
31633         maintainership comments.
31634
31635 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
31636
31637         PR ada/5904
31638         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
31639         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
31640         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
31641         7staprop.adb: Correct statements in comments about
31642         maintainership of GNAT.
31643
31644         PR ada/5904
31645         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
31646         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
31647         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
31648         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
31649         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
31650         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
31651         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
31652         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
31653         comments about maintainership of GNAT.
31654
31655         PR ada/6919 (forward port of patch for PR ada/5904)
31656         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
31657         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
31658         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
31659         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
31660         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
31661         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
31662         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
31663         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
31664         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
31665         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
31666         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
31667         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
31668         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
31669         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
31670         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
31671         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
31672         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
31673         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
31674         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
31675         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
31676         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
31677         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
31678         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
31679         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
31680         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
31681         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
31682         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
31683         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
31684         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
31685         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
31686         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
31687         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
31688         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
31689         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
31690         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
31691         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
31692         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
31693         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
31694         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
31695         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
31696         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
31697         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
31698         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
31699         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
31700         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
31701         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
31702         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
31703         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
31704         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
31705         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
31706         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
31707         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
31708         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
31709         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
31710         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
31711         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
31712         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
31713         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
31714         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
31715         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
31716         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
31717         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
31718         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
31719         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
31720         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
31721         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
31722         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
31723         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
31724         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
31725         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
31726         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
31727         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
31728         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
31729         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
31730         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
31731         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
31732         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
31733         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
31734         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
31735         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
31736         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
31737         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
31738         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
31739         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
31740         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
31741         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
31742         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
31743         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
31744         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
31745         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
31746         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
31747         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
31748         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
31749         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
31750         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
31751         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
31752         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
31753         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
31754         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
31755         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
31756         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
31757         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
31758         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
31759         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
31760         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
31761         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
31762         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
31763         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
31764         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
31765         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
31766         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
31767         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
31768         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
31769         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
31770         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
31771         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
31772         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
31773         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
31774         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
31775         par-endh.adb par-labl.adb par-load.adb par-prag.adb
31776         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
31777         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
31778         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
31779         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
31780         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
31781         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
31782         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
31783         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
31784         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
31785         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
31786         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
31787         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
31788         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
31789         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
31790         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
31791         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
31792         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
31793         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
31794         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
31795         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
31796         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
31797         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
31798         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
31799         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
31800         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
31801         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
31802         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
31803         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
31804         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
31805         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
31806         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
31807         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
31808         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
31809         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
31810         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
31811         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
31812         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
31813         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
31814         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
31815         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
31816         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
31817         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
31818         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
31819         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
31820         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
31821         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
31822         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
31823         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
31824         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
31825         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
31826         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
31827         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
31828         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
31829         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
31830         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
31831         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
31832         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
31833         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
31834         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
31835         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
31836         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
31837         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
31838         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
31839         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
31840         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
31841         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
31842         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
31843         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
31844         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
31845         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
31846         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
31847         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
31848         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
31849         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
31850         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
31851         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
31852         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
31853         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
31854         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
31855         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
31856         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
31857         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
31858         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
31859         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
31860         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
31861         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
31862         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
31863         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
31864         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
31865         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
31866         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
31867         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
31868         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
31869         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
31870         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
31871         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
31872         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
31873         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
31874         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
31875         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
31876         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
31877         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
31878         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
31879         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
31880         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
31881         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
31882         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
31883         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
31884         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
31885         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
31886         stringt.ads stringt.h style.adb style.ads stylesw.adb
31887         stylesw.ads switch.adb switch.ads sysdep.c system.ads
31888         table.adb table.ads targparm.adb targparm.ads targtyps.c
31889         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
31890         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
31891         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
31892         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
31893         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
31894         usage.ads utils.c utils2.c validsw.adb validsw.ads
31895         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
31896         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
31897         xtreeprs.adb: Correct statements in comments about maintainership
31898         of GNAT.
31899
31900 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
31901
31902         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
31903         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
31904         * gnatvsn.ads: Gnat_Version_String is now a function.
31905         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
31906         copy the C version_string into a String and return it.
31907         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
31908         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
31909         Remove pragma Ident (Gnat_Version_String).  If this was the
31910         sole use of package Gnatvsn, remove the with statement too.
31911         * gnat1drv.adb: Tweak -gnatv output.
31912
31913 2002-09-17  Richard Henderson  <rth@redhat.com>
31914
31915         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
31916         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
31917         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
31918         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
31919         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
31920         and real_2expN instead of a loop.
31921         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
31922         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
31923
31924 2002-08-25  Andre Leis <a.leis@gmx.net>
31925             David Billinghurst (David.Billinghurst@riotinto.com>
31926
31927         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
31928
31929 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31930
31931         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
31932         Remove $(CONFIG_H) dependency.
31933
31934 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
31935
31936         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
31937
31938 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31939
31940         * adadecode.c (ada_demangle): Use xstrdup in lieu of
31941         xmalloc/strcpy.
31942         * misc.c (gnat_decode_option): Likewise.
31943
31944 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
31945
31946         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
31947         function approach did not work well because of a side effect (the
31948         function call could reallocate the table which was being indexed
31949         using its result). Fixes ada/4851. [RESURRECTED]
31950
31951 2002-07-01  Roger Sayle  <roger@eyesopen.com>
31952
31953         * ada/utils.c (builtin_function): Accept an additional parameter.
31954
31955 2002-06-28  Andreas Jaeger  <aj@suse.de>
31956
31957         PR ada/7144
31958         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
31959         <adi@thur.de>.
31960
31961 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31962
31963         * Makefile.in (SHELL): Set to @SHELL@.
31964
31965 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31966
31967         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
31968         array size calculation.
31969
31970 2002-06-04  Andreas Jaeger  <aj@suse.de>
31971
31972         * Make-lang.in (gnatbind): Readd rule that has been lost in last
31973         patch.
31974
31975 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
31976
31977         Merge from pch-branch:
31978
31979         * config-lang.in (gtfiles): Add ada-tree.h.
31980         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
31981         (SET_TYPE_MODULUS): New.
31982         (SET_TYPE_INDEX): New.
31983         (SET_TYPE_DIGITS_VALUE): New.
31984         (SET_TYPE_RM_SIZE): New.
31985         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
31986         (SET_TYPE_ADA_SIZE): New.
31987         (SET_TYPE_ACTUAL_BOUNDS): New.
31988         (SET_DECL_CONST_CORRESPONDING_VAR): New.
31989         (SET_DECL_ORIGINAL_FIELD): New.
31990         (TREE_LOOP_ID): Correct typo.
31991         * decl.c: Use new macros.
31992         * utils.c: Include debug.h, use new macros.
31993         * utils2.c: Use new macros.
31994
31995         * ada-tree.h: Update all macros for new tree description.
31996         (struct tree_loop_id): New.
31997         (union lang_tree_node): New.
31998         (struct lang_decl): New.
31999         (struct lang_type): New.
32000         * misc.c (gnat_mark_tree): Delete.
32001         (LANG_HOOKS_MARK_TREE): Delete.
32002         * trans.c (tree_transform): No longer any need to cast
32003         for TREE_LOOP_ID.
32004
32005         * utils.c (struct language_function): New dummy structure.
32006
32007         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
32008         (misc.o): Likewise.
32009         (utils.o): Likewise; also gtype-ada.h.
32010         * Make-lang.in (gnat1): Add dependency on s-gtype.
32011         (gnatbind): Add dependency on $(CONFIG_H).
32012         * utils.c: Correct last #include.
32013         (stuct e_stack): Remove unnecessary 'static'.
32014         (mark_e_stack): Remove unused prototype.
32015
32016         * scn-nlit.adb: Remove whitespace after version number to
32017         keep lines under 80 chars.
32018         * snames.adb: Likewise.
32019         * treepr.ads: Likewise.
32020
32021         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
32022         (misc.o): Likewise.
32023         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
32024         * config-lang.in (gtfiles): New.
32025         * decl.c: Use gengtype for roots.
32026         * gigi.h: Use gengtype for roots.
32027         * trans.c: Use gengtype for roots.
32028         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
32029
32030 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
32031
32032         * misc.c (gnat_init): Adjust setting of internal_error_function.
32033
32034 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
32035
32036         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
32037         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
32038         gnat_ug_wnt.texi: Regenerate.
32039
32040 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
32041
32042         * 5ntaprop.adb (with System.OS_Primitives): Remove.
32043
32044         * cstreams.c (max_path_len): Move from here ...
32045         * adaint.c (__gnat_max_path_len): ... to here.
32046         * adaint.c (__gnat_max_path_len): Declare.
32047         * g-dirope.adb (Max_Path): Adjust.
32048         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
32049         * i-cstrea.ads (max_path_len): Adjust.
32050         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
32051         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
32052
32053         * Makefile.in, Make-lang.in: Documentation is now built in
32054         Make-lang.in.  Store Info and generated Texinfo files in the
32055         source directory.
32056         * gnat_ug.texi: Remove CVS keywords, correct version number.
32057         Set file name correctly.
32058
32059         * gnat_ug_*.texi: Add.
32060         * .cvsignore: Ignore generated Texinfo files.
32061
32062 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
32063
32064         * ada.h: Add MI guard macro.
32065         (SUBTYPE): Define constants with an anonymous enum, not static
32066         const variables.
32067         (IN): Cast constants to appropriate type before use.
32068
32069 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
32070
32071         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
32072         (experimental)".
32073
32074 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32075
32076         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
32077         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
32078         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
32079         (ALL_ADA_CFLAGS): Likewise.
32080         (ADA_INCLUDES): Likewise.
32081         Adapt for new working dir.
32082         (GNATBIND): Use Makefile.in version.
32083         (.SUFFIXES): Copy from Makefile.in.
32084         (ada-warn): Define.
32085         (.adb.o, .ads.o): Copy from Makefile.in.
32086         Added $(OUTPUT_OPTION).
32087         (GNAT1_C_OBJS): Moved from Makefile.in.
32088         Prefix with ada subdir.
32089         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
32090         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
32091         Adapt for new working dir.
32092         (EXTRA_GNATBIND_OBJS): Likewise.
32093         (ADA_BACKEND): Moved from Makefile.in.
32094         Renamed to avoid conflict with global BACKEND.
32095         Use that one.
32096         (TARGET_ADA_SRCS): Moved from Makefile.in.
32097         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
32098         Use ADA_BACKEND.
32099         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
32100         (ada_extra_files): Moved from Makefile.in.
32101         Prefix with ada subdir.
32102         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
32103         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
32104         (ada/nmake.ads): Likewise.
32105         (update-sources): Moved from Makefile.in.
32106         Prefix with ada subdir.
32107         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
32108         (ADA_TREE_H): Likewise.
32109         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
32110         (ada/memtrack.o): Likewise.
32111         (ada/adadecode.o): Likewise.
32112         Update dependencies.
32113         (ada/adaint.o): New.
32114         (ada/argv.o): Moved from Makefile.in.
32115         Prefix with ada subdir.
32116         Update dependencies.
32117         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
32118         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
32119         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
32120         Prefix with ada subdir.
32121         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
32122         (GNAT DEPENDENCIES): Regenerate.
32123         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
32124         toplevel Makefile.in.
32125         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
32126         (TARGET_ADA_SRCS): Removed.
32127         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
32128         (GNATBIND_OBJS): Likewise.
32129         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
32130         (BACKEND): Removed.
32131         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
32132         (TREE_H): Likewise.
32133         (ada_extra_files): Likewise.
32134         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
32135         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
32136         (update-sources): Likewise.
32137         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
32138         (ADA_TREE_H): Likewise.
32139         (adadecoce.o): Likewise.
32140         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
32141         (GNAT DEPENDENCIES): Likewise.
32142
32143 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32144
32145         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
32146         * Makefile.in: Likewise.
32147
32148 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32149
32150         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
32151         Restore $(CONFIG_H) and prefix.o dependencies.
32152         (ada.stage[1-4]): Depend on stage?-start.
32153
32154         * Makefile.in (b_gnatb.c): Depend on interfac.o.
32155
32156 2002-05-02  Jim Wilson  <wilson@redhat.com>
32157
32158         * utils.c (finish_record_type): Change record_size to record_type.
32159
32160 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
32161
32162         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
32163         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
32164         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
32165
32166 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
32167
32168         * misc.c (gnat_parse_file): Update.
32169
32170 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
32171
32172         * misc.c (gnat_init): Don't set lang_attribute_common.
32173
32174 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
32175
32176         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
32177
32178 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
32179
32180         * gnat_ug.texi: New file.
32181
32182         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
32183         instead of gfdl.texi
32184
32185         * xgnatug.adb, ug_words: New files.
32186
32187         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
32188         gnat_rm and gnat-style manuals.
32189
32190 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
32191
32192         * gigi.h (incomplete_type_error): Remove.
32193         * utils.c (incomplete_type_error): Remove.
32194
32195 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
32196
32197         * trans.c (tree_transform): Add has_scope argument to
32198         expand_start_stmt_expr.
32199
32200 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
32201
32202         * gigi.h (truthvalue_conversion): Rename.
32203         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
32204         * trans.c (tree_transform): Update.
32205         * utils2.c (truthvalue_conversion): Rename, update.
32206         (build_binary_op, build_unary_op): Update.
32207
32208 2002-04-04  Laurent Guerby  <guerby@acm.org>
32209
32210         * make.adb: Implement -margs, remove restriction about file name placement.
32211         * makeusg.adb: Documentation update.
32212         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
32213         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
32214
32215 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
32216
32217         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
32218         (builtin_function): Similarly.
32219
32220 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
32221
32222         * decl.c (gnat_to_gnu_entity): Update.
32223         * gigi.h (mark_addressable): Rename.
32224         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
32225         * trans.c (tree_transform): Update.
32226         * utils.c (create_var_decl): Update.
32227         * util2.c (build_binary_op, build_unary_op,
32228         fill_vms_descriptor): Update.
32229         (mark_addressable): Rename, update.
32230
32231 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
32232
32233         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
32234         Rename.
32235         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
32236         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
32237         * trans.c (tree_transform, convert_with_check): Update.
32238         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
32239         Rename.
32240
32241 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
32242
32243         * gigi.h (finish_incomplete_decl): Rename.
32244         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
32245         * utils.c (gnat_init_decl_processing): Don't set hook.
32246         (finish_incomplete_decl): Rename.
32247
32248 2002-03-29  Andreas Schwab  <schwab@suse.de>
32249
32250         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
32251         directory.
32252
32253 2001-03-28  Robert Dewar <dewar@gnat.com>
32254
32255         * checks.ads:
32256         (Remove_Checks): New procedure
32257
32258         * checks.adb:
32259         (Remove_Checks): New procedure
32260
32261         * exp_util.adb:
32262         Use new Duplicate_Subexpr functions
32263         (Duplicate_Subexpr_No_Checks): New procedure
32264         (Duplicate_Subexpr_No_Checks_Orig): New procedure
32265         (Duplicate_Subexpr): Restore original form (checks duplicated)
32266         (Duplicate_Subexpr): Call Remove_Checks
32267
32268         * exp_util.ads:
32269         (Duplicate_Subexpr_No_Checks): New procedure
32270         (Duplicate_Subexpr_No_Checks_Orig): New procedure
32271         Add 2002 to copyright notice
32272
32273         * sem_util.adb: Use new Duplicate_Subexpr functions
32274
32275         * sem_eval.adb:
32276         (Eval_Indexed_Component): This is the place to call
32277         Constant_Array_Ref and to replace the value. We simply merge
32278         the code of this function in here, since it is now no longer
32279         used elsewhere. This fixes the problem of the back end not
32280         realizing we were clever enough to see that this was
32281         constant.
32282         (Expr_Val): Remove call to Constant_Array_Ref
32283         (Expr_Rep_Val): Remove call to Constant_Array_Ref
32284         Minor reformatting
32285         (Constant_Array_Ref): Deal with string literals (patch
32286         suggested by Zack Weinberg on the gcc list)
32287
32288 2001-03-28  Ed Schonberg <schonber@gnat.com>
32289
32290         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
32291         Duplicate_Subexpr_Move_Checks.
32292
32293         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
32294         Duplicate_Subexpr_Move_Checks.
32295
32296         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
32297         value of array exists before retrieving it (it may a private
32298         protected component in a function).
32299
32300 2002-03-28   Geert Bosch <bosch@gnat.com>
32301
32302         * prj-pp.adb : New file.
32303
32304         * prj-pp.ads : New file.
32305
32306 2002-03-28  Andreas Jaeger  <aj@suse.de>
32307
32308         * Makefile.in (stamp-sdefault): Fix path for Makefile.
32309
32310 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
32311
32312         * misc.c (gnat_expand_expr): Move prototype.
32313
32314 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
32315
32316         * misc.c (insert_default_attributes): Remove.
32317
32318 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
32319
32320         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
32321         (gnat_init): Don't set hook.
32322         (gnat_expand_expr): Fix prototype.
32323
32324 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
32325
32326         * misc.c (ggc_p): Remove.
32327
32328 2002-03-27  Geert Bosch  <bosch@gnat.com>
32329
32330         * prj-makr.ads, prj-makr.adb : New files.
32331
32332 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
32333
32334         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
32335         (lang_mark_tree): Make static, rename.
32336
32337 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
32338
32339         * misc.c (maybe_build_cleanup): Remove.
32340
32341 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
32342
32343         * gigi.h (yyparse): Remove.
32344
32345 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
32346
32347         * gnat_rm.texi: Sync with ACT version.
32348           (From Ben Brosgol <brosgol@gnat.com>)
32349
32350 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
32351
32352         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
32353         (gnat_init): Remove old hook.
32354
32355 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
32356
32357         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
32358         (yyparse): Rename gnat_parse_file.
32359
32360 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
32361
32362         Delete all lines containing "$Revision:".
32363         * xeinfo.adb: Don't look for revision numbers.
32364         * xnmake.adb: Likewise.
32365         * xsinfo.adb: Likewise.
32366         * xsnames.adb: Likewise.
32367         * xtreeprs.adb: Likewise.
32368
32369 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
32370
32371         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
32372         gnat_tree_code_name): Delete.
32373         (tree_code_type, tree_code_length, tree_code_name): Define.
32374         (gnat_init): Don't try to copy into the various tree_code
32375         arrays.
32376
32377 2002-03-11  Richard Henderson  <rth@redhat.com>
32378
32379         * Makefile.in (.NOTPARALLEL): Add fake tag.
32380
32381 2002-03-07  Geert Bosch  <bosch@gnat.com>
32382
32383         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
32384         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
32385         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
32386         switch-m.adb, switch-m.ads : New files.
32387
32388 2002-03-07  Geert Bosch  <bosch@gnat.com>
32389
32390         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
32391         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
32392         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
32393         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
32394         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
32395         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
32396         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
32397         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
32398         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
32399         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
32400         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
32401         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
32402         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
32403         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
32404         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
32405         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
32406         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
32407         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
32408         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
32409         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
32410         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
32411         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
32412         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
32413         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
32414         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
32415         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
32416         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
32417         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
32418         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
32419         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
32420         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
32421         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
32422         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
32423         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
32424         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
32425         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
32426         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
32427         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
32428         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
32429         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
32430         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
32431         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
32432         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
32433         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
32434         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
32435         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
32436         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
32437         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
32438         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
32439         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
32440         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
32441         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
32442         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
32443         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
32444         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
32445         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
32446         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
32447         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
32448         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
32449         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
32450         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
32451         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
32452         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
32453         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
32454         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
32455         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
32456         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
32457         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
32458         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
32459         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
32460         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
32461         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
32462         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
32463         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
32464         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
32465         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
32466         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
32467         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
32468         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
32469         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
32470         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
32471         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
32472         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
32473         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
32474         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
32475         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
32476         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
32477         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
32478         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
32479         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
32480         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
32481         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
32482         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
32483         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
32484         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
32485         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
32486         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
32487
32488         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
32489         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
32490         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
32491         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
32492
32493         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
32494         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
32495
32496         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
32497         to mdll-fil.ad[bs] and mdll-util.ad[bs]
32498
32499         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
32500         from mdllfile.ad[bs] and mdlltool.ad[bs]
32501
32502 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
32503
32504         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
32505         lieu of explicit sizeof/sizeof.
32506
32507 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
32508
32509         * misc.c (copy_lang_decl): Remove.
32510
32511 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
32512
32513         * misc.c: Delete traditional-mode-related code copied from the
32514         C front end but not used, or used only to permit the compiler
32515         to link.
32516
32517 2002-02-07  Richard Henderson  <rth@redhat.com>
32518
32519         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
32520         * adaint.h (__gnat_to_gm_time): Update prototype.
32521
32522 2002-01-30  Richard Henderson  <rth@redhat.com>
32523
32524         * trans.c (tree_transform) [N_Loop_Statement]: Use
32525         expand_exit_loop_top_cond.
32526
32527 2001-12-23  Richard Henderson  <rth@redhat.com>
32528
32529         * utils.c (end_subprog_body): Push GC context around
32530         rest_of_compilation for nested functions.
32531
32532 2001-12-23  Richard Henderson  <rth@redhat.com>
32533
32534         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
32535
32536 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
32537
32538         * gnat-style.texi (Declarations and Types): Remove ancient style
32539         rule which was mandated by code generation issues.
32540
32541         * gnat-style.texi (header): Add @dircategory, @direntry.
32542         (title page): Remove date.
32543         (general) Add @./@: where approriate, and two spaces after the
32544         full stop at the end of a sentence.  Use @samp markup when
32545         referring concrete lexical entities (keywords, attribute names
32546         etc.), and @syntax for ARM grammar elements. Use @r for English
32547         text in comments.  Use @emph for emphasis.  Change "if-statements"
32548         etc. to "if statements" (without @samp). Break long lines.  Make
32549         casing of section names consistent.
32550         (Identifiers): Use @samp markup for variable names.
32551         (Comments): Use @samp markup for comment characters. Line-end
32552         comments may follow any Ada code, not just statements.  Fix
32553         misspelling of "Integer" as "integer".
32554         (Loop statements): Do not use variable name "I", use "J".
32555         (Subprogram Declarations): Document alignment.
32556         (Subprogram Bodies, Block statements): Document empty line before
32557         "begin".
32558
32559 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
32560
32561         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
32562         function approach did not work well because of a side effect (the
32563         function call could reallocate the table which was being indexed
32564         using its result). Fixes ada/4851.
32565
32566 2001-12-19  Robert Dewar <dewar@gnat.com>
32567
32568         * bindgen.adb: Minor reformatting
32569
32570         * cstand.adb: Minor reformatting
32571
32572         * fmap.adb: Minor reformatting
32573         Change name from Add for Add_To_File_Map (Add is much too generic)
32574         Change Path_Name_Of to Mapped_Path_Name
32575         Change File_Name_Of to Mapped_File_Name
32576         Fix copyright dates in header
32577
32578         * fmap.ads:
32579         Change name from Add for Add_To_File_Map (Add is much too generic)
32580         Change Path_Name_Of to Mapped_Path_Name
32581         Change File_Name_Of to Mapped_File_Name
32582         Fix copyright dates in header
32583
32584         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
32585         Add use clause for Fmap.
32586
32587         * make.adb: Minor reformatting
32588
32589         * osint.adb: Minor reformatting.  Change of names in Fmap.
32590         Add use clause for Fmap.
32591
32592         * prj-env.adb: Minor reformatting
32593
32594         * prj-env.ads: Minor reformatting
32595
32596         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
32597         error found (there were odd exceptions to this general rule in
32598         -gnatec/-gnatem processing)
32599
32600 2001-12-19  Olivier Hainque <hainque@gnat.com>
32601
32602         * raise.c (__gnat_eh_personality): Exception handling personality
32603         routine for Ada.  Still in rough state, inspired from the C++ version
32604         and still containing a bunch of debugging artifacts.
32605         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
32606         inspired from the C++ library.
32607
32608         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
32609         exception handling integration.
32610
32611 2001-12-19  Arnaud Charlet <charlet@gnat.com>
32612
32613         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
32614         (HIE_SOURCES): Add s-secsta.ad{s,b}.
32615         (HIE_OBJS): Add s-fat*.o
32616         (RAVEN_SOURCES): Remove files that are no longer required. Add
32617         interrupt handling files.
32618         (RAVEN_MOD): Removed, no longer needed.
32619
32620 2001-12-19  Robert Dewar <dewar@gnat.com>
32621
32622         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
32623         Add 2001 to copyright date
32624
32625         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
32626         need to force universal inlining for these cases.
32627
32628 2001-12-19  Arnaud Charlet <charlet@gnat.com>
32629
32630         * s-taprob.adb: Minor clean ups so that this unit can be used in
32631         Ravenscar HI.
32632
32633         * exp_ch7.adb: Allow use of secondary stack in HI mode.
32634         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
32635
32636 2001-12-19  Vincent Celier <celier@gnat.com>
32637
32638         * prj-tree.ads (Project_Node_Record): Add comments for components
32639         Pkg_Id and Case_Insensitive.
32640
32641 2001-12-19  Pascal Obry <obry@gnat.com>
32642
32643         * g-socket.adb: Minor reformatting. Found while reading code.
32644
32645 2001-12-19  Robert Dewar <dewar@gnat.com>
32646
32647         * prj-tree.ads: Minor reformatting
32648
32649 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
32650
32651         * config-lang.in (diff_excludes): Remove.
32652
32653 2001-12-17  Ed Schonberg <schonber@gnat.com>
32654
32655         * sem_res.adb (Resolve_Selected_Component): do not generate a
32656         discriminant check if the selected component is a component of
32657         the argument of an initialization procedure.
32658
32659         * trans.c (tree_transform, case of arithmetic operators): If result
32660         type is private, the gnu_type is the base type of the full view,
32661         given that the full view itself may be a subtype.
32662
32663 2001-12-17  Robert Dewar <dewar@gnat.com>
32664
32665         * sem_res.adb: Minor reformatting
32666
32667         * trans.c (tree_transform, case N_Real_Literal): Add missing third
32668         parameter in call to Machine (unknown horrible effects from this
32669         omission).
32670
32671         * urealp.h: Add definition of Round_Even for call to Machine
32672         Add third parameter for Machine
32673
32674 2001-12-17  Ed Schonberg <schonber@gnat.com>
32675
32676         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
32677         predefined units in No_Run_Time mode.
32678
32679 2001-12-17  Richard Kenner <kenner@gnat.com>
32680
32681         * misc.c (insn-codes.h): Now include.
32682
32683 2001-12-17  Olivier Hainque <hainque@gnat.com>
32684
32685         * a-except.adb: Preparation work for future integration of the GCC 3
32686         exception handling mechanism
32687         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
32688         to factorize previous code sequences and make them externally callable,
32689         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
32690         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
32691         Use the new notification routines.
32692
32693 2001-12-17  Emmanuel Briot <briot@gnat.com>
32694
32695         * prj-tree.ads (First_Choice_Of): Document the when others case
32696
32697 2001-12-17  Arnaud Charlet <charlet@gnat.com>
32698
32699         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
32700         HI-E mode, in order to support Ravenscar profile properly.
32701
32702         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
32703         mode on 32 bits targets.
32704
32705 2001-12-17  Vincent Celier <celier@gnat.com>
32706
32707         * fmap.adb: Initial version.
32708
32709         * fmap.ads: Initial version.
32710
32711         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
32712         If search is successfully done, add to mapping.
32713
32714         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
32715
32716         * make.adb:
32717         (Gnatmake): Add new local variable Mapping_File_Name.
32718          Create mapping file when using project file(s).
32719          Delete mapping file before exiting.
32720
32721         * opt.ads (Mapping_File_Name): New variable
32722
32723         * osint.adb (Find_File): Use path name found in mapping, if any.
32724
32725         * prj-env.adb (Create_Mapping_File): New procedure
32726
32727         * prj-env.ads (Create_Mapping_File): New procedure.
32728
32729         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
32730         (Mapping_File)
32731
32732         * usage.adb: Add entry for new switch -gnatem.
32733
32734         * Makefile.in: Add dependencies for fmap.o.
32735
32736 2001-12-17  Ed Schonberg <schonber@gnat.com>
32737
32738         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
32739         is a package instantiation rewritten as a package body.
32740         (Install_Withed_Unit): Undo previous change, now redundant.
32741
32742 2001-12-17  Gary Dismukes <dismukes@gnat.com>
32743
32744         * layout.adb:
32745         (Compute_Length): Move conversion to Unsigned to callers.
32746         (Get_Max_Size): Convert Len expression to Unsigned after calls to
32747         Compute_Length and Determine_Range.
32748         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
32749         Compute_Length and Determine_Range.
32750         Above changes fix problem with length computation for supernull arrays
32751         where Max (Len, 0) wasn't getting applied due to the Unsigned
32752         conversion used by Compute_Length.
32753
32754 2001-12-17  Arnaud Charlet <charlet@gnat.com>
32755
32756         * rtsfind.ads:
32757         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
32758          System.Secondary_Stack.
32759         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
32760          in HI-E mode.
32761         Remove unused entity RE_Exception_Data.
32762
32763         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
32764
32765         * rident.ads (No_Secondary_Stack): New restriction.
32766
32767 2001-12-17  Joel Brobecker <brobecke@gnat.com>
32768
32769         * gnat_rm.texi: Fix minor typos. Found while reading the section
32770         regarding "Bit_Order Clauses" that was sent to a customer.
32771         Very interesting documentation!
32772
32773 2001-12-17  Robert Dewar <dewar@gnat.com>
32774
32775         * sem_case.adb (Choice_Image): Avoid creating improper character
32776         literal names by using the routine Set_Character_Literal_Name. This
32777         fixes bombs in certain error message cases.
32778
32779 2001-12-17  Arnaud Charlet <charlet@gnat.com>
32780
32781         * a-reatim.adb: Minor reformatting.
32782
32783 2001-12-17  Ed Schonberg <schonber@gnat.com>
32784
32785         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
32786         case where the formal is an extension of another formal in the current
32787         unit or in a parent generic unit.
32788
32789 2001-12-17  Arnaud Charlet <charlet@gnat.com>
32790
32791         * s-tposen.adb: Update comments.  Minor reformatting.
32792         Minor code clean up.
32793
32794         * s-tarest.adb: Update comments.  Minor code reorganization.
32795
32796 2001-12-17  Gary Dismukes <dismukes@gnat.com>
32797
32798         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
32799         when Java_VM.
32800
32801 2001-12-17  Robert Dewar <dewar@gnat.com>
32802
32803         * exp_attr.adb: Minor reformatting
32804
32805 2001-12-17  Ed Schonberg <schonber@gnat.com>
32806
32807         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
32808         derivations nested within a child unit: verify that the parent
32809         type is declared in an outer scope.
32810
32811 2001-12-17  Robert Dewar <dewar@gnat.com>
32812
32813         * sem_ch12.adb: Minor reformatting
32814
32815 2001-12-17  Ed Schonberg <schonber@gnat.com>
32816
32817         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
32818         warning if current unit is a predefined one, from which bodies may
32819         have been deleted.
32820
32821 2001-12-17  Robert Dewar <dewar@gnat.com>
32822
32823         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
32824         Fix header format. Add 2001 to copyright date.
32825
32826         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
32827         which caused CE during compilation if checks were enabled.
32828
32829 2001-12-17  Vincent Celier <celier@gnat.com>
32830
32831         * make.adb:
32832         (Switches_Of): New function
32833         (Test_If_Relative_Path): New procedure
32834         (Add_Switches): Use new function Switches_Of
32835         (Collect_Arguments_And_Compile): Use new function Switches_Of.
32836         When using a project file, test if there are any relative
32837         search path. Fail if there are any.
32838         (Gnatmake): Only add switches for the primary directory when not using
32839         a project file. When using a project file, change directory to the
32840         object directory of the main project file. When using a project file,
32841         test if there are any relative search path. Fail if there are any.
32842         When using a project file, fail if specified executable is relative
32843         path with directory information, and prepend executable, if not
32844         specified as an absolute path, with the exec directory.  Make sure
32845         that only one -o switch is transmitted to the linker.
32846
32847         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
32848
32849         * prj-nmsc.adb:
32850         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
32851         when using a non standard naming scheme.
32852         (Check_Ada_Naming_Scheme): Make sure that error messages
32853         do not raise exceptions.
32854         (Is_Illegal_Append): Return True if there is no dot in the suffix.
32855         (Language_Independent_Check): Check the exec directory.
32856
32857         * prj.adb (Project_Empty): Add new component Exec_Directory
32858
32859         * prj.ads:
32860         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
32861         (Project_Data): Add component Exec_Directory
32862
32863         * snames.adb: Updated to match snames.ads revision 1.215
32864
32865         * snames.ads: Added Exec_Dir
32866
32867 2001-12-17  Robert Dewar <dewar@gnat.com>
32868
32869         * make.adb: Minor reformatting
32870
32871         * prj-nmsc.adb: Minor reformatting
32872
32873         * snames.adb: Updated to match snames.ads
32874
32875         * snames.ads: Alphebetize entries for project file
32876
32877 2001-12-17  Ed Schonberg <schonber@gnat.com>
32878
32879         * trans.c (process_freeze_entity): Do nothing if the entity is a
32880         subprogram that was already elaborated.
32881
32882 2001-12-17  Richard Kenner <kenner@gnat.com>
32883
32884         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
32885         and Esize if object is referenced via pointer.
32886
32887 2001-12-17  Ed Schonberg <schonber@gnat.com>
32888
32889         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
32890         is discrete before analyzing choices.
32891
32892 2001-12-17  Joel Brobecker <brobecke@gnat.com>
32893
32894         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
32895         containing the name of the Ada Main Program. This string is mainly
32896         intended for the debugger.
32897         (Gen_Output_File_C): Do the equivalent change when generating a C file.
32898
32899 2001-12-17  Robert Dewar <dewar@gnat.com>
32900
32901         * ali.adb: Set new Dummy_Entry field in dependency entry
32902
32903         * ali.ads: Add Dummy_Entry field to source dependency table
32904
32905         * bcheck.adb (Check_Consistency): Ignore dummy D lines
32906
32907         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
32908
32909         * lib-writ.ads: Document dummy D lines for missing files.
32910
32911         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
32912
32913 2001-12-17  Robert Dewar <dewar@gnat.com>
32914
32915         * ali.adb: Type reference does not reset current file.
32916
32917         * ali.adb: Recognize and scan renaming reference
32918
32919         * ali.ads: Add spec for storing renaming references.
32920
32921         * lib-xref.ads: Add documentation for handling of renaming references
32922
32923         * lib-xref.adb: Implement output of renaming reference.
32924
32925         * checks.adb:
32926         (Determine_Range): Document local variables
32927         (Determine_Range): Make sure Hbound is initialized. It looks as though
32928          there could be a real problem here with an uninitialized reference
32929          to Hbound, but no actual example of failure has been found.
32930
32931 2001-12-17  Laurent Pautet <pautet@gnat.com>
32932
32933         * g-socket.ads:
32934         Fix comment of Shutdown_Socket and Close_Socket. These functions
32935         should not fail silently because if they are called twice, this
32936         probably means that there is a race condition in the user program.
32937         Anyway, this behaviour is consistent with the rest of this unit.
32938         When an error occurs, an exception is raised with the error message
32939         as exception message.
32940
32941 2001-12-17  Robert Dewar <dewar@gnat.com>
32942
32943         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
32944         that it happens before modification of Sloc values for -gnatD.
32945
32946         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
32947         so that it happens before modification of Sloc values for -gnatD.
32948
32949         * switch.adb: Minor reformatting
32950
32951 2001-12-15  Richard Henderson  <rth@redhat.com>
32952
32953         * sem_ch7.adb: Wrap comment.
32954
32955 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
32956
32957         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
32958         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
32959         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
32960         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
32961         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
32962         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
32963         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
32964         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
32965         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
32966         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
32967         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
32968         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
32969         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
32970         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
32971         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
32972         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
32973         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
32974         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
32975         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
32976         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
32977         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
32978         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
32979         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
32980         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
32981         spelling errors.
32982
32983 2001-12-14  Vincent Celier <celier@gnat.com>
32984
32985         * osint.adb(Create_Debug_File): When an object file is specified,
32986         put the .dg file in the same directory as the object file.
32987
32988 2001-12-14  Robert Dewar <dewar@gnat.com>
32989
32990         * osint.adb: Minor reformatting
32991
32992         * lib-xref.adb (Output_Instantiation): New procedure to generate
32993         instantiation references.
32994
32995         * lib-xref.ads: Add documentation of handling of generic references.
32996
32997         * ali.adb (Read_Instantiation_Ref): New procedure to read
32998         instantiation references
32999
33000         * ali.ads: Add spec for storing instantiation references
33001
33002         * bindusg.adb: Minor reformatting
33003
33004         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
33005
33006         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
33007
33008         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
33009
33010         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
33011
33012         * csets.ads:
33013         Fix header format
33014         Add 2001 to copyright date
33015         Add entry for Latin-5 (Cyrillic ISO-8859-5)
33016
33017 2001-12-14  Matt Gingell <gingell@gnat.com>
33018
33019         * adaint.c: mktemp is a macro on Lynx and can not be used as an
33020         expression.
33021
33022 2001-12-14  Richard Kenner <kenner@gnat.com>
33023
33024         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
33025         if operand is CONSTRUCTOR.
33026
33027 2001-12-14  Ed Schonberg <schonber@gnat.com>
33028
33029         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
33030         before emiting check on right-hand side, so that exception information
33031         is correct.
33032
33033 2001-12-14  Richard Kenner <kenner@gnat.com>
33034
33035         * utils.c (create_var_decl): Throw away initializing expression
33036         if just annotating types and non-constant.
33037
33038 2001-12-14  Vincent Celier <celier@gnat.com>
33039
33040         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
33041         Default_Ada_...
33042
33043         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
33044         Remove functions.
33045         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
33046
33047         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
33048         Remove functions.
33049         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
33050
33051 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
33052
33053         * ChangeLog: Remove piece of diff output.
33054
33055 2001-12-14  Geert Bosch <bosch@gnat.com>
33056
33057         * config-lang.in: Update copyright notice
33058
33059         * layout.adb: Remove commented out code.
33060
33061         * mdllfile.ads: Update copyright notice. Fix header format.
33062
33063         * sem_case.ads: Likewise.
33064
33065         * sem_ch3.adb: Minor reformatting.
33066
33067 2001-12-12  Geert Bosch <bosch@gnat.com>
33068
33069         * freeze.ads: Update copyright date.
33070
33071         * g-comlin.ads: Minor reformatting.
33072
33073         * gnat-style.texi: Fix typo.
33074
33075 2001-12-12  Geert Bosch <bosch@gnat.com>
33076
33077         *  einfo.h: Regenerate.
33078
33079 2001-12-12  Ed Schonberg <schonber@gnat.com>
33080
33081         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
33082         on known node types, rather than untyped fields. Further cleanups.
33083
33084 2001-12-12  Robert Dewar <dewar@gnat.com>
33085
33086         * sem_ch12.adb:
33087         (Save_Entity_Descendant): Minor comment update.
33088         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
33089          of an N_Attribute_Reference node. As per note below, this does not
33090         eliminate need for Associated_Node in attribute ref nodes.
33091         (Associated_Node): Documentation explicitly mentions attribute
33092         reference nodes, since this field is used in such nodes.
33093
33094         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
33095
33096 2001-12-12  Robert Dewar <dewar@gnat.com>
33097
33098         * s-stalib.adb: Add more comments on with statements being needed
33099
33100         * par-ch12.adb: Minor reformatting
33101
33102         * prj-dect.ads: Fix copyright header
33103
33104         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
33105         inputs fit in 32 bits, but the result still overflows.
33106
33107         * s-fatgen.ads: Minor comment improvement
33108
33109 2001-12-12  Ed Schonberg <schonber@gnat.com>
33110
33111         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
33112         formal derived type, look for an inherited component from the full
33113         view of the parent, if any.
33114
33115 2001-12-12  Robert Dewar <dewar@gnat.com>
33116
33117         * checks.ads (Apply_Alignment_Check): New procedure.
33118
33119         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
33120         ensure that the alignment of objects with address clauses is
33121         appropriate, and raise PE if not.
33122
33123         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
33124         Exp_Pakd.Known_Aligned_Enough
33125
33126         * mdllfile.ads: Minor reformatting
33127
33128         * mlib-fil.ads: Minor reformatting
33129
33130 2001-12-12  Ed Schonberg <schonber@gnat.com>
33131
33132         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
33133         fix to any component reference if enclosing record has non-standard
33134         representation.
33135
33136 2001-12-12  Vincent Celier <celier@gnat.com>
33137
33138         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
33139         Iteration
33140
33141 2001-12-12  Ed Schonberg <schonber@gnat.com>
33142
33143         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
33144         sem_attr.
33145
33146 2001-12-12  Robert Dewar <dewar@gnat.com>
33147
33148         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
33149
33150 2001-12-12  Emmanuel Briot <briot@gnat.com>
33151
33152         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
33153         and it adds dependencies to system.io.
33154
33155 2001-12-12  Pascal Obry <obry@gnat.com>
33156
33157         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
33158         variable name.
33159
33160 2001-12-11  Ed Schonberg <schonber@gnat.com>
33161
33162         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
33163         that is the parent of other generics, the instance body replaces the
33164         instance node.  Retrieve the instance of the spec, which is the one
33165         that is visible in clients and within the body.
33166
33167 2001-12-11  Vincent Celier <celier@gnat.com>
33168
33169         * gnatmain.adb: Initial version.
33170
33171         * gnatmain.ads: Initial version.
33172
33173         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
33174
33175         * snames.adb: Updated to match snames.ads.
33176
33177         * snames.ads: Added Gnatstub.
33178
33179 2001-12-11  Vincent Celier <celier@gnat.com>
33180
33181         * prj-attr.adb (Initialization_Data): Change name from
33182         Initialisation_Data.
33183
33184 2001-12-11  Emmanuel Briot <briot@gnat.com>
33185
33186         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
33187         + and * applied to backslashed expressions like \r.
33188
33189 2001-12-11  Vasiliy Fofanov <fofanov@gnat.com>
33190
33191         * g-os_lib.ads: String_List type added, Argument_List type is now
33192         subtype of String_List.
33193
33194 2001-12-11  Robert Dewar <dewar@gnat.com>
33195
33196         * g-os_lib.ads: Change copyright to FSF
33197         Add comments for String_List type
33198
33199 2001-12-11  Vincent Celier <celier@gnat.com>
33200
33201         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
33202         string to the buffer).
33203
33204 2001-12-11  Ed Schonberg <schonber@gnat.com>
33205
33206         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
33207         sem_attr.
33208
33209         * sem_attr.adb: Simplify previous fix for Address.
33210         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
33211         to avoid anomalies where the bound of the type appears to raise
33212         constraint error.
33213
33214 2001-12-11  Robert Dewar <dewar@gnat.com>
33215
33216         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
33217         handled.
33218
33219 2001-12-11  Ed Schonberg <schonber@gnat.com>
33220
33221         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
33222         renamed unit before checking for recursive instantiations.
33223
33224 2001-12-11  Emmanuel Briot <briot@gnat.com>
33225
33226         * prj.ads: Add comments for some of the fields.
33227
33228 2001-12-11  Robert Dewar <dewar@gnat.com>
33229
33230         * lib-xref.adb (Output_Refs): Don't output type references outside
33231         the main unit if they are not otherwise referenced.
33232
33233 2001-12-11  Ed Schonberg <schonber@gnat.com>
33234
33235         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
33236         code and diagnose additional illegal uses
33237
33238         * sem_util.adb (Is_Object_Reference): An indexed component is an
33239         object only if the prefix is.
33240
33241 2001-12-11  Vincent Celier <celier@gnat.com>
33242
33243         * g-diopit.adb: Initial version.
33244
33245         * g-diopit.ads: Initial version.
33246
33247         * g-dirope.adb:
33248         (Expand_Path): Avoid use of Unbounded_String
33249         (Find, Wildcard_Iterator): Moved to child package Iteration
33250
33251         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
33252
33253 2001-12-11  Robert Dewar <dewar@gnat.com>
33254
33255         * sem_attr.adb: Minor reformatting
33256
33257 2001-12-11  Ed Schonberg <schonber@gnat.com>
33258
33259         * sem_ch3.adb: Clarify some ???.
33260
33261 2001-12-11  Robert Dewar <dewar@gnat.com>
33262
33263         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
33264         Exp_Pakd.Known_Aligned_Enough
33265
33266         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
33267         version is moved to Exp_Ch13.
33268
33269 2001-12-11  Robert Dewar <dewar@gnat.com>
33270
33271         * einfo.ads: Minor reformatting
33272
33273         * exp_ch5.adb: Add comment for previous.change
33274
33275         * ali.adb: New interface for extended typeref stuff.
33276
33277         * ali.ads: New interface for typeref stuff.
33278
33279         * checks.adb (Apply_Alignment_Check): New procedure.
33280
33281         * debug.adb: Add -gnatdM for modified ALI output
33282
33283         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
33284
33285         * lib-xref.adb: Extend generation of <..> notation to cover
33286         subtype/object types. Note that this is a complete rewrite,
33287         getting rid of the very nasty quadratic algorithm previously
33288         used for derived type output.
33289
33290         * lib-xref.ads: Extend description of <..> notation to cover
33291         subtype/object types. Uses {..} for these other cases.
33292         Also use (..) for pointer types.
33293
33294         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
33295
33296         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
33297         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
33298
33299 2001-12-11  Vincent Celier <celier@gnat.com>
33300
33301         * gnatcmd.adb:
33302         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
33303         Changed /BIND_ONLY to /ACTIONS=BIND
33304         Changed /LINK_ONLY to /ACTIONS=LINK
33305
33306 2001-12-11  Ed Schonberg  <schonber@gnat.com>
33307
33308         * sem_ch8.adb (Find_Selected_Component): improved search for a
33309         candidate package in case of error.
33310
33311         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
33312         chain back on scope stack before reinstalling use clauses.
33313
33314         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
33315         is enabled, do not kill the code for the condition, to preserve
33316         warning.
33317
33318 2001-12-11  Robert Dewar <dewar@gnat.com>
33319
33320         * checks.adb (Insert_Valid_Check): Apply validity check to expression
33321         of conversion, not to result of conversion.
33322
33323 2001-12-11  Ed Schonberg <schonber@gnat.com>
33324
33325         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
33326         before freezing parent. If the declarations are mutually recursive,
33327         an access to the current record type may be frozen before the
33328         derivation is complete.
33329
33330 2001-12-05  Vincent Celier <celier@gnat.com>
33331
33332         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
33333         -c /COMPILE_ONLY, -l /LINK_ONLY
33334
33335         * opt.ads:
33336         (Bind_Only): New Flag
33337         (Link_Only): New flag
33338
33339         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
33340         and -l (Link_Only)
33341
33342         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
33343
33344         * make.adb:
33345         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
33346         (Gnatmake): Set the step flags. Only perform a step if the
33347         corresponding step flag is True.
33348         (Scan_Make_Arg): Reset the bind and link step flags when -u
33349         or -gnatc has been specified.
33350
33351 2001-12-05  Ed Schonberg <schonber@gnat.com>
33352
33353         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
33354         get bounds from right operand.
33355
33356         * sem_eval.adb: Minor reformatting
33357
33358         * exp_util.adb (Make_Literal_Range): use bound of literal rather
33359         than Index'First, its lower bound may be different from 1.
33360
33361         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
33362         and C48009J
33363
33364 2001-12-05  Vincent Celier <celier@gnat.com>
33365
33366         * prj-nmsc.adb Minor reformatting
33367
33368         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
33369         set and libraries are not supported.
33370
33371 2001-12-05  Ed Schonberg <schonber@gnat.com>
33372
33373         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
33374         private view explicitly, so the back-end can treat as a global
33375         when appropriate.
33376
33377 2001-12-05  Ed Schonberg <schonber@gnat.com>
33378
33379         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
33380          unit, always replace instance node with new body, for ASIS use.
33381
33382 2001-12-05  Vincent Celier <celier@gnat.com>
33383
33384         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
33385         libraries are not supported and both attributes Library_Name and
33386         Library_Dir are specified.
33387
33388         * prj-proc.adb (Expression): Set location of Result to location of
33389         first term.
33390
33391         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
33392         (prj-nmsc is now importing MLib.Tgt)
33393
33394         * prj-proc.adb: Put the change indicated above that was forgotten.
33395
33396 2001-12-05  Robert Dewar <dewar@gnat.com>
33397
33398         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
33399
33400 2001-12-05  Ed Schonberg <schonber@gnat.com>
33401
33402         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
33403         constraint, introduce explicit subtype declaration and derive from it.
33404
33405         * sem_ch3.adb: Minor reformatting
33406
33407 2001-12-05  Robert Dewar <dewar@gnat.com>
33408
33409         * checks.adb (Determine_Range): Increase cache size for checks.
33410         Minor reformatting
33411
33412         * exp_ch6.adb: Minor reformatting
33413         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
33414         a parameter whose root type is System.Address, since treating such
33415         subprograms as pure in the code generator is almost surely a mistake
33416         that will lead to unexpected results.
33417
33418         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
33419         change handling of conversions.
33420
33421         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
33422
33423 2001-12-05  Ed Schonberg <schonber@gnat.com>
33424
33425         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
33426         aggregate with static wrong size, attach generated Raise node to
33427         declaration.
33428
33429 2001-12-05  Robert Dewar <dewar@gnat.com>
33430
33431         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
33432         Fixes compilation abandoned bomb in B24009B.
33433
33434 2001-12-05  Ed Schonberg <schonber@gnat.com>
33435
33436         * sem_ch12.adb:
33437         Document use of Associated_Node on Selected_Components.
33438         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
33439         to clarify use of untyped descendant fields.
33440
33441 2001-12-05  Robert Dewar <dewar@gnat.com>
33442
33443         * prj-dect.ads: Add ??? comment
33444         Add 2001 to copyright notice (was not done in after all)
33445
33446         * prj-part.adb: Minor reformatting. Reword one awkward error message.
33447
33448         * prj.ads: Minor reformatting throughout, and add some ??? comments
33449
33450         * snames.ads: Minor reformatting
33451
33452 2001-12-05  Geert Bosch <bosch@gnat.com>
33453
33454         * snames.adb: Autoupdate
33455
33456 2001-12-05  Vincent Celier <celier@gnat.com>
33457
33458         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
33459
33460         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
33461
33462         * prj-env.adb: Minor comment changes (modifying -> extends).
33463
33464         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
33465
33466         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
33467         Tok_Extends.
33468
33469         * prj.adb (Initialize): Change Modifying to Extends.
33470
33471         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
33472
33473         * prj.ads: Minor comment change (Modifying -> extending).
33474
33475         * snames.ads: Change modifying to extends.
33476
33477 2001-12-05  Robert Dewar <dewar@gnat.com>
33478
33479         * sem_warn.adb: Remove stuff for conditionals, we are not going to
33480         do this after all.
33481
33482         * sem_warn.ads: Remove stuff for conditionals, we are not going to
33483         do this after all.  Add 2001 to copyright notice
33484
33485 2001-12-04  Geert Bosch <bosch@gnat.com>
33486
33487         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
33488
33489 2001-12-04  Robert Dewar <dewar@gnat.com>
33490
33491         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
33492         location if we already have errors. Stops some cases of cascaded
33493         errors.
33494
33495         * errout.adb: Improve comment.
33496
33497 2001-12-04  Robert Dewar <dewar@gnat.com>
33498
33499         * sem_ch12.adb:
33500         (Analyze_Formal_Type_Definition): Defend against Error.
33501         (Analyze_Formal_Subprogram): Defend against Error.
33502
33503         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
33504         remove following semicolon if present. Removes cascaded error.
33505
33506 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
33507
33508         * bindgen.adb:
33509         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
33510          exceptions equals 0.
33511         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
33512         Fixes PIWG E tests (which have to be run with -gnatL).
33513
33514 2001-12-04  Robert Dewar <dewar@gnat.com>
33515
33516         * einfo.ads: Minor reformatting
33517
33518 2001-12-04  Ed Schonberg <schonber@gnat.com>
33519
33520         * einfo.ads: Block_Node points to the identifier of the block, not to
33521         the block node itself, to preserve the link when the block is
33522         rewritten, e.g. within an if-statement with a static condition.
33523
33524         * inline.adb (Cleanup_Scopes): recover block statement from block
33525         entity using new meaning of Block_Node.
33526
33527         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
33528         identifier of block node, rather than to node itself.
33529
33530 2001-12-04  Gary Dismukes <dismukes@gnat.com>
33531
33532         * layout.adb:
33533         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
33534         (Discrimify): Go back to setting the Etypes of the selected component
33535         because the Vname component does not exist at this point and will
33536         fail name resolution. Also set Analyzed.
33537         Remove with and use of Sem_Res.
33538
33539 2001-12-04  Arnaud Charlet <charlet@gnat.com>
33540
33541         * Makefile.in: (HIE_SOURCES): add s-fat*.
33542
33543 2001-12-04  Robert Dewar <dewar@gnat.com>
33544
33545         * sem_attr.adb:
33546         (Compile_Time_Known_Attribute): New procedure.
33547         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
33548          proper range check.
33549
33550 2001-12-04  Ed Schonberg <schonber@gnat.com>
33551
33552         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
33553         processing discriminants to diagnose illegal default values.
33554
33555 2001-12-04  Ed Schonberg <schonber@gnat.com>
33556
33557         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
33558         access discriminant within a type extension that constrains its
33559         parent discriminants.
33560
33561 2001-12-04  Ed Schonberg <schonber@gnat.com>
33562
33563         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
33564         is malformed, use instance of Any_Id to allow analysis to proceed.
33565
33566         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
33567         type definition is illegal.
33568         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
33569         misplaced.
33570
33571 2001-12-04  Ed Schonberg <schonber@gnat.com>
33572
33573         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
33574         constants.
33575
33576 2001-12-04  Robert Dewar <dewar@gnat.com>
33577
33578         * errout.adb: Minor reformatting
33579
33580 2001-12-04  Robert Dewar <dewar@gnat.com>
33581
33582         * exp_util.adb: Minor reformatting from last change
33583
33584         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
33585         which is a rewriting of an expression, traverse the original
33586         expression to remove warnings that may have been posted on it.
33587
33588 2001-12-04  Ed Schonberg <schonber@gnat.com>
33589
33590         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
33591         record that has other packed components.
33592
33593 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
33594
33595         * adaint.c: Minor cleanups.
33596
33597 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
33598
33599         * adaint.c: Do not use utime.h on vxworks.
33600
33601 2001-12-04  Arnaud Charlet <charlet@gnat.com>
33602
33603         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
33604         more confusion than it solves.
33605
33606 2001-12-04  Geert bosch <bosch@gnat.com>
33607
33608         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
33609
33610 2001-12-04  Geert Bosch  <bosch@gnat.com>
33611
33612         * Makefile.in (update-sources): New target.
33613         For use by gcc_release script.
33614
33615 2001-12-04  Ed Schonberg <schonber@gnat.com>
33616
33617         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
33618         a configuration pragma, it is now legal wherever a pragma can appear.
33619
33620 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
33621
33622         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
33623         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
33624         is now @CROSS@ -DIN_GCC; update comment.
33625
33626 2001-12-04  Robert Dewar <dewar@gnat.com>
33627
33628         * einfo.adb (Has_Pragma_Pure_Function): New flag.
33629         Fix problem that stopped ceinfo from working
33630
33631         * einfo.ads (Has_Pragma_Pure_Function): New flag.
33632
33633         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
33634
33635 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
33636
33637         * gnatchop.adb:
33638         (File_Time_Stamp): New procedure.
33639         (Preserve_Mode): New boolean.
33640         (Write_Unit): Pass time stamp.
33641         Implement -p switch (preserve time stamps).
33642
33643         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
33644
33645         * gnatchop.adb: Do usage info for -p switch
33646
33647         * adaint.h (__gnat_set_file_time_name): New function
33648
33649         * adaint.c (__gnat_set_file_time_name): Implement
33650
33651         * adaint.h: Fix typo
33652
33653 2001-12-03  Robert Dewar <dewar@gnat.com>
33654
33655         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
33656         have Associated_Node.
33657
33658 2001-12-03  Robert Dewar <dewar@gnat.com>
33659
33660         * prj-proc.adb: Minor reformatting
33661
33662         * make.adb: Minor reformatting
33663
33664 2001-12-03  Geert Bosch <bosch@gnat.com>
33665
33666         * make.adb: Minor reformatting.
33667
33668 2001-12-03 Robert Dewar  <dewar@gnat.com>
33669
33670         * sem_ch12.adb: Minor reformatting
33671
33672 2001-12-03  Ed Schonberg <schonber@gnat.com>
33673
33674         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
33675         push Standard on the stack before analyzing the instance body,
33676         in order to have a clean visibility environment.
33677
33678         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
33679
33680 2001-12-03  Ed Schonberg <schonber@gnat.com>
33681
33682         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
33683         instantiation of a body that contains an inlined body.
33684
33685 2001-12-03  Ed Schonberg <schonber@gnat.com>
33686
33687         * sem_ch12.adb:
33688         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
33689         to prevent freezing within formal packages.
33690         (Freeze_Subprogram_Body): If body comes from another instance that
33691         appeared before its own body, place freeze node at end of current
33692         declarative part, to prevent a back-end crash.
33693         (Inline_Instance_Body): Handle properly a package instance within
33694         a subprogram instance that is a child unit.
33695
33696 2001-12-01  Graham Stott  <grahams@redhat.com>
33697
33698         * Makefile.in (misc.o): Add missing $(srcdir) prefix
33699         and add optabs.h dependency.
33700
33701         * misc.c: Include optabs.h
33702         (gnat_tree_code_type): Make static and const.
33703         (gnat_tree_code_length): Likewise.
33704         (gnat_tree_code_name): Likewise.
33705         (update_setjmp_buf): Obtain operands mode from insn_data.
33706
33707 2001-11-29  Richard Henderson  <rth@redhat.com>
33708
33709         * init.c: Remove obsolete dwarf2 frame.h section.
33710
33711 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
33712
33713         * Make-lang.in (ada.generated-manpages): New dummy target.
33714
33715 2001-11-29  Ed Schonberg <schonber@gnat.com>
33716
33717         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
33718         into Command, an array conversion is illegal here. Uncovered by
33719         ACATS B460005.
33720
33721 2001-11-28  Geert Bosch <bosch@gnat.com>
33722
33723         * init.c: Minor whitespace changes.
33724
33725 2001-11-28  Doug Rupp <rupp@gnat.com>
33726
33727         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
33728         signal stack.
33729
33730 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
33731
33732         * misc.c (gnat_expand_constant): Move declaration above
33733         definition of lang_hooks.
33734         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
33735         (gnat_init): lang_expand_constant no longer exists.
33736
33737         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
33738         always have vprintf.
33739         (gnat_init): Always call set_internal_error_function.
33740
33741 2001-11-27  Andreas Jaeger  <aj@suse.de>
33742
33743         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
33744
33745 2001-11-27  Laurent Guerby  <guerby@acm.org>
33746
33747         * Makefile.in: Regenerate Ada dependencies.
33748
33749 2001-11-26  Richard Henderson  <rth@redhat.com>
33750
33751         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
33752         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
33753         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
33754
33755 2001-11-25  Laurent Guerby  <guerby@acm.org>
33756
33757         * sysdep.c (rts_get_*): Fix style.
33758
33759 2001-11-19  Laurent Guerby  <guerby@acm.org>
33760
33761         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
33762         since it is of no apparent use and cause warnings.
33763
33764 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
33765
33766         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
33767         static too.
33768         (gnat_init): Don't return NULL.
33769         (finish_parse): Remove.
33770
33771 2001-11-17  Laurent Guerby  <guerby@acm.org>
33772
33773         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
33774         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
33775         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
33776         * lang-spec.h: Add missing struct field to silence warnings.
33777         * sysdep.c (rts_get_*): Provide K&R prototype.
33778         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
33779         * traceback.c (Unlock_Task, Lock_Task): Likewise.
33780         * tracebak.c (__gnat_backtrace): Remove unused variable.
33781         * utils.c (end_subprog_body): Move to K&R style.
33782
33783 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33784
33785         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
33786
33787 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
33788
33789         * misc.c (gnat_init): Change prototype.  Include the
33790         functionality of the old init_parse and init_decl_processing.
33791         (gnat_init_decl_processing): New prototype.
33792         (init_parse): Remove.
33793         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
33794
33795 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
33796
33797         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
33798         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
33799         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
33800         set_yydebug): Remove.
33801
33802 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
33803
33804         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
33805         (struct lang_hooks): Constify.
33806         (language_string, lang_identify): Remove.
33807         * utils.c (init_decl_processing): Update.
33808
33809 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
33810
33811         * misc.c: Include langhooks-def.h.
33812         * Makefile.in: Update.
33813
33814 2001-10-30  Robert Dewar <dewar@gnat.com>
33815
33816         * style.adb:
33817         (Check_Identifier): Rewrite circuit to be compatible with use of letters
33818         in the upper half of ASCII.
33819         (Check_Identifier): Minor reformatting
33820
33821 2001-10-30  Geert Bosch <bosch@gnat.com>
33822
33823         * (Associated_Node, Set_Associated_Node): Do not check for
33824         Freeze_Entity.
33825
33826 2001-10-30  Robert Dewar <dewar@gnat.com>
33827
33828         * a-reatim.ads: Minor reformatting
33829
33830 2001-10-30  Robert Dewar <dewar@gnat.com>
33831
33832         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
33833         undocumented declarations.
33834
33835 2001-10-30  Pascal Obry <obry@gnat.com>
33836
33837         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
33838         to the binder and linker.
33839         Minor style fix.
33840
33841         * mdll.ads: Fix layout.  Update copyright notice.
33842
33843         * mdll.adb: Fix layout.  Update copyright notice.
33844
33845 2001-10-30  Robert Dewar <dewar@gnat.com>
33846
33847         * usage.adb: Minor fix to output for -gnaty.
33848
33849 2001-10-30  Ed Schonberg <schonber@gnat.com>
33850
33851         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
33852         to accommodate all its possible values.
33853
33854         * a-reatim.adb (Split): Special-case handling of Time_Span_First
33855         and of small absolute values of T.
33856
33857 2001-10-30  Richard Kenner <kenner@gnat.com>
33858
33859         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
33860         set_mem_attributes since not needed and wrong if RESULT if a REG;
33861         fixes ACATS failures.
33862
33863 2001-10-30  Geert Bosch <bosch@gnat.com>
33864
33865         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
33866         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
33867
33868 2001-10-30  Robert Dewar <dewar@gnat.com>
33869
33870         * bindusg.adb: Undocument -f switch.
33871
33872         * gnatcmd.adb: Remove /FULL_ELABORATION.
33873
33874         * opt.ads (Force_RM_Elaboration_Order): Document that this is
33875         obsolescent.
33876
33877         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
33878
33879         * gnatbind.adb: Minor update of warning msg.
33880
33881 2001-10-30  Vincent Celier <celier@gnat.com>
33882
33883         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
33884         for project file switches (-P (/PROJECT_FILE=),
33885          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
33886         or MEDIUM or HIGH)
33887
33888 2001-10-30  Geert Bosch <bosch@gnat.com>
33889
33890         * decl.c: Minor whitespace fixes.
33891
33892 2001-10-30  Richard Kenner <kenner@gnat.com>
33893
33894         * utils2.c (build_allocator): Test for SIZE overflow in array case too
33895
33896 2001-10-30  Geert Bosch <bosch@gnat.com>
33897
33898         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
33899         Found due to GCC 3.0 warning of using uninitialized value.
33900
33901         * layout.adb:
33902         (Get_Max_Size): Use variant record for tracking value/expression.
33903          Makes logic clearer and prevents warnings for uninitialized variables.
33904         (Layout_Array_Type): Use variant record for tracking value/expression.
33905          Makes logic clearer and prevents warnings for uninitialized variables.
33906
33907 2001-10-30  Robert Dewar <dewar@gnat.com>
33908
33909         * lib.adb: Minor reformatting
33910
33911         * s-taprop.ads: Minor reformatting
33912
33913 2001-10-29  Laurent Guerby  <guerby@acm.org>
33914
33915         * init.c:
33916         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
33917         const.
33918         (_gnat_error_handler): Make MSG const.
33919
33920 2001-10-29  Richard Kenner <kenner@gnat.com>
33921
33922         * sysdep.c: Fix localtime_r problem on LynxOS.
33923         Also remove #elif to avoid warnings.
33924
33925         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
33926         used by this.
33927
33928         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
33929
33930 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
33931
33932         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
33933         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
33934         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
33935         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
33936         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
33937         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
33938         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
33939         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
33940         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
33941         types.ads, urealp.adb: Fix spelling errors.
33942
33943 2001-10-27  Laurent Guerby <guerby@acm.org>
33944
33945         * trans.c (gigi): Fix non determinism leading to bootstrap
33946         comparison failures for debugging information.
33947
33948 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
33949
33950         * gnat_rm.texi: Use @./@: where appropriate.
33951
33952 2001-10-26  Robert Dewar <dewar@gnat.com>
33953
33954         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
33955
33956 2001-10-26  Richard Kenner <kenner@gnat.com>
33957
33958         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
33959
33960 2001-10-26  Richard Kenner <kenner@gnat.com>
33961
33962         * decl.c (validate_size): Modify message for bad size to avoid
33963         implication that compiler is modifying the size.
33964
33965 2001-10-26  Robert Dewar <dewar@gnat.com>
33966
33967         * prj-util.adb: Minor reformatting. Fix bad header format.
33968
33969 2001-10-26  Robert Dewar <dewar@gnat.com>
33970
33971         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
33972
33973         * sinfo.ads: Clarify use of Associated_Node (documentation only).
33974
33975         * sem_ch12.adb: Change Node4 to Associated_Node. Change
33976         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
33977         much more narrowly in places where needed. These are cleanups.
33978
33979 2001-10-26  Joel Brobecker <brobecke@gnat.com>
33980
33981         * 5zosinte.ads (null_pthread): new constant.
33982
33983         * 5ztaprop.adb:
33984         (Initialize_TCB): Initialize thread ID to null, to be able to verify
33985          later that this field has been set.
33986         (Finalize_TCB): ditto.
33987         (Suspend_Task): Verify that the thread ID is not null before using it.
33988         (Resume_Task): ditto.
33989
33990         * s-tasdeb.adb:
33991         (Resume_All_Tasks): Lock the tasks list before using it.
33992         (Suspend_All_Tasks): ditto.
33993
33994 2001-10-26  Richard Kenner <kenner@gnat.com>
33995
33996         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
33997         Make constant variant of designated type for Is_Access_Constant.
33998         Call update_pointer_to with main variant.
33999
34000         * trans.c (process_freeze_entity, process_type):
34001         Call update_pointer_to on main variant.
34002
34003         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
34004         If main variant, update all other variants.
34005
34006         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
34007         TREE_STATIC.
34008
34009 2001-10-26  Robert Dewar <dewar@gnat.com>
34010
34011         * prj-util.adb: Minor reformatting
34012
34013 2001-10-26  Robert Dewar <dewar@gnat.com>
34014
34015         * prj-util.adb: Minor reformatting
34016
34017 2001-10-26  Robert Dewar <dewar@gnat.com>
34018
34019         * prj-attr.adb: Minor reformatting throughout
34020
34021 2001-10-26  Robert Dewar <dewar@gnat.com>
34022
34023         * prj-attr.ads: Minor reformatting
34024         Add ??? comment (this whole spec has almost no comments)
34025
34026 2001-10-26  Vincent Celier <celier@gnat.com>
34027
34028         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
34029         ("//") that precede the drive letter on Interix.
34030
34031 2001-10-26  Geert Bosch <bosch@gnat.com>
34032
34033         * gnat_rm.texi: Add GNAT Reference Manual.
34034
34035 2001-10-25  Robert Dewar <dewar@gnat.com>
34036
34037         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
34038         is Error. Similar change for other renaming cases.
34039
34040 2001-10-25  Robert Dewar <dewar@gnat.com>
34041
34042         * s-atacco.ads: Add pragma Inline_Always for functions.
34043         Fix header format. Add copyright 2001
34044
34045 2001-10-25  Ed Schonberg <schonber@gnat.com>
34046
34047         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
34048         return Error rather than Empty so that analysis can proceed.
34049
34050 2001-10-25  Ed Schonberg <schonber@gnat.com>
34051
34052         * sem_util.adb (Enter_Name): better handling of cascaded error
34053         messages when a unit appears in its own context.
34054
34055 2001-10-25  Ed Schonberg <schonber@gnat.com>
34056
34057         * sem_util.adb (Defining_Entity): in case of error, attach created
34058         entity to specification, so that semantic analysis can proceed.
34059
34060 2001-10-25  Robert Dewar <dewar@gnat.com>
34061
34062         * sem_util.adb
34063         (Defining_Entity): Deal with Error.
34064         (Process_End_Label): Deal with bad end label for.
34065
34066 2001-10-25  Ed Schonberg <schonber@gnat.com>
34067
34068         * sem_elab.adb (Check_A_Call): refine message when call is in an
34069         instance but callee is not declared in the generic unit.
34070
34071 2001-10-25  Ed Schonberg <schonber@gnat.com>
34072
34073         * sem_elab.adb (Check_A_Call): check for renaming before finding the
34074         enclosing unit, which may already be different from the calling unit.
34075
34076 2001-10-25  Geert Bosch <bosch@gnat.com>
34077
34078         * 4gintnam.ads: fix header format.
34079
34080 2001-10-25  Ed Schonberg <schonber@gnat.com>
34081
34082         * sem_res.adb (Resolve_Call): if the call is actually an indexing
34083         operation on the result of a parameterless call, perform elaboration
34084         check after the node has been properly rewritten.
34085
34086         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
34087         inlined within the generic tree, the defining identifier is not a
34088         compilation_unit.
34089
34090 2001-10-25  Ed Schonberg <schonber@gnat.com>
34091
34092         * sem_res.adb (Resolve): special-case resolution of Null in an
34093          instance or an inlined body to avoid view conflicts.
34094
34095         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
34096          compatibility by retrieving the access type of the generic copy.
34097
34098 2001-10-25  Robert Dewar <dewar@gnat.com>
34099
34100         * sem_ch3.adb:
34101         (Analyze_Number_Declaration): Handle error expression.
34102         (Signed_Integer_Type_Declaration): Handle error bound.
34103         (Analyze_Subtype_Indication): Handle error range.
34104
34105         * sem_util.adb (Get_Index_Bounds): Check for Error.
34106
34107 2001-10-25  Robert Dewar <dewar@gnat.com>
34108
34109         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
34110         in no run time mode.
34111
34112 2001-10-25  Pascal Obry <obry@gnat.com>
34113
34114         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
34115         mode case for ALLOC case.
34116
34117         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
34118         all platforms. Improvement of last change.
34119
34120 2001-10-25  Robert Dewar <dewar@gnat.com>
34121
34122         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
34123
34124 2001-10-25  Geert Bosch  <bosch@gnat.com>
34125
34126         * osint.adb (Is_Relative): Remove duplicate.
34127
34128 2001-10-25  Pascal Obry <obry@gnat.com>
34129
34130         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
34131         pathnames in UNIX and DOS style with drive letter.
34132         (Is_Relative): new routine.
34133
34134         * osint.adb: Minor reformatting
34135
34136         * osint.adb (Is_Relative): implementation using
34137         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
34138
34139 2001-10-25  Pascal Obry <obry@gnat.com>
34140
34141         * g-dirope.adb (Basename): correctly compute offset between the
34142         original Path and the translated one.
34143
34144         * g-dirope.adb: (Base_Name): add some comments.
34145
34146 2001-10-25  Robert Dewar <dewar@gnat.com>
34147
34148         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
34149         in HIE mode, avoids compilation abandoned message
34150
34151         * exp_imgv.adb: Correct typo in previous change
34152
34153         * exp_imgv.adb: Correct typo in previous change (not my day!)
34154
34155 2001-10-25  Robert Dewar <dewar@gnat.com>
34156
34157         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
34158
34159 2001-10-25  Pascal Obry <obry@gnat.com>
34160
34161         * g-awk.ads: Move all pragma inlines next to the routine
34162          declarations. This is more uniform with other GNAT spec.
34163
34164 2001-10-22  Geert Bosch  <bosch@gnat.com>
34165
34166         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
34167
34168 2001-10-19  Geert Bosch  <bosch@gnat.com>
34169
34170         * Makefile.in (tools, gnattools): Remove gnatmem.
34171
34172 2001-10-17  Richard Henderson  <rth@redhat.com>
34173
34174         * Makefile.in (misc.o): Depend on langhooks.h.
34175         * misc.c: Include it.
34176         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
34177         (LANG_HOOKS_DECODE_OPTION): New.
34178         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
34179
34180 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
34181
34182         * trans.c (tree_transform): Adjust to recent change in
34183         expand_asm_operands to implement named asm operands.
34184
34185 2001-10-11  Ed Schonberg  <schonber@gnat.com>
34186
34187         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
34188         renaming of discriminant for mutable record type.
34189
34190 2001-10-11  Robert Dewar  <dewar@gnat.com>
34191
34192         * validsw.adb: Properly save -gnatVn status.
34193
34194 2001-10-11  Robert Dewar <dewar@gnat.com>
34195
34196         * usage.adb: Add lines for V switch.
34197
34198         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
34199         (/VALIDITY_CHECKING).
34200
34201 2001-10-11  Ed Schonberg <schonber@gnat.com>
34202
34203         * sem_type.adb (Add_One_Interp): an operator for a type declared in
34204         an extension of System is known to be visible.
34205
34206 2001-10-11  Ed Schonberg <schonber@gnat.com>
34207
34208         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
34209         properly. Fixes regression on ACATS C34005G.
34210
34211 2001-10-11  Robert Dewar <dewar@gnat.com>
34212
34213         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
34214         loop in generic instance, since this is likely not very useful.
34215
34216 2001-10-11  Robert Dewar <dewar@gnat.com>
34217
34218         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
34219         the error message for high integrity mode.
34220
34221         * rtsfind.adb (RTE): Give message if we try to find an entity that
34222         is not available in high integrity mode.
34223
34224         * rtsfind.ads:
34225         (OK_To_Use_In_HIE_Mode): New array.
34226         (RTE): May return Empty in high integrity mode.
34227
34228         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
34229         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
34230
34231         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
34232         unit if not inlined always and in no runtime mode. Fixes problem
34233         caused by new Rtsfind changes.
34234
34235         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
34236         body is deleted.
34237
34238         * rtsfind.adb (RTE): Make sure we do not try to load unit after
34239         giving message for entity not available in high integrity mode.
34240
34241 2001-10-11  Pascal Obry <obry@gnat.com>
34242
34243         * impunit.adb: Add GNAT.CRC32.
34244
34245 2001-10-11  Ed Schonberg <schonber@gnat.com>
34246
34247         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
34248         properly the case where one universal operand in a non-static
34249         exponentiation of a real literal.
34250
34251 2001-10-11  Ed Schonberg <schonber@gnat.com>
34252
34253         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
34254         clause, return the gobal finalization list, for lack of anthing else.
34255
34256 2001-10-11  Ed Schonberg <schonber@gnat.com>
34257
34258         * exp_ch7.adb (Make_Transient_Block): if statement is within
34259         exception handler, always use new transient scope to place Clean
34260         procedure.
34261
34262 2001-10-11  Pascal Obry <obry@gnat.com>
34263
34264         * Makefile.in:
34265         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
34266         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
34267         (GNATLS_RTL_OBJS): add g-crc32.o
34268         (GNATMAKE_RTL_OBJS): add g-crc32.o
34269
34270         * ali-util.adb:
34271         (CRC_Match): new function.
34272         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
34273         instead of the previous simple checksum algorithm.
34274         (Time_Stamp_Mismatch): use CRC_Match for comparison.
34275         (Set_Source_Table): idem.
34276
34277         * ali-util.ads:
34278         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
34279         instead of simple checksum.
34280         (CRC_Match): new function.
34281         (CRC_Error): new constant.
34282
34283         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
34284         a CRC now and not a simple checksum. A CRC uses lower-case hex
34285         letters, fixes ambiguity in parsing.
34286
34287         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
34288         is what this variable will store.
34289
34290         * bcheck.adb: Change reference to chechsum in comments by CRC.
34291         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
34292         rename All_Checksum_Match to All_CRC_Match. Change due to API
34293         renaming since now GNAT does not use a simple checksum but a
34294         CRC using GNAT.CRC32.
34295
34296         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
34297         now and not anymore a simple checksum.
34298
34299         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
34300         places.
34301
34302         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
34303
34304         * scans.adb:
34305         (Restore_Scan_State): rename Checksum to CRC.
34306         (Save_Scan_State): idem.
34307
34308         * scans.ads:
34309         With GNAT.CRC32.
34310         (Checksum): rename to CRC.
34311         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
34312
34313         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
34314         GNAT.CRC32).  Update copyright notice.
34315
34316         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
34317         GNAT.CRC32).  Update copyright notice.
34318
34319         * scn.adb:
34320         (Accumulate_Checksum): removed.
34321         (Update): new procedure. Add a wide-character into the CRC.
34322
34323         * sinput-l.adb:
34324         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
34325         (Load_File): fix initialization of S (change Source_Checksum to
34326         Source_CRC)
34327
34328         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
34329         Source_CRC in S initialization.
34330
34331         * sinput.adb (Source_Checksum): renamed to Source_CRC.
34332
34333         * sinput.ads (Source_Checksum): renamed to Source_CRC.
34334         Update comments for the CRC.
34335
34336         * types.adb (Hex): Use lowercase for the letter part.
34337
34338         * types.ads (Get_Hex_String): Returns the hexadecimal representation
34339         for a word. This is currently used only for CRC. In previous version,
34340         the checksum was using a representation with all letter being
34341         upper-case. With the new implementation (using CRC) we do not remove
34342         the 32th bit of the CRC, so we can have an upper-case starting letter
34343         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
34344         It is ambigous since the CRC was optional and could be followed by
34345         options like EB, EE. So now this routines uses lower-case letter for
34346         the hexadecimal representation. Strange enough only lower case letters
34347         where checked in Scan_ALI (even if this was not a possible case).
34348
34349         * gnatvsn.ads (Library_Version): changed to 3.15a.
34350
34351         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
34352         for the compiler.
34353
34354         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
34355         for the compiler.
34356
34357         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
34358         Add 2001 to copyright notice
34359         (Accumulate_Checksum): Modify to use System.CRC32.
34360
34361         * ali-util.ads: Redo changes of previous revision to continue to use
34362         the word Checksum. Add 2001 to copyright notice.
34363
34364         * ali.adb: Undo some of previous changes, not needed.
34365         Keep the change for lower case letters in the checksum.
34366
34367         * ali.ads: Undo previous change not needed.
34368
34369         * bcheck.adb: Undo most of previous change, not needed.
34370         But do use Checksums_Match for checksum comparison.
34371
34372         * gnatls.adb: Undo most of previous change, not needed.
34373         But do use Checksums_Match for comparing checksums.
34374
34375         * lib-load.adb: Undo previous change, not needed.
34376
34377         * lib-writ.adb: Undo previous change, not needed.
34378
34379         * lib-writ.ads: Document that checksums use lower case,
34380         not upper case letters.
34381
34382         * scans.adb: Undo previous change, not needed
34383
34384         * scans.ads: Undo previous change, not needed.
34385
34386         * scn-nlit.adb: Undo previous changes, not needed.
34387
34388         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
34389
34390         * scn.adb:
34391         (Accumulate_Checksum): Use System.CRC32.
34392         (Initialize_Checksum): New procedure.
34393         Remove other changes of previous revision.
34394
34395         * sinput-p.adb: Undo previous change, not needed.
34396
34397         * sinput.adb: Undo previous change, not needed.
34398
34399         * sinput-l.adb: Undo previous change, not needed.
34400
34401         * sinput.ads: Undo previous change, not needed.  Keep only comment
34402         on new checksum algorithm
34403
34404         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
34405         Also remove a-tags and a-stream from GNAT sources.
34406
34407         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
34408
34409         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
34410
34411 2001-10-11  Geert Bosch  <bosch@gnat.com>
34412
34413         * einfo.h: Regenerate.
34414
34415         * nmake.ads: Regenerate.
34416
34417         * nmake.adb: Regenerate.
34418
34419         * sinfo.h: Regenerate.
34420
34421         * treeprs.adb: Regenerate.
34422
34423 2001-10-10  Geert Bosch  <bosch@gnat.com>
34424
34425         * gnat-style.texi: New file describing coding guidelines for Ada.
34426
34427 2001-10-10  Ed Schonberg <schonber@gnat.com>
34428
34429         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
34430         is Flag174.
34431
34432 2001-10-10  Geert Bosch  <bosch@gnat.com>
34433
34434         * snames.ads: Add new names for project facility.
34435
34436         * snames.adb: Update to reflect snames.ads changes.
34437
34438         * snames.h: Update to reflect snames.ads changes.
34439
34440 2001-10-10  Vincent Celier <celier@gnat.com>
34441
34442         * make.adb:
34443         (Add_Switches): reflect the changes for the switches attributes
34444         Default_Switches indexed by the programming language,
34445         Switches indexed by the file name.
34446         (Collect_Arguments_And_Compile): Idem.
34447         Reflect the attribute name changes.
34448
34449         * prj-attr.adb:
34450         (Initialisation_Data): Change the names of some packages and
34451         attributes.
34452         (Initialize): process case insensitive associative arrays.
34453
34454         * prj-attr.ads:
34455         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
34456
34457         * prj-dect.adb:
34458         (Parse_Attribute_Declaration): For case insensitive associative
34459          arrays, set the index string to lower case.
34460
34461         * prj-env.adb:
34462         Reflect the changes of the project attributes.
34463
34464         * prj-nmsc.adb:
34465         Replace Check_Naming_Scheme by Ada_Check and
34466         Language_Independent_Check.
34467
34468         * prj-nmsc.ads:
34469         Replaced Check_Naming_Scheme by 2 procedures:
34470         Ada_Check and Language_Independent_Check.
34471
34472         * prj-proc.adb:
34473         (Process_Declarative_Items): For case-insensitive associative
34474         arrays, set the index string to lower case.
34475         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
34476         Prj.Nmsc.Check_Naming_Scheme.
34477
34478         * prj-tree.adb:
34479         (Case_Insensitive): New function
34480         (Set_Case_Insensitive): New procedure
34481
34482         * prj-tree.ads:
34483         (Case_Insensitive): New function
34484         (Set_Case_Insensitive): New procedure
34485         (Project_Node_Record): New flag Case_Insensitive.
34486
34487         * prj-util.adb:
34488         (Value_Of): new function to get the string value of a single
34489         string variable or attribute.
34490
34491         * prj-util.ads:
34492         (Value_Of): new function to get the string value of a single
34493         string variable or attribute.
34494
34495         * prj.adb:
34496         (Ada_Default_Spec_Suffix): New function
34497         (Ada_Default_Impl_Suffix): New function
34498         Change definitions of several constants to reflect
34499         new components of record types.
34500
34501         * prj.ads:
34502         (Naming_Data): Change several components to reflect new
34503         elements of naming schemes.
34504         (Project_Data): New flags Sources_Present and
34505         Language_Independent_Checked.
34506         (Ada_Default_Spec_Suffix): New function.
34507         (Ada_Default_Impl_Suffix): New function.
34508
34509         * snames.ads:
34510         Modification of predefined names for project manager: added
34511         Implementation, Specification_Exceptions, Implementation_Exceptions,
34512         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
34513         Default_Switches, _Languages, Builder, Cross_Reference,
34514         Finder. Removed Body_Part, Specification_Append, Body_Append,
34515         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
34516         Gnatlink.
34517
34518         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
34519         Add comments.
34520
34521         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
34522         not that it is Nil_Variable_Value.
34523
34524         * prj.ads: Add ??? for uncommented declarations
34525
34526 2001-10-10  Ed Schonberg <schonber@gnat.com>
34527
34528         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
34529         constant, do not indicate possible modification, so that gigi can
34530         treat it as a bona fide constant.
34531
34532 2001-10-10  Robert Dewar <dewar@gnat.com>
34533
34534         * sem_prag.adb: Add processing for pragma External.
34535
34536         * snames.ads: Add entry for pragma External.
34537
34538         * par-prag.adb: Add pragma External.
34539
34540         * snames.adb: Updated to match snames.ads.
34541
34542 2001-10-10  Ed Schonberg <schonber@gnat.com>
34543
34544         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
34545         a dynamic task if the allocator appears in an indexed assignment
34546         or selected component assignment.
34547
34548         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
34549         For a dynamic task in an assignment statement, use target of
34550         assignment to generate meaningful name.
34551
34552 2001-10-10  Ed Schonberg <schonber@gnat.com>
34553
34554         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
34555         a generic package.
34556
34557         * einfo.ads: Body_Entity is also defined for generic package.
34558         Documentation change only
34559
34560         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
34561         others_choice for a discriminated component initialization,
34562         convert discriminant references into the corresponding discriminals.
34563
34564         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
34565         only if original type is private and expression has to be wrapped
34566         in a conversion.
34567
34568         * checks.adb:
34569         (Apply_Constraint_Check): Do not perform length check
34570         if expression is an aggregate with only an others_choice.
34571         (Length_N_Cond): two references to the same in_parameter
34572         (typically the discriminal in an init_proc) denote the same value.
34573         Two useful optimization uncovered by bugfixes above.
34574
34575 2001-10-10  Robert Dewar <dewar@gnat.com>
34576
34577         * xeinfo.adb: Change int to char in translation of enumeration types.
34578         This fixes a problem in the C representation of component alignment.
34579         Add 2001 to copyright notice
34580
34581 2001-10-10  Richard Kenner <kenner@gnat.com>
34582
34583         * decl.c: (validate_size): Do check size of object of integral type
34584         if it is a packed array type.
34585
34586 2001-10-10  Richard Kenner <kenner@gnat.com>
34587
34588         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
34589         VAR_DECL for constant if not Is_Public but -O0.
34590
34591 2001-10-10  Richard Kenner  <kenner@gnat.com>
34592
34593         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
34594
34595 2001-10-10  Geert Bosch  <bosch@gnat.com>
34596
34597         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
34598         use '/' as switch character, allowing for absolute file names.
34599
34600 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
34601
34602         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
34603         FSF address.
34604
34605 2001-10-08  Geert Bosch  <bosch@gnat.com>
34606
34607         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
34608         Automatically build utilities when files need to be regenerated.
34609
34610 2001-10-08  Geert Bosch  <bosch@gnat.com>
34611
34612         * xsnames.adb: New utility for updating snames.ads and snames.adb
34613
34614 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
34615
34616         * Make-lang.in (ADAFLAGS): Add -W -Wall.
34617         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
34618         (gnat1): Also depend on attribs.o.
34619         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
34620         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
34621         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
34622         (ADAFLAGS): Add -W -Wall.
34623         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
34624         take out CFLAGS.
34625
34626         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
34627         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
34628         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
34629         Use $(ADAC), not $(CC), as compilation command.
34630
34631         (gnattools): Depend directly on tools to build, don't use
34632         recursive make.
34633         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
34634
34635         * einfo.h, sinfo.h: New files (autogenerated).
34636
34637 2001-10-08  Richard Henderson  <rth@redhat.com>
34638
34639         * comperr.adb (Abort_In_Progress): New.
34640         (Compiler_Abort): Use it to prevent recursion.
34641
34642 2001-10-08  Robert Dewar <dewar@gnat.com>
34643
34644         * atree.adb: Set Error_Posted in Error node, helps error recovery.
34645
34646         * par-endh.adb (Output_End_Expected): We should also not test
34647         Error_Posted on the Error node, since now it is always set.
34648
34649         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
34650         to help error recovery. Part of general work on 9407-004.
34651
34652         * par.adb: Add ??? for misuse of error
34653
34654         * sem_res.adb:
34655         (Resolve): Defend against Error, fixes 9407-003.
34656         (Resolve_Discrete_Subtype_Indication): Defend against Error.
34657
34658         * sinfo.ads (N_Error): Now has Etype field (which will be set
34659         to Any_Type to help error recovery).
34660
34661 2001-10-08  Richard Kenner (kenner@gnat.com)
34662
34663         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
34664         Consistently set MEM attributes from expression; fixes
34665         bootstrap failure on x86.
34666
34667 2001-10-08  Geert Bosch  (bosch@gnat.com)
34668
34669         * 5oosinte.adb: Add 2001 to copyright notice.
34670
34671 2001-10-08  Geert Bosch  (bosch@gnat.com)
34672
34673         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
34674
34675         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
34676
34677 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
34678
34679         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
34680
34681 2001-10-05  Geert Bosch  (bosch@gnat.com)
34682
34683         * adaint.h: Small formatting fix.
34684
34685 2001-10-04  Geert Bosch  <bosch@gnat.com>
34686
34687         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
34688         Arg is int, not FILE *, in dummy version of functions.
34689
34690         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
34691         Arg is int, not FILE *.
34692
34693 2001-10-04  Geert Bosch  <bosch@gnat.com>
34694
34695         * 3lsoccon.ads: Added file, missed with initial check ins.
34696
34697         * 4lintnam.ads: Fix header format.
34698         Change Linux to GNU/Linux.
34699
34700         * 5iosinte.adb: Change Linux to GNU/Linux.
34701
34702         * 5iosinte.ads: Change Linux to GNU/Linux.
34703
34704         * 5itaprop.adb: Change Linux to GNU/Linux.
34705
34706         * 5itaspri.ads: Change Linux to GNU/Linux.
34707         Update copyright notice.
34708
34709         * 5lintman.adb: Change Linux to GNU/Linux.
34710
34711         * 5lml-tgt.adb: Change Linux to GNU/Linux.
34712
34713         * 5losinte.ads: Change Linux to GNU/Linux.
34714
34715         * 5lsystem.ads: Change Linux to GNU/Linux.
34716
34717         * 5qosinte.adb: Change Linux to GNU/Linux.
34718
34719         * 5qosinte.ads: Change Linux to GNU/Linux.
34720
34721         * 5qparame.ads: Change Linux to GNU/Linux.
34722
34723         * 5qtaprop.adb: Change Linux to GNU/Linux.
34724
34725         * 5qtaspri.ads: Change Linux to GNU/Linux.
34726         Add 2001 to copyright notice.
34727
34728         * 5vintman.ads: Change Linux to GNU/Linux.
34729         Fix header format.  Add 2001 to copyright notice.
34730
34731         * g-soccon.ads: Change Linux to GNU/Linux.
34732
34733         * g-trasym.ads: Change Linux to GNU/Linux.
34734         Add 2001 to copyright notice.
34735
34736         * memtrack.adb: Change Linux to GNU/Linux.
34737
34738         * s-intman.ads: Change Linux to GNU/Linux.
34739         Add 2001 to copyright notice.  Fix header format.
34740
34741         * s-stache.adb: Change Linux to GNU/Linux.
34742
34743         * adaint.c: Change Linux to GNU/Linux.
34744
34745         * cio.c: Change Linux to GNU/Linux.
34746
34747         * cstreams.c: Change Linux to GNU/Linux.
34748
34749         * init.c: Change Linux to GNU/Linux.
34750
34751         * gmem.c: Change Linux to GNU/Linux.
34752
34753         * tracebak.c: Change Linux to GNU/Linux.
34754
34755
34756 2001-10-02  Geert Bosch  <bosch@gnat.com>
34757
34758         * misc.c (insert_default_attributes): Add dummy version.