OSDN Git Service

31f9d19ba519afe9a8947d6820223eae2d9a1121
[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 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
8
9         PR 34081/C++
10         * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
11         Pass 'false' for the new allocate_struct_function parameter.
12         * utils.c (build_function_stub): Likewise.
13
14 2007-11-25  Richard Guenther  <rguenther@suse.de>
15
16         utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
17         (gnat_poplevel): Likewise.
18
19 2007-11-25  Eric Botcazou  <ebotcazou@adacore.com>
20
21         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
22         strict alignment, no alignment clause and a known static size, cap
23         the type alignment to the greatest power of 2 factor of the size.
24         (gnat_to_gnu_field): If the field has a component clause, is aliased
25         or of a type with strict alignment, require that its size be equal to
26         that of the type.
27         (validate_size): Use the type size as the minimum size for a type with
28         strict alignment.
29
30 2007-11-23  Samuel Tardieu  <sam@rfc1149.net>
31
32         * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
33         s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
34         s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
35         Use 'Access instead of 'Unchecked_Access in second and third
36         arguments of pthread_sigmask.
37
38 2007-11-23  Eric Botcazou  <ebotcazou@adacore.com>
39
40         * decl.c (ceil_alignment): New function.
41         (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
42         (make_packable_type): Likewise.
43
44 2007-11-22  Olivier Hainque  <hainque@adacore.com>
45
46         * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
47         to fit in 80 columns.
48
49 2007-11-21  Aurelien Jarno <aurelien@aurel32.net>
50
51         * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
52         * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
53
54 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
55
56         PR ada/34098
57         * misc.c (gnat_adjust_rli): Delete.
58         (gnat_init): Do not initialize the translation code here.
59         Do not call set_lang_adjust_rli.
60         * trans.c (init_code_table): Make static.
61         (gnat_init_stmt_group): Delete.
62         (gigi): Initialize the translation code entirely here.
63         Emit debug info for the common types here instead of...
64         * utils.c (gnat_init_decl_processing): ...here.
65         * gigi.h (init_code_table): Delete.
66         (gnat_init_stmt_group): Likewise.
67
68 2007-11-16  Olivier Hainque  <hainque@adacore.com>
69
70         * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
71         retrieving an allocator return value from a super-aligned address from
72         here to ...
73         * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
74         expect a super-aligned address for a fat or thin pointer.
75         
76 2007-11-14  Eric Botcazou  <ebotcazou@adacore.com>
77
78         * trans.c (call_to_gnu): Always set the source location on the call
79         expression.  If the function returns-by-target, also set it on the
80         address expression.
81
82 2007-11-14  Samuel Tardieu  <sam@rfc1149.net>
83
84         * adaint.c, init.c, initialize.c, link.c: Remove system-specific
85         sections of non-supported Interix target.
86
87         * s-osinte-interix.ads: Removed.
88
89         * i-cstrin.ads (chars_ptr): Make it a C convention type.
90
91 2007-11-13  Samuel Tardieu  <sam@rfc1149.net>
92
93         * a-tasatt.adb: Add a comment at the beginning of the package
94         explaining why in general 'Unchecked_Access must be used instead
95         of 'Access.
96
97         * sem_prag.adb (Process_Convention): Move the test for the
98         entity on which the Convention pragma applies down to also
99         forbid pragma Convention on enumeration literals reached
100         through renamings.
101
102 2007-11-10  Samuel Tardieu  <sam@rfc1149.net>
103
104         * a-tasatt.adb: Revert previous change for this file as it will
105         generate an error when this package is instantiated from a
106         local context.
107
108 2007-11-07  Samuel Tardieu  <sam@rfc1149.net>
109
110         * a-tasatt.adb: Type Wrapper should be declared in comment instead
111         of already declared type Node_Access.
112         Use 'Access instead of 'Unchecked_Access when applicable. Local
113         lifetime is the one of the package.
114         (Set_Value): W is allocated on the heap.
115
116         * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
117         applicable.
118         (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
119         access type.
120         (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
121         access type.
122
123         * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
124         applicable.
125         (elaboration code): Timer_Queue lifetime is the one of the
126         package.
127
128         * tracebak.c (i386 alternative): Remove useless comparaison
129         which is always false; LOWEST_ADDRESS is 0 and is never greater
130         than an unsigned integer.
131
132         * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
133         embedded check for "Ada_Version >= Ada_05".
134
135 2007-11-07  Olivier Hainque  <hainque@adacore.com>
136
137         * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
138         craft and expand comment.
139
140 2007-11-01  Eric Botcazou  <ebotcazou@adacore.com>
141
142         * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
143
144 2007-10-23  Eric Botcazou  <ebotcazou@adacore.com>
145
146         * misc.c (gnat_handle_option): Replace call to abort with
147         call to gcc_unreachable.
148         (gnat_init): Likewise.
149         (gnat_expand_expr): Likewise.
150         (fp_prec_to_size): Likewise.
151         (fp_size_to_prec): Likewise.
152
153 2007-10-23  Richard Guenther  <rguenther@suse.de>
154
155         PR bootstrap/33608
156         * tracebak.c: #undef abort after including system.h.
157
158 2007-10-20  Danny Smith <dannysmith@users.sourceforge.net>
159
160         * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
161         s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
162         for win32 targets.
163         (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
164
165 2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
166
167         * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
168         Set the protection status of the guard page based on the value of On.
169
170         * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
171
172         * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
173         (Exit_Task): Pass False to Hide_Yellow_Zone.
174
175 2007-10-15  Robert Dewar  <dewar@adacore.com>
176
177         * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
178         s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
179         a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb, 
180         checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb, 
181         freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb, 
182         gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb, 
183         mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb, 
184         prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb, 
185         sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb, 
186         s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
187         uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb, 
188         a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb, 
189         a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb, 
190         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb, 
191         a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb, 
192         a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
193         Minor reformatting.
194         Add Unreferenced and Warnings (Off) pragmas for cases of
195         variables modified calls where they are IN OUT or OUT parameters and
196         the resulting values are not subsequently referenced. In a few cases,
197         we also remove redundant code found by the new warnings.
198
199         * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads, 
200         sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
201         sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
202         sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
203         warning controlled by -gnatw.o that warns on cases of out parameter
204         values being ignored.
205
206 2007-10-15  Geert Bosch  <bosch@adacore.com>
207
208         * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
209
210         * expect.c: Initial port to arm-mentor-nucleus.
211         Use kill for __gnat_kill() on VMS.
212
213 2007-10-15  Emmanuel Briot  <briot@adacore.com>
214
215         * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
216         value.
217         (Xref_Record): Change type for Line, since in the case of a reference to
218         a predefined entity (as happens for array index types), the line is set
219         to 0.
220         Add support for parsing multiple array index types info, or
221         multiple inherited interfaces info. This information cannot be stored
222         in Xref_Entity_Record, which only supports a single instance of Tref_*,
223         and is therefore stored in the list of references instead. It has a
224         special treatement later on in tools that use this information.
225
226 2007-10-15  Tristan Gingold  <gingold@adacore.com>
227
228         * debug.adb: Document use of -gnatd.a and -gnatd.I
229
230         * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
231
232 2007-10-15  Javier Miranda  <miranda@adacore.com>
233
234         * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
235         Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
236         care of access to class-wide interface types plus removal of bizarre
237         conversion of tagged object to access type (reported by Gary
238         Dismukes). After this patch there is no need to perform any
239         additional management on these nodes in Expand_Interface_Actuals.
240
241         * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
242         that handles use of 'Access and 'Unchecked_Access applied to
243         actuals covering interface types. Such code is now
244         centralized in Expand_N_Attribute_Reference.
245
246 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
247
248         * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
249         of tagged types whose ultimate ancestor is a CPP type.
250         (Freeze_Array_Type): For a packed array type, generate an initialization
251         procedure if the type is public, to handle properly a client that
252         specifies Normalize_Scalars.
253
254 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
255
256         * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
257         inside a generic body, retrieve the full view of the entry family
258         discrete subtype if available.
259
260 2007-10-15  Thomas Quinot  <quinot@adacore.com>
261
262         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
263         attempt to generate stubs for hidden primitive operations.
264
265 2007-10-15  Vincent Celier  <celier@adacore.com>
266
267         * mlib-tgt-specific.adb (Support_For_Libraries): New function,
268         returning None, used when there is no platform specific body for
269         MLib.Tgt.Specific.
270
271 2007-10-15  Bob Duff  <duff@adacore.com>
272
273         * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
274         (passing'Unrestricted_Access of nested subprograms to Sort) with use of
275         the generic Heap_Sort_G, in order to avoid trampolines.
276
277 2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
278             Jose Ruiz  <ruiz@adacore.com>
279
280         * vx_stack_info.c: New file.
281
282         * i-forbla-unimplemented.ads: New file.
283
284         * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
285         for unsupported configurations; use it on VMS targets instead of the
286         real one.
287         (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
288         vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
289         used by VxWorks targets to have access to task-specific data and be
290         able to extract the stack boundaries for stack checking.
291         Use system-vms-ia64.ads on ivms.
292
293         * Make-lang.in: Update dependencies.
294
295         * sysdep.c (__gnat_get_stack_info): Move to a standalone file
296         (vx_stack_info.c).
297
298 2007-10-15  Vincent Celier  <celier@adacore.com>
299
300         * snames.adb, snames.ads: Add new standard name runtime_library_dir
301
302         * prj.ads (Language_Config): Add new component Runtime_Library_Dir
303
304         * prj-attr.adb: Add project level attribute Runtime_Library_Dir
305
306         * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
307         the source is unknown.
308
309         * prj-ext.adb: Spelling error fix
310
311         * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
312         95 reserved word in its name.
313         (Process_Project_Level_Array_Attributes): Process new attribute
314         Runtime_Library_Dir.
315
316         * prj-part.adb (Parse_Single_Project): Do not check the name of the
317         config project against the user project names.
318
319         * prj-proc.adb (Expression): In multi-language mode, indexes that do
320         not include a dot are always case insensitive.
321         (Process_Declarative_Items): Ditto
322         (Process_Project_Tree_Phase_1): Set Success to False in case an error is
323         detected.
324
325         * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
326         True, compare both indexes in lower case.
327
328 2007-10-15  Robert Dewar  <dewar@adacore.com>
329
330         * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
331
332 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
333
334         * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
335         association for an access component, add an association with null as
336         the expression. Remove testing for array subtypes and the setting in
337         that case of Ctyp to the array component type, which prevented proper
338         inclusion of an association for null-initialized arrays. Collapse
339         condition that tests for array subtypes into just a test of
340         Is_Partially_Initialized_Type (which already covers arrays anyway).
341
342 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
343
344         * sem_ch12.adb: Minor code reformatting.
345         (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
346         find the parent package which may have been hidden by local
347         declarations.
348
349 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
350
351         * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
352         flag of derived concurrent types, taking into account the flag setting
353         on the parent subtype and any new set of discriminants.
354
355 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
356
357         * sem_ch4.adb: Minor code and comment reformatting.
358         (Analyze_Allocator): When the designated type of an unconstrained
359         allocator is a record with unknown discriminants or an array with
360         unknown range bounds, emit a detailed error message depending on the
361         compilation mode and whether the designated type is limited.
362
363 2007-10-15  Tristan Gingold  <gingold@adacore.com>
364
365         * system-vms-ia64.ads: New file.
366
367         * system-vms_64.ads: Minor comment fix.
368
369 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
370
371         * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
372         body generated for a function with a controlling result that is a null
373         extension, discard the generated body in favor of the current explicit
374         one.
375
376 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
377
378         * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
379         examining its original form, to handle properly operator calls that
380         have been rewritten.
381
382 2007-10-15  Olivier Hainque  <hainque@adacore.com>
383
384         * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
385         instead of a procedure value in each traceback entry.
386
387         * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
388         instead of procedure value to TBK$SYMBOLIZE.
389
390         * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
391         field.
392         (TB_Entry_For): Account for the PV/FP renaming.
393
394         * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
395         add comment.
396         (Null_TB_Entry): Account for change of component name.
397         (PV_For): Rename as FP_For.
398
399 2007-10-15  Tristan Gingold  <gingold@adacore.com>
400
401         * trans.c (gnat_to_gnu): Remove the padding structure more often.
402         This optimize assignment to over-aligned record.
403
404 2007-10-15  Emmanuel Briot  <briot@adacore.com>
405
406         * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
407         interfaces.
408
409         * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
410         type, for dispatching calls.
411
412 2007-10-15  Vincent Celier  <celier@adacore.com>
413             Robert Dewar  <dewar@adacore.com>
414
415         * gnat_ugn.texi: Add documentation for switches --version and --help
416         for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
417         gnatxref, gnatfind, gnatls, and gnatclean.
418         Document -gnatw.o.
419         Mention attribute Excluded_Source_Dirs
420         Replace obsolescent attribute Locally_Removed_Files with attribute
421         Excluded_Source_Files.
422         Improve documentation of -u (gnatbind)
423         Document how to do reliable stack checking for the environmental task
424         on iVMS.
425
426         * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
427         Document attribute Excluded_Source_Files and indicate that attribute
428         Locally_Removed_Files is obsolescent.
429
430 2007-10-15  Thomas Quinot  <quinot@adacore.com>
431
432         * g-soccon-vms.ads: Fix value of MSG_WAITALL.
433
434         * gen-soccon.c: 
435         Update documentation to note that OpenVMS 8.3 or later must be used
436         to generate g-soccon-vms.ads.
437
438         * atree.adb: Add ??? comment
439
440         * exp_util.adb: Minor reformatting.
441         Add ??? comment in Kill_Dead_Code.
442
443 2007-10-15  Robert Dewar  <dewar@adacore.com>
444
445         * errout.ads: Comment clarification
446
447         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
448         (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
449
450         * lib.ads: Comment update
451
452         * init.c: Minor reformatting.
453
454         * sem_attr.adb: Minor formatting
455
456         * osint-b.ads: Minor reformatting
457
458         * sem_ch9.adb: Implement -gnatd.I switch
459
460         * g-comlin.adb: (Start): Fix handling of empty command line.
461
462         * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
463         even when -rules follows the -cargs section.
464
465 2007-10-08  Ollie Wild  <aaw@google.com>
466
467         * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
468         gnat_return_tree.
469         (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
470         gnat_return_tree.
471         (gnat_eh_runtime_type): Removed.
472         (gnat_return_tree): New function.
473
474 2007-10-08  Ben Elliston  <bje@au.ibm.com>
475
476         PR ada/33454
477         Revert:
478         2007-08-31  Ben Elliston  <bje@au.ibm.com>
479
480         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
481         when compiling for powerpc64-*-linux.
482         * system-linux-ppc64.ads: New file.
483
484 2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
485
486         Mapped location support
487         * back_end.adb (Call_Back_End): Pass information about source
488         files instead of units to gigi.
489         * gigi.h (struct File_Info_Type): New.
490         (gigi): Rename and change type of number_units parameter, change
491         type of file_info_ptr parameter.
492         * trans.c (number_files): New global variable.
493         (gigi): Rename and change type of number_units parameter, change
494         type of file_info_ptr parameter.
495         If mapped location support is enabled, create the isomorphic mapping
496         between source files and line maps.
497         (Sloc_to_locus): If mapped location support is enabled, translate
498         source location into mapped location.
499         (annotate_with_node): Rename into set_expr_location_from_node.
500         Call set_expr_location instead of annotate_with_locus.
501         (Pragma_to_gnu): Adjust for above change.
502         (Loop_Statement_to_gnu): Likewise.
503         (call_to_gnu): Likewise.
504         (Handled_Sequence_Of_Statements_to_gnu): Likewise.
505         (gnat_to_gnu): Likewise.
506         (add_stmt_with_node): Likewise.
507         (add_cleanup): Likewise.
508         * utils.c (gnat_init_decl_processing): Do not set input_line.
509
510 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
511
512         * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
513         (Applicable_Use): Emit a warning when a package tries to use itself.
514         (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
515         is already in use or the package where it is declared is in use or is
516         declared in the current package.
517         (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
518
519         * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
520         s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
521         s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
522
523 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
524
525         * a-calend-vms.adb, a-calend.adb: 
526         Add a section on leap seconds control along with two entities used to
527         enable and disable leap seconds support. The array Leap_Second_Times is
528         now constant and contains hard time values pre-generated. Remove
529         all elaboration code used to populate the table of leap seconds.
530
531         * bindgen.adb: 
532         Add entity Leap_Seconds_Support to the list of global run-time variables
533         along with a comment on its usage and values.
534         (Gen_Adainit_Ada): Add code to generate the declaration and import of
535         Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
536         or one (enabled) depending on the presence of binder switch "-y".
537         (Gen_Adainit_C): Add code to generate the declaration of external int
538         __gl_leap_seconds_support. Set is value to zero (disabled) or one
539         (enabled) depending on the presence of binder switch "-y".
540
541         * init.c: Add __gl_leap_seconds_support to the list of global values
542         computed by the binder.
543
544 2007-09-26  Jerome Guitton  <guitton@adacore.com>
545
546         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
547         s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
548          s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
549         s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
550
551         * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
552
553         * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
554         function which can be called by the debugger to interrupt the tasks of
555         an Ada application asynchronously, as needed on VxWorks.
556         (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
557
558         * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
559         renamed from Stop_All_Tasks. Update comments.
560         (Stop_All_tasks): New function declaration.
561
562 2007-09-26  Olivier Hainque  <hainque@adacore.com>
563
564         * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
565         #include <utime.h> and #define GCC_RESOURCE_H before
566         #include <sys/wait.h>.
567         Add more protections in __gnat_translate_vms.
568
569         * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
570         #include <sys/wait.h>.
571
572 2007-09-26  Thomas Quinot  <quinot@adacore.com>
573             Sergey Rybin  <rybin@adacore.com>
574
575         * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
576
577         * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
578         where it belongs.
579
580         * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
581
582         * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
583         where it belongs.
584
585         * sem_dist.ads: Minor comment fix
586
587         * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
588
589 2007-09-26  Javier Miranda  <miranda@adacore.com>
590             Eric Botcazou  <ebotcazou@adacore.com>
591
592         * a-tags.adb: 
593         (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
594          indirection added to the HT_Link component of the TSD. This is required
595          to statically allocate the TSD.
596
597         * a-tags.ads: 
598         Minor reordering of the declarations in the private part. Required to
599         add a level of indirection to the contents of the TSD component HT_Link.
600         This is required to statically allocate the TSD.
601
602         * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
603         Is_Statically_Allocated set from constant objects.
604         Do not make exported constants created by the compiler volatile.
605         (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
606         as read-only.
607
608         * trans.c (Identifier_to_gnu): For constants, unshare initializers
609         before returning them.
610
611         * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
612         public part of the package.
613         (Make_DT): Move HT_Link component out of the TSD record. For this
614         purpose Make_DT now declares a separate object that stores the
615         HT_Link value, and initializes the TSD component with the address
616         of this new object. The addition of this level of indirection is
617         required to statically allocate the TSD because the TSD cannot
618         have variable components.
619         (Expand_Interface_Conversion): Improve the expanded code.
620         (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
621
622         * sem_disp.adb (Check_Dispatching_Operation): In case of a body
623         declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
624         if we are building static dispatch tables then we must not generate
625         extra code to register the primitive because the dispatch table will
626         be built at the end of the library package; otherwise we notify that
627         we cannot build the static dispatch table.
628
629 2007-09-26  Robert Dewar  <dewar@adacore.com>
630
631         * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
632         overlays.
633
634         * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
635         (Analyze_Record_Representation_Clause): Suppress junk warning for
636         missing component clause.
637         (Analyze_Attribute_Definition_Clause, case Address): Apply the special
638         tests for controlled type overlay to composites with controlled
639         components.
640         (Analyze_Record_Representation_Clause): Add reference for component name
641
642 2007-09-26  Javier Miranda  <miranda@adacore.com>
643             Gary Dismukes  <dismukes@adacore.com>
644
645         * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
646         for thunks associated with interface types.
647
648         * einfo.ads: Improve documentatation of Is_Internal
649         (Is_Thunk): New attribute applicable to subprograms. True for thunks
650         associated with interface types.
651         Extensive comment fixes regarding flags that appear in all entities. The
652         documentation is now consistent for all such flags (there were a number
653         of errors in the documentation in this regard).
654
655         * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
656
657         * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
658         of these procedures are passed a function call that already has
659         build-in-place actuals (testing new flag
660         Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
661         the case where processing continues.
662         (Expand_Call): If the call is generated from a thunk body then we
663         propagate the extra actuals associated with the accessibility
664         level of the access type actuals.
665
666         * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
667         of each extra formal of a protected operation to reference the
668         corresponding extra formal of the subprogram denoted by the
669         operation's Protected_Body_Subprogram.
670         
671         * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
672         N_Function_Call nodes.
673
674 2007-09-26  Robert Dewar  <dewar@adacore.com>
675
676         * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
677
678         * debug.adb: Add d.s flag.
679
680 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
681
682         * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
683         debug variable so that it won't be initialized when pragma
684         Initialize_Scalars is in effect.
685
686 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
687
688         * freeze.adb (Freeze_Entity): Remove check for preelaborable
689         initialization of a full view. This is moved to
690         Analyze_Package_Specification.
691
692         * sem_ch7.adb (Analyze_Package_Specification): Add check for
693         preelaborable initialization of a full view in entity loop.
694         (Uninstall_Declarations): If entity is a use-visible compilation unit,
695         its child units are use-visible only if they are visible child units.
696
697         * sem_util.adb (Is_Preelaborable_Expression): New function to determine
698         whether an expression can be used within a type declaration that
699         requires preelaborable init.
700         (Check_Components): Replace inline code that does partial checking for
701         preelaborable default expressions with call to
702         Is_Preelaborable_Expression.
703         (Has_Preelaborable_Initialization): In the case of a generic actual
704         subtype, (that is, Is_Generic_Actual is True), return the result of
705         applying Has_Preelaborable_Initialization to the generic actual's base
706         type.
707
708 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
709
710         * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
711         call to Jan_1_Day _Of_Week to optimize its performance.
712         (Is_Leap): Move the routine to the scope of Week_In_Year.
713         (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
714         weekday on which January 1 falls of Year - 1 and Year + 1. This function
715         avoids calling Time_Of and Split, thus making it more efficent.
716         (Week_In_Year): Reimplemented in oder to follow ISO 8601.
717
718         * g-calend.ads (Week_In_Year): Change comment to reflect new
719         implementation.
720
721 2007-09-26  Emmanuel Briot  <briot@adacore.com>
722
723         * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
724         Command_Line): New types
725         (Define_Alias, Define_Prefix, Free): New subprograms. These provide
726         support for defining how switches can be grouped on a command line (as
727         is the case for -gnatw... for GNAT), and how simple switches can be
728         used as aliases for more complex switches (-gnatwa is same as
729         -gnatwbcef...)
730         (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
731         (Start, Current_*): New subprograms
732         Added support for parsing an array of strings in addition to the real
733         command line.
734         (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
735          be moved from the body to the private part of the spec.
736         (*): All subprograms now have an extra parameter with default value to
737         specify which parser should be used. For backward compatibility, it
738         defaults to parsing the command line of the application. They were also
739         modified to properly handle cases where each of the argument does not
740         start at index 1 (which is always true for Ada.Command_Line, but not
741         when processing any Argument_List).
742         (Free): New subprogram
743         (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
744         Argument): New subprograms
745         (Switch_Parameter_Type): New enum, which clarifies the code. The extra
746         special characters like ':', '=',... are now handled in a single place,
747         which makes the code more extensible eventually.
748         (Getopt, Full_Switch): When the switch was returned as part of the
749         special character '*', make sure it is prepended by the switch character
750         ('-' in general), so that the application knows whether "foo" or "-foo"
751         was specified on the command line.
752
753 2007-09-26  Florian Villoing  <villoing@adacore.com>
754
755         * g-dirope.adb (Remove_Dir): In case we are removing directories
756         recursively, make sure that if an exception is raised during the
757         processing, the current working directory is reset to its initial
758         value before propagating the exception.
759
760 2007-09-26  Vincent Celier  <celier@adacore.com>
761
762         * gnatbind.adb: If there are several ALI files specified and there is
763         a main program to bind, the first ALI is expected to contain the main
764         subprogram and the names of the binder generated files will be derived
765         from the first ALI file name.
766         (Gnatbind): Fix insertion character in invocation of Error_Msg
767
768 2007-09-26  Vincent Celier  <celier@adacore.com>
769
770         * gnatcmd.adb (Check_Files): Do not include sources that have been
771         removed by attributes Exclude_Source_Files or Locally_Removed_Files.
772
773 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
774
775         * lib-xref.ads, lib-xref.adb: The entry for array types now carries
776         information about each of its index types, following the type
777         reference for its component type.
778
779 2007-09-26  Vincent Celier  <celier@adacore.com>
780
781         * make.adb: (Kill): New procedure (__gnat_kill imported)
782         (Running_Compile, Outstanding_Compiles): Global variables that
783         were previously local to procedure Compile_Sources.
784         (Sigint_Intercepted): Send signal SIGINT to all outstanding
785         compilation processes.
786
787         (Gnatmake): If project files are used, create the mapping of all the
788         sources, so that the correct paths will be found.
789
790         * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
791
792 2007-09-26  Vincent Celier  <celier@adacore.com>
793
794         * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
795
796         * prj.ads, prj.adb (Default_Language): Remove function, no longer used
797         Replace components Compiler_Min_Options and Binder_Min_Options with
798         Compiler_Required_Switches and Binder_Required_Switches in record
799         Language_Config.
800         Remove components Default_Language and Config in Project_Tree_Data,
801         no longer used.
802
803         * prj-attr.adb: New attributes Required_Switches (<language>) in
804         packages Compiler and Binder.
805
806         * prj-nmsc.adb: Major rewrite of the processing of configuration
807         attributes for gprbuild. No impact on GNAT tools.
808
809         * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
810         process configuration attributes: this is done in Prj.Nmsc.Check.
811         (Recursive_Process): Make a full copy of packages inherited from project
812         being extended, instead of a shallow copy.
813         (Process_Project_Tree_Phase_1): New procedure
814         (Process_Project_Tree_Phase_1): New procedure
815         (Process): Implementation now uses the two new procedures
816
817         * prj-util.adb (Executable_Of): Get the suffix and the default suffix
818         from the project config, not the tree config that no longer exists.
819
820 2007-09-26  Vincent Celier  <celier@adacore.com>
821
822         * Make-lang.in: Update dependencies..
823
824 2007-09-26  Vincent Celier  <celier@adacore.com>
825
826         * osint.adb, osint.ads: Minor reformatting
827
828         * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
829
830 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
831
832         * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
833         message to cite use of <> in aggregate component associations rather
834         than wrongly indicating use of limited aggregates.
835
836 2007-09-26  Robert Dewar  <dewar@adacore.com>
837
838         * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
839         Address_Taken.
840
841 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
842
843         * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
844         ancestor of the derived type, the operations are inherited from the
845         primary dispatch table of the parent.
846         (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
847         when the context is an explicit type conversion.
848
849 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
850
851         * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
852         rule for qualified expressions properly, to detect improper conversions
853         and resolve some cases of overloading.
854
855 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
856
857         * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
858         proper kind of reference to the primitive operation, for better source
859         navigation.
860         (Valid_Conversion): A tagged conversion is legal if both operands are
861         tagged.
862
863 2007-09-26  Robert Dewar  <dewar@adacore.com>
864
865         * sem_warn.adb (Check_References): Catch more cases of unreferenced
866         packages.
867
868 2007-09-26  Vincent Celier  <celier@adacore.com>
869
870         * snames.adb, snames.ads: Change Include_Option to Include_Switches
871
872 2007-09-26  Robert Dewar  <dewar@adacore.com>
873
874         * s-wchstw.adb: provide messages for run time unit exceptions
875
876         * a-witeio.adb: Minor reformatting
877
878         * exp_ch13.adb: Minor reformatting
879
880 2007-09-26  Sergey Rybin  <rybin@adacore.com>
881
882         * vms_data.ads: Revise gnatmetric qualifiers.
883         Add qualified for the new gnatbind option '-y'
884
885         * gnat_ugn.texi: Revise the gnatmetric section.
886         Add entry for new gnatbind option '-y'.
887
888         * gnat_rm.texi: Minor spelling correction.
889         Document restriction on overlaying controlled types
890
891 2007-09-26  Vincent Celier  <celier@adacore.com>
892
893         * makegpr.adb (Link_Executables): Do not fail when the root project has
894         no sources, but is an extending project.
895
896 2007-09-25  Eric Botcazou  <ebotcazou@adacore.com>
897
898         * trans.c: Fix misplaced #define.
899
900 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
901
902         * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
903         the TYPE_REF_CAN_ALIAS_ALL flag to the result.
904
905 2007-09-21  Olivier Hainque  <hainque@adacore.com>
906
907         * utils.c (type_for_nonaliased_component_p): Return false for
908         all AGGREGATE_TYPEs.
909
910 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
911
912         * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
913         object covered by 13.3(19) volatile.
914
915 2007-09-12  Eric Botcazou  <ebotcazou@adacore.com>
916
917         PR ada/26797
918         PR ada/32407
919         * utils.c (unchecked_convert): Use a subtype as the intermediate type
920         in the special VIEW_CONVERT_EXPR case.
921
922 2007-09-12  Robert Dewar  <dewar@adacore.com>
923
924         * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
925
926         * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
927         lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
928         s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
929         s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
930         s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
931         s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
932         s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
933         s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
934         a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads, 
935         g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads, 
936         s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb, 
937         s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb, 
938         snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads, 
939         s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads, 
940         s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads, 
941         s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads, 
942         s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
943         pragma Compiler_Unit and adds it to relevant library units.
944
945 2007-09-12  Ed Schonberg  <schonberg@adacore.com>
946
947         * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
948         a box need not correspond to any component.
949
950 2007-09-12  Robert Dewar  <dewar@adacore.com>
951
952         * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
953         the tasking version of the Ada run time when foreign threads are
954         present and there are no explicit Ada tasks or tasking constructs.
955
956         * gnat_rm.texi: Clarify documentation of GNAT.Threads.
957
958 2007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>
959
960         * bindusg.adb (Display): Correct comment for switch -X. Add a line for
961         the usage of switch -y.
962
963         * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
964         when switch -y is present.
965
966         * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
967         leap seconds in Ada.Calendar and its children.
968
969 2007-09-12  Jose Ruiz  <ruiz@adacore.com>
970
971         * a-extiti.ads (Timer): The discriminant is a "not null access
972         constant" in the Reference Manual.
973         (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
974
975 2007-09-12  Robert Dewar  <dewar@adacore.com>
976
977         * a-swuwha.adb: Remove junk RM header
978
979 2007-09-12  Vincent Celier  <celier@adacore.com>
980
981         * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
982         indicator
983
984         * g-bytswa.ads: Minor reformatting
985
986 2007-09-12  Thomas Quinot  <quinot@adacore.com>
987
988         * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads: 
989         Add new constant Thread_Blocking_IO, always True by default, set False
990         on a per-runtime basis.
991         (Need_Netdb_Buffer): New constant.
992
993 2007-09-12  Arnaud Charlet  <charlet@adacore.com>
994
995         * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
996         Added renames for corresponding functions in System.Partition_Interface.
997
998 2007-09-12  Doug Rupp  <rupp@adacore.com>
999
1000         * Makefile.in: Remove VMS specific System.CRTL packages which are no
1001         longer needed.
1002
1003         * s-crtl-vms64.ads: Removed.
1004
1005 2007-09-12  Olivier Hainque  <hainque@adacore.com>
1006
1007         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
1008         with discriminant constraints, generalize the code for BIT_FIELDs
1009         to PACKED fields of constant size and propagate DECL_PACKED.
1010
1011 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
1012
1013         * decl.c (array_type_has_nonaliased_component): New predicate.
1014         (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
1015         set the TYPE_NONALIASED_COMPONENT flag on the type.
1016         <E_Array_Subtype>: Likewise.
1017         * gigi.h (type_for_nonaliased_component_p): Declare.
1018         * utils.c (type_for_nonaliased_component_p): New predicate.
1019         (create_field_decl): Invoke the above predicate to set the
1020         DECL_NONADDRESSABLE_P flag on the field.
1021
1022 2007-09-11  Javier Miranda  <miranda@adacore.com>
1023
1024         * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
1025         in library level record type entities if we are generating statically
1026         allocated dispatch tables.
1027
1028         * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
1029         importing/exporting the _tag declaration by new code
1030         importing/exporting the dispatch table wrapper. This change allows us
1031         to statically allocate of the TSD.
1032         (Make_DT.Export_DT): New procedure.
1033         (Build_Static_DT): New function.
1034         (Has_DT): New function.
1035
1036         * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
1037         True_Constant and Current_Value. Required to statically
1038         allocate the dispatch tables.
1039         (Check_Allocator): Make function iterative instead of recursive.
1040         Also return inner allocator node, when present, so that we do not have
1041         to look for that node again in the caller.
1042
1043 2007-09-11  Jan Hubicka <jh@suse.cz>
1044
1045         * misc.c (gnat_expand_body): Kill.
1046         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
1047
1048 2007-09-10  Robert Dewar  <dewar@adacore.com>
1049
1050         * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
1051         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
1052         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
1053         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
1054         ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
1055         bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
1056         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
1057         butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
1058         comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
1059         elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
1060         err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
1061         exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
1062         exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
1063         exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
1064         exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
1065         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
1066         exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
1067         exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
1068         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
1069         exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
1070         exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
1071         exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
1072         fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
1073         get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
1074         gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
1075         gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
1076         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
1077         gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
1078         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
1079         gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
1080         inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
1081         lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
1082         lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
1083         make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
1084         mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
1085         mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
1086         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
1087         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
1088         osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
1089         osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
1090         par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
1091         par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
1092         par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
1093         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
1094         par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
1095         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
1096         prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
1097         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
1098         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
1099         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
1100         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
1101         prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
1102         rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
1103         scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
1104         sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
1105         sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
1106         sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
1107         sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
1108         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
1109         sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
1110         sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
1111         sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
1112         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
1113         sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
1114         sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
1115         sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
1116         sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
1117         sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
1118         stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
1119         styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
1120         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
1121         switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
1122         tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
1123         treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
1124         types.h, uintp.h, urealp.h, usage.adb, usage.ads,
1125         validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
1126         xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
1127         xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
1128         gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
1129         mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
1130         symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
1131         mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
1132         mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
1133
1134 2007-09-10  Emmanuel Briot  <briot@adacore.com>
1135
1136         * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
1137         classes ("[]").
1138
1139 2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>
1140
1141         * adaint.c (__gnat_translate_vms): new function.
1142
1143 2007-09-10  Gary Dismukes  <dismukes@adacore.com>
1144             Thomas Quinot  <quinot@adacore.com>
1145
1146         * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
1147         create an abstract subprogram in the case of 'Input. For 'Output we now
1148         create a real spec/body when the type is abstract, since it can
1149         potentially be called.
1150         (Predefined_Primitive_Bodies): Now allow the creation of a predefined
1151         body for 'Output when the type is abstract (only the creation of the
1152         body for 'Input is excluded when the type is abstract).
1153         (Stream_Operation_OK): Add an additional condition in the return
1154         statement, so that False will be returned for TTS_Stream_Input if the
1155         associated tagged type is an abstract extension. Add comments for
1156         return statement.
1157         (Expand_N_Object_Declaration): For the case of a shared passive
1158         variable, insert init proc call only after the shared variable
1159         procedures have been processed, because the IP call needs to undergo
1160         shared passive variable reference expansion, which requires these
1161         procedures to be available (and elaborated).
1162
1163 2007-09-10  Vincent Celier  <celier@adacore.com>
1164
1165         * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
1166         parameter Runtime_Project.
1167
1168 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
1169
1170         * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
1171         given a box association, the type of the component is discriminated,
1172         and the value of the discriminant is the discriminant of the enclosing
1173         type, retrieve its value from the aggregate itself, where it must have
1174         been supplied.
1175
1176         * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
1177         to remove other spurious ambiguities on arithmetic operations involving
1178         literals and addresses, on systems where Address is a visible integer
1179         type, when the operator is called in functional notation.
1180         (Try_Primitive_Operation): Within an instance, a call in prefixed form
1181         is legal when the types match, even if the operation is currently
1182         hidden.
1183
1184 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
1185
1186         * sem_ch12.adb (Build_Local_Package): A formal package with no
1187         associations is legal if all formals have defaults. It is not
1188         equivalent to a formal declared with a box.
1189
1190 2007-09-10  Sergey Rybin  <rybin@adacore.com>
1191
1192         * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
1193
1194 2007-09-10  Sergey Rybin  <rybin@adacore.com>
1195
1196         * gnat_ugn.texi: Add description of the new '-lratio' option
1197         Update 7.3.1 section about availability of the feature.
1198
1199 2007-09-10  Thomas Quinot  <quinot@adacore.com>
1200
1201         * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
1202         inserted node.
1203
1204 2007-09-10  Olivier Hainque  <hainque@adacore.com>
1205
1206         * Makefile.in: (mips-irix section): Activate build of libgmem.
1207
1208 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
1209
1210         * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
1211         x87 registers.
1212
1213 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
1214
1215         * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
1216         a debug renaming declaration specially.
1217
1218 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
1219
1220         * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
1221         which a constant renaming is treated as a normal object declaration.
1222         * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
1223         the N_Indexed_Component case.
1224         <N_Indexed_Component>: Fall through to above case.
1225         <N_Object_Renaming_Declaration>: Return true for all composite types.
1226
1227 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
1228
1229         * decl.c (make_packable_type): If the new type has been given BLKmode,
1230         try again to get an integral mode for it.
1231
1232 2007-09-07  Eric Botcazou  <ebotcazou@adacore.com>
1233
1234         Re-apply accidentally reverted change:
1235
1236         2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
1237
1238         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
1239         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
1240         and _Unwind_SWord with _sleb128_t.
1241
1242 2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>
1243
1244         * trans.c (convert_with_check): Update call to real_2expN.
1245
1246 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
1247
1248         * trans.c (Compilation_unit_to_gnu): Use set_cfun.
1249         * utils.c (end_subprog_body): Likewise.
1250
1251 2007-09-03  Nick Clifton  <nickc@redhat.com>
1252
1253         * Make-lang.in: Change copyright header to refer to version 3 of
1254         the GNU General Public License and to point readers at the
1255         COPYING3 file and the FSF's license web page.
1256         * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
1257         Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
1258         namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
1259         treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
1260         Likewise.
1261
1262 2007-08-31  Vincent Celier  <celier@adacore.com>
1263
1264         PR ada/4720
1265
1266         * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb, 
1267         gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
1268         (Check_Version_And_Help): New procedure in package Switch to process
1269         switches --version and --help.
1270         Use Check_Version_And_Help in GNAT tools
1271
1272         * make.adb:  Ditto.
1273         (Compile_Sources): Make sure that sources that are "excluded" are not
1274         compiled.
1275         (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
1276         project file is used.
1277         (Version_Switch): Remove, moved to Switch
1278         (Help_Switch): Remove, moved to Switch
1279         (Display_Version): Remove, moved to Switch
1280
1281         * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
1282         package Switch to process switches --version and --help.
1283         (Display_Version): New procedure
1284
1285         * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
1286
1287 2007-08-31  Javier Miranda  <miranda@adacore.com>
1288
1289         * a-tags.adb (Internal_Tag): Protect the run-time against wrong
1290         internal tags.
1291
1292 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
1293
1294         * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
1295         (Mark_Non_Null): If the node for which we just generated an access check
1296         is a reference to an *in* parameter and the reference appears in the
1297         declarative part of a subprogram body, mark the node as known non null.
1298
1299 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
1300
1301         * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
1302         structure of E_Exception to reflect the new flag.
1303         (Is_Raised, Set_Is_Raised): New inlined routines.
1304         Update the usage of available flag to reflect the addition of Is_Raised.
1305         (Is_Raised, Set_Is_Raised): Bodies of new routines.
1306         (Write_Entity_Flags): Write the status of flag Is_Raised.
1307         (Is_Descendent_Of_Address): New entity flag, to simplify handling of
1308         spurious ambiguities when integer literals appear in the context of an
1309         address type that is a visible integer type.
1310
1311         * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
1312         exceptions never being raised.
1313         (Analyze_Raise_Statement): When analyzing an exception, mark it as being
1314         explicitly raised.
1315
1316 2007-08-31  Javier Miranda  <miranda@adacore.com>
1317
1318         * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
1319         statement when compiling under restriction No_Exceptions_Proparation.
1320
1321 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
1322
1323         * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
1324         initialization aggregate for the type, generate itype references for
1325         thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
1326
1327 2007-08-31  Gary Dismukes  <dismukes@adacore.com>
1328
1329         * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
1330         library-level package renaming, pass the declaration associated with
1331         the renaming's special debug variable to Qualify_Entity_Names to ensure
1332         that its encoded name is properly qualified.
1333
1334         * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
1335         occurring in the list of entities to qualify, and do not attempt to
1336         traverse an entity list in that case. Variables associated with
1337 `       library-level package renamings can now occur in the table.
1338
1339         * exp_dbug.ads: Revise documentation of the encoding for renaming
1340         declarations.
1341
1342 2007-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1343
1344         * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
1345         access type points to an unconstrained array.
1346
1347 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
1348
1349         * restrict.adb, namet.adb, par-util.adb: Remove redundant type
1350         conversion.
1351
1352         * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
1353         simple redundant qualifications. The check is performed whenever the
1354         expression is a non-overloaded identifier.
1355         (Resolve_Type_Conversion): Enchance the redundant type conversion check
1356         to include loop parameters.
1357         (Valid_Conversion): Avoid generation of spurious error message.
1358
1359 2007-08-31  Bob Duff  <duff@adacore.com>
1360
1361         * par-ch4.adb (P_Simple_Expression): Fold long sequences of
1362         concatenations of string literals into a single literal, in order to
1363         avoid very deep recursion in the front end, which was causing stack
1364         overflow.
1365
1366         * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
1367         string, and the right operand is a string literal (the case of "" &
1368         "..."), optimize by avoiding copying the right operand -- just use the
1369         value of the right operand directly.
1370
1371         * stringt.adb (Store_String_Chars): Optimize by growing the
1372         String_Chars table all at once, rather than appending characters one by
1373         one.
1374         (Write_String_Table_Entry): If the string to be printed is very long,
1375         just print the first few characters, followed by the length. Otherwise,
1376         doing "pn(n)" in the debugger can take an extremely long time.
1377
1378         * sem_prag.adb (Process_Interface_Name): Replace loop doing
1379         Store_String_Char with Store_String_Chars.
1380
1381 2007-08-31  Vincent Celier  <celier@adacore.com>
1382
1383         * prj-attr.adb: Add new attribute Excluded_Source_Files
1384
1385         * prj-nmsc.adb: Use attribute Excluded_Source_Files before
1386         Locally_Removed_Files.
1387
1388         * snames.ads, snames.adb: New standard name Excluded_Source_Files
1389
1390 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
1391
1392         * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
1393         clauses of subunits, ignore limited_with_clauses that are illegal and
1394         have not been fully analyzed.
1395
1396 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
1397
1398         * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
1399         flag, for effiency. It is called when analyzing arithmetic operators
1400         and also for actuals in calls that are universal_integers. The flag is
1401         set for the predefined type address, and for any type or subtype
1402         derived from it.
1403
1404         * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
1405         Universal_Integer, when the formal is a descendent of address and the
1406         call appears in user code.
1407         (Analyze_Selected_Component): if the prefix is a private extension, the
1408         tag component is visible.
1409
1410         * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
1411         entity flag.
1412
1413 2007-08-31  Robert Dewar  <dewar@adacore.com>
1414
1415         * s-fileio.adb (Open): Normalize file name to lower case in non-case
1416         sensitive file name systems to avoid unexpected mismatch in Vista.
1417
1418 2007-08-31  Vincent Celier  <celier@adacore.com>
1419
1420         * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
1421
1422 2007-08-31  Vincent Celier  <celier@adacore.com>
1423
1424         * symbols-vms.adb (Initialize): Read symbol files with continuation
1425         lines
1426         (Finalize): If symbol is long, split the line
1427
1428 2007-08-31  Vincent Celier  <celier@adacore.com>
1429
1430         * fmap.ads: Minor comment updates
1431
1432 2007-08-31  GNAT Script  <nobody@adacore.com>
1433
1434         * Make-lang.in: Makefile automatically updated
1435
1436 2007-08-31  Bob Duff  <duff@adacore.com>
1437
1438         * sinfo.ads: Minor comment fix.
1439
1440 2007-08-31  Thomas Quinot  <quinot@adacore.com>
1441
1442         * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
1443         with implementation.
1444         Documentation cleanup only.
1445
1446 2007-08-31  Sergey Rybin  <rybin@adacore.com>
1447
1448         * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
1449         gnatpp '--separate-stmt-name' option.
1450         Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
1451         option.
1452
1453         * gnat_ugn.texi: Add description for the new gnatpp
1454         '--separate-stmt-name' and '--use-on-new-line' options.
1455
1456 2007-08-31  Ben Elliston  <bje@au.ibm.com>
1457
1458         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
1459         when compiling for powerpc64-*-linux.
1460         * system-linux-ppc64.ads: New file.
1461
1462 2007-08-22  Krister Walfridsson  <cato@df.lth.se>
1463
1464         * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
1465         NetBSD.
1466
1467 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1468
1469         * misc.c (gnat_type_max_size): Constify.
1470
1471 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
1472
1473         * cstand.adb (Create_Standard): Create an entity for a zero-sized type
1474         associated with Standard_Debug_Renaming_Type, to be used as the type of
1475         the special variables whose names provide debugger encodings for
1476         renaming declarations.
1477
1478         * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
1479         (Set_Debug_Renaming_Link): Change to set Node25.
1480         (Write_Field13_Name): Remove case for E_Enumeration_Literal.
1481         (Write_Field25_Name): Add case for E_Variable to output
1482         "Debug_Renaming_Link".
1483         (Write_Field23_Name): Correct the output string for "Limited_View".
1484
1485         * exp_dbug.adb: Add with and use of Tbuild.
1486         (Debug_Renaming_Declaration): Replace creation of an enumeration type
1487         and literal with creation of a variable of type
1488         Standard_Debug_Renaming_Type whose name encodes both the renamed object
1489         and the entity of the renaming declaration.
1490         (Qualify_Entity_Name): Add the delayed qualification of the entity name
1491         part of the name of a variable that has a Debug_Renaming_Link.
1492
1493         * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
1494         special type to be associated with variables that provide debugger
1495         encodings for renaming declarations.
1496
1497 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
1498             Ed Schonberg  <schonberg@adacore.com>
1499             Javier Miranda  <miranda@adacore.com>
1500
1501         * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
1502         ancestor part given by an aggregate to test for an unchecked conversion,
1503         since this can occur in some cases when the ancestor part is a function
1504         call, and we don't want to fall into the recursive call to this
1505         procedure in that case.
1506
1507         * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
1508         stream attributes on limited types to account for user-specified
1509         attributes as well as whether Input (resp. Output) becomes available
1510         due to Read (resp. Write) being available for the type. Change Boolean
1511         variable to the more accurate name
1512         Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
1513         double-"not" predicate at beginning of return statement to more
1514         understandable form.
1515
1516         * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
1517         return has an associated N_Handled_Sequence_Of_Statements, then wrap it
1518         in a block statement and use that as the first statement of the
1519         expanded return rather than incorrectly using the handled sequence as
1520         the first statement.
1521
1522         * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
1523         operation, generate an explicit freeze node for it rather than
1524         generating extra formals, to ensure that gigi has the proper order of
1525         elaboration for anonymous subtypes in the signature of the subprograms.
1526         (Build_In_Place_Formal): Move assertion to beginning of loop.
1527         (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
1528         applied to a function call (occurs for some cases of 'Input).
1529         (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
1530         applied to a function call (occurs for some cases of 'Input).
1531
1532         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
1533         2005, generate an extended return statement enclosing the result object
1534         and 'Read call.
1535
1536         * freeze.adb (Freeze_Record_Type): Extend the current management of
1537         components that are access type with an allocator as default value: add
1538         missing support to the use of qualified expressions of the
1539         allocator (which also cause freezing of the designated type!)
1540         (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
1541         dispatching operation, since extra formals may be needed by calls to
1542         build-in-place functions (such as stream 'Input).
1543
1544         * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
1545         formals for 'Constrained and accessibility level in the case of a
1546         predefined dispatching operation.
1547
1548         * exp_util.adb (Insert_Actions): A protected body is a valid insertion
1549         point, no need to find the parent node.
1550
1551 2007-08-16  Javier Miranda  <miranda@adacore.com>
1552
1553         * exp_attr.adb (Attribute_Priority): Add missing support for entries
1554         and entry barriers.
1555
1556 2007-08-16  Javier Miranda  <miranda@adacore.com>
1557
1558         * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
1559         is not really required and can introduce regression with the debugger.
1560         The original problem is fixed with the patch written for checks.adb.
1561
1562 2007-08-16  Thomas Quinot  <quinot@adacore.com>
1563
1564         * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
1565         Range_Check on Allocated_Table.
1566
1567 2007-08-16  Vincent Celier  <celier@adacore.com>
1568
1569         * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
1570         Including_Non_Switch set to False.
1571         (Gnatmake): For the compiler, call Test_If_Relative_Path with
1572         Including_Non_Switch set to False.
1573
1574         * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
1575         parameter Including_Non_Switch, defaulted to True. When
1576         Including_Non_Switch is False, options that are not switches and
1577         appear as relative path are not converted to absolute paths.
1578
1579 2007-08-16  Nicolas Roche  <roche@adacore.com>
1580
1581         * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
1582         makefiles
1583
1584         * Make-lang.in: Update dependencies
1585
1586 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
1587
1588         * sem_ch10.adb (Has_With_Clause): If the name of the with clause
1589         currently inspected is a selected component, retrieve the entity of
1590         its selector.
1591         (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
1592         from the immediate ancestor of Main_Unit_Entity.
1593         (Install_Limited_Withed_Unit): Do not install the limited view of
1594         package P if P is reachable through an ancestor chain from package C
1595         and C also has a with clause for P in its body.
1596         (Has_Limited_With_Clause): New routine.
1597         (Has_With_Clause): New routine.
1598
1599 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
1600
1601         * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
1602         generic for an enclosing instance is a global reference, even though
1603         its scope is the enclosing instance.
1604
1605 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
1606             Javier Miranda  <miranda@adacore.com>
1607
1608         * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
1609         initialize a limited object.
1610         (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
1611         13/2 and 14/2.
1612         Make sure Has_Complex_Representation is inherited by derived type.
1613
1614 2007-08-16  Robert Dewar  <dewar@adacore.com>
1615
1616         * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
1617         exception case
1618
1619 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
1620
1621         * sem_disp.adb (Check_Dispatching_Operation): If the operation
1622         implements an operation inherited from a progenitor interface, verify
1623         that they are subtype-conformant.
1624
1625 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
1626             Bob Duff  <duff@adacore.com>
1627             Nicolas Setton  <setton@adacore.com>
1628
1629         * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
1630         (Resolve): Alphabetize local variables. Add new variable From_Lib. When
1631         the statement which is being resolved comes from a predefined library
1632         unit, all non-predefined library interpretations are skipped.
1633         (Resolve_Op_Concat): If string concatenation was folded in the parser,
1634         but the "&" is user defined, give an error, because the folding would
1635         be wrong.
1636
1637         * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
1638         the parser has folded a long sequence of concatenations of string
1639         literals.
1640
1641         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
1642         and "JMP_BUF" variables as artificial.
1643         (N_String_Literal): Do not use alloca for very long string literals. Use
1644         xmalloc/free instead. Otherwise the stack might overflow.
1645
1646         * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
1647         compiler.
1648
1649 2007-08-16  Vincent Celier  <celier@adacore.com>
1650
1651         * vms_conv.adb (Process_Argument): Ensure that project related options
1652         are not put in the -cargs section when using GNAT COMPILE.
1653
1654 2007-08-16  Robert Dewar  <dewar@adacore.com>
1655
1656         * gnat_ugn.texi: Add note on preprocessing (output file not written)
1657
1658 2007-08-16  Thomas Quinot  <quinot@adacore.com>
1659
1660         * a-tags.adb: Minor reformatting.
1661
1662 2007-08-16  Bob Duff  <duff@adacore.com>
1663
1664         * sem_type.ads, sem_ch4.adb: Minor reformatting.
1665
1666 2007-08-14  Thomas Quinot  <quinot@adacore.com>
1667
1668         * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads, 
1669         s-osinte-interix.ads, system-interix.ads: Removed.
1670
1671 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
1672
1673         * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
1674         calls to Check_Within_Time_Bounds.
1675         ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
1676         (Difference): Account for possible rounding of the resulting difference
1677
1678 2007-08-14  Robert Dewar  <dewar@adacore.com>
1679
1680         * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
1681         par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
1682         s-osinte-solaris.adb, s-osinte-solaris.ads,
1683         s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
1684
1685         * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
1686         switch -gnatyS. Enable -gnatyS in GNAT style check mode
1687
1688 2007-08-14  Robert Dewar  <dewar@adacore.com>
1689             Ed Schonberg  <schonberg@adacore.com>
1690
1691         * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads: 
1692         Suppress unmodified in-out parameter warning in some cases
1693         This patch is a also fairly significant change to the way suppressible
1694         checks are handled.
1695
1696         * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
1697         needed for access to concurrent record types generated by the expander.
1698         (Generate_Range_Check): When generating a temporary to capture the
1699         value of a conversion that requires a range check, set the type of the
1700         temporary before rewriting the node, so that the type is always
1701         properly placed for back-end use.
1702         (Apply_Float_Conversion_Check): Handle case where the conversion is
1703         truncating.
1704         (Get_Discriminal): Code reformatting. Climb the scope stack looking
1705         for a protected type in order to examine its discriminants.
1706
1707 2007-08-14  Robert Dewar  <dewar@adacore.com>
1708             Gary Dismukes  <dismukes@adacore.com>
1709             Ed Schonberg  <schonberg@adacore.com>
1710             Thomas Quinot  <quinot@adacore.com>
1711
1712         * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb, 
1713         a-stwisu.adb, a-strsup.adb: Fix warnings for range
1714         tests optimized out.
1715
1716         * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
1717         (Get_Allocator_Final_List): For the case of an anonymous access type
1718         that has a specified Associated_Final_Chain, do not go up to the
1719         enclosing scope.
1720         (Expand_N_Type_Conversion): Test for the case of renamings of access
1721         parameters when deciding whether to apply a run-time accessibility
1722         check.
1723         (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
1724         aggregate code before allocator, and ahead of declaration for
1725         temporary, to prevent access before elaboration when the allocator is
1726         an actual for an access parameter.
1727         (Expand_N_Type_Conversion): On an access type conversion involving an
1728         access parameter, do not apply an accessibility check when the
1729         operand's original node was an attribute other than 'Access. We now
1730         create access conversions for the expansion of 'Unchecked_Access and
1731         'Unrestricted_Access in certain cases and clearly accessibility should
1732         not be checked for those.
1733
1734         * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
1735         includes a type conversion of a packed component that has been expanded,
1736         recover the original expression for the object, and use this expression
1737         in the post-call assignment statement, so that the assignment is made
1738         to the object and not to a back-end temporary.
1739         (Freeze_Subprogram): In case of primitives of tagged types not defined
1740         at the library level force generation of code to register the primitive
1741         in the dispatch table. In addition some code reorganization has been
1742         done to leave the implementation clear.
1743         (Expand_Call): When expanding an inherited implicit conversion,
1744         preserve the type of the inherited function after the intrinsic
1745         operation has been expanded.
1746
1747         * exp_ch2.ads, exp_ch2.adb
1748         (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
1749         of an entry formal appearing in an assignment statement does not assign
1750         to the formal.
1751         (Expand_Current_Value): Instead of calling a routine to determine
1752         whether the prefix of an attribute reference should be optimized or
1753         not, prevent the optimization of such prefixes all together.
1754
1755         * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
1756         component whose prefix is known to be of an access type is an implicit
1757         dereference and does not assign to the prefix.
1758
1759 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
1760             Robert Dewar  <dewar@adacore.com>
1761
1762         * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
1763         itype is visited, make an entry into table to link associated node and
1764         new itype.
1765         Add comments and correct harmless error in Build_NCT_Hash_Tables
1766         (Array_Aggr_Subtype): Associate each itype created for an index type to
1767         the corresponding range construct, and not to the aggregate itself. to
1768         maintain a one-to-one correspondence between itype and its associated
1769         node, to prevent errors when complex expression is copied.
1770         Fix mishandling of multiple levels of parens
1771
1772         * sem_aggr.adb: Create a limited view of an incomplete type, to make
1773         treatment of limited views uniform for all visible declarations in a
1774         limited_withed package.
1775         (New_Copy_Tree): If hash table is being used and itype is visited,
1776         make an entry into table to link associated node and new itype.
1777         (Resolve_Record_Aggregate): Do not add an others box association for a
1778         discriminated record component that has only discriminants, when there
1779         is a box association for the component itself.
1780
1781         * par-ch4.adb: Fix mishandling of multiple levels of parens
1782
1783 2007-08-14  Robert Dewar  <dewar@adacore.com>
1784
1785         * comperr.adb: Fix problem with suppressing warning messages from gigi
1786
1787         * erroutc.ads, erroutc.adb, errout.ads, 
1788         errout.adb (Write_Eol): Remove trailing spaces before writing the line
1789         (Write_Eol_Keep_Blanks): New procedure to write a line, including
1790         possible trailing spaces.
1791         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
1792         Fix problem with suppressing warning messages from back end
1793         Improve handling of deleted warnings
1794
1795         * gnat1drv.adb: 
1796         Fix problem with suppressing warning messages from back end
1797         Handle setting of Static_Dispatch_Tables flag.
1798
1799         * prepcomp.adb: 
1800         Fix problem with suppressing warning messages from back end
1801
1802         * exp_intr.adb: Improve handling of deleted warnings
1803
1804 2007-08-14  Robert Dewar  <dewar@adacore.com>
1805
1806         * debug.adb: Improve -gnatdI to cover all cases of serialization
1807         Add documentation of dZ, d.t
1808
1809         * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
1810         serialization.
1811         (Sprint_Node_Actual): Generate new output associated with implicit
1812         importation and implicit exportation of object declarations.
1813
1814 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
1815             Robert Dewar  <dewar@adacore.com>
1816             Javier Miranda  <miranda@adacore.com>
1817             Gary Dismukes  <dismukes@adacore.com>
1818
1819         * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
1820         to make treatment of limited views uniform for all visible declarations
1821         in a limited_withed package.
1822         Improve warnings for in out parameters
1823         (Set_Related_Interaface/Related_Interface): Allow the use of this
1824         attribute with constants.
1825         (Write_Field26_Name): Handle attribute Related_Interface in constants.
1826         Warn on duplicate pragma Preelaborable_Initialialization
1827
1828         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
1829         generation of a freezing node to ensure proper management of null
1830         excluding access types in the backend.
1831         (Create_Extra_Formals): Test base type of the formal when checking for
1832         the need to add an extra accessibility-level formal. Pass the entity E
1833         on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
1834         originally being done in a couple of cases), to ensure that the
1835         Extra_Formals list gets set on the entity E when the first entity is
1836         added.
1837         (Conforming_Types): Add missing calls to Base_Type to the code that
1838         handles anonymous access types. This is required to handle the
1839         general case because Process_Formals builds internal subtype entities
1840         to handle null-excluding access types.
1841         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
1842         functions that need it, even when not marked Requires_Overriding.
1843         Improve warnings for in out parameters
1844         (Analyze_Function_Return): Warn for disallowed null return
1845         Warn on return from procedure with unset out parameter
1846         Ensure consistent use of # in error messages
1847         (Check_Overriding_Indicator): Add in parameter Is_Primitive.
1848         (Analyze_Function_Return): Move call to Apply_Constraint_Check before
1849         the implicit conversion of the expression done for anonymous access
1850         types. This is required to generate the code of the null excluding
1851         check (if required).
1852
1853         * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
1854         A formal parameter is never publicly referenceable outside of its body.
1855         (Check_References): For an unreferenced formal parameter in an accept
1856         statement, use the same warning circuitry as for subprogram formal
1857         parameters.
1858         (Warn_On_Unreferenced_Entity): New subprogram, taken from
1859         Output_Unreferenced_Messages, containing the part of that routine that
1860         is now reused for entry formals as described above.
1861         (Goto_Spec_Entity): New function
1862         (Check_References): Do not give IN OUT warning for dispatching operation
1863         Improve warnings for in out parameters
1864         (Test_Ref): Check that the entity is not undefinite before calling
1865         Scope_Within, in order to avoid infinite loops.
1866         Warn on return from procedure with unset out parameter
1867         Improved warnings for unused variables
1868
1869 2007-08-14  Robert Dewar  <dewar@adacore.com>
1870             Javier Miranda  <miranda@adacore.com>
1871             Gary Dismukes  <dismukes@adacore.com>
1872
1873         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
1874         (Expand_N_Attribute_Reference): Further unify the handling of the
1875         three forms of access attributes, using common code now for all three
1876         cases. Add a test for the case of applying an access attribute to
1877         an explicit dereference when the context is an access-to-interface
1878         type. In that case we need to apply the conversion to the prefix
1879         of the explicit dereference rather than the prefix of the attribute.
1880         (Attribute_Version, UET_Address): Set entity as internal to ensure
1881         proper dg output of implicit importation.
1882         (Expand_Access_To_Type): Removed.
1883         (Expand_N_Attribute_Reference): Merge the code from the three cases
1884         of access attributes, since the processing is largely identical for
1885         these cases. The substantive fix here is to process the case of a
1886         type name prefix (current instance case) before handling the case
1887         of interface prefixes.
1888
1889 2007-08-14  Thomas Quinot  <quinot@adacore.com>
1890             Ed Schonberg  <schonberg@adacore.com>
1891             Javier Miranda  <miranda@adacore.com>
1892             Robert Dewar  <dewar@adacore.com>
1893
1894         * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
1895         (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
1896         type that is an anonymous access to controlled object, establish
1897         an associated finalization chain to avoid corrupting the global
1898         finalization list when a dynamically allocated object designated
1899         by such a component is deallocated.
1900         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
1901         functions that need it, even when not marked Requires_Overriding.
1902         (Initialize_Tag): Replace call to has_discriminants by call to
1903         Is_Variable_Size_Record in the circuitry that handles the
1904         initialization of secondary tags.
1905         (Is_Variable_Size_Record): New implementation.
1906         (Expand_N_Object_Declaration): Suppress call to init proc if there is a
1907         Suppress_Initialization pragma for a derived type.
1908         (Is_Variable_Size_Record): New subprogram.
1909         (Build_Offset_To_Top_Functions): New implementation that simplifies the
1910         initial version of this routine and also fixes problems causing
1911         incomplete initialization of the table of interfaces.
1912         (Build_Init_Procedure): Improve the generation of code to initialize the
1913         the tag components of secondary dispatch tables.
1914         (Init_Secondary_Tags): New implementation that simplifies the previous
1915         version of this routine.
1916         (Make_DT): Add parameter to indicate when type has been frozen by an
1917         object declaration, for diagnostic purposes.
1918         (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
1919         diagnose attemps to freeze a subprogram when some untagged type of its
1920         profile is a private type whose full view has not been analyzed yet.
1921         (Freeze_Array_Type): Generate init proc for packed array if either
1922         Initialize or Normalize_Scalars is set.
1923         (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
1924         constructing the new profile, copy the null_exclusion indicator for each
1925         parameter, to ensure full conformance of the new body with the spec.
1926
1927         * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
1928         Create wrappers for constructor functions that need it, even when not
1929         marked Requires_Overriding.
1930         (Covers): Handle properly designated types of anonymous access types,
1931         whose non-limited views are themselves incomplete types.
1932         (Add_Entry): Use an entity to store the abstract operation which hides
1933         an interpretation.
1934         (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
1935         (Collect_Interps): Use Empty as an actual for Abstract_Op in the
1936         initialization aggregate.
1937         (Function_Interp_May_Be_Hidden): Rename to
1938         Function_Interp_Has_Abstract_Op.
1939         (Has_Compatible_Type): Remove machinery that skips interpretations if
1940         they are labeled as potentially hidden by an abstract operator.
1941         (Has_Hidden_Interp): Rename to Has_Abstract_Op.
1942         (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
1943         (Write_Overloads): Output the abstract operator if present.
1944         (Add_Entry): Before inserting a new entry into the interpretation table
1945         for a node, determine whether the entry will be disabled by an abstract
1946         operator.
1947         (Binary_Op_Interp_May_Be_Hidden): New routine.
1948         (Collect_Interps): Add value for flag May_Be_Hidden in initialization
1949         aggregate.
1950         (Function_Interp_May_Be_Hidden): New routine.
1951         (Has_Compatible_Type): Do not consider interpretations hidden by
1952         abstract operators when trying to determine whether two types are
1953         compatible.
1954         (Has_Hidden_Interp): New routine.
1955         (Set_May_Be_Hidden_Interp): New routine.
1956         (Write_Overloads): Write the status of flag May_Be_Hidden.
1957
1958 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
1959             Javier Miranda  <miranda@adacore.com>
1960
1961         * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
1962         types declared in the declarative part of a nested package body or in
1963         the proper body of a stub.
1964         (Set_All_DT_Position): Add missing check to avoid wrong assignation
1965         of the same dispatch table slot to renamed primitives.
1966         (Make_Select_Specific_Data_Table): Handle private types.
1967         (Tagged_Kind): Handle private types.
1968         (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
1969         output of implicit importation and exportation.
1970         (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
1971         first formal of the thunk is always associated with the controlling
1972         type. In addition perform the following code cleanup: remove formal
1973         Thunk_Alias which is no longer required, cleanup evaluation of the
1974         the controlling type, and update the documentation.
1975         Replace occurrence of Default_Prim_Op_Count by
1976         Max_Predef_Prims. Addition of compile-time check to verify
1977         that the value of Max_Predef_Prims is correct.
1978         (Check_Premature_Freezing): Apply check in Ada95 mode as well.
1979         (Make_DT): Add parameter to indicate when type has been frozen by an
1980         object declaration, for diagnostic purposes.
1981         (Build_Static_Dispatch_Tables): New subprogram that takes care of the
1982         construction of statically allocated dispatch tables.
1983         (Make_DT): In case of library-level tagged types export the declaration
1984         of the primary tag. Remove generation of tags (now done by Make_Tags).
1985         Additional modifications to handle non-static generation of dispatch
1986         tables. Take care of building tables for asynchronous interface types
1987         (Make_Tags): New subprogram that generates the entities associated with
1988         the primary and secondary tags of Typ and fills the contents of Access_
1989         Disp_Table. In case of library-level tagged types imports the forward
1990         declaration of the primary tag that will be declared later by Make_DT.
1991         (Expand_Interface_Conversion): In case of access types to interfaces
1992         replace an itype declaration by an explicit type declaration to avoid
1993         problems associated with the scope of such itype in transient blocks.
1994
1995 2007-08-14  Robert Dewar  <dewar@adacore.com>
1996             Ed Schonberg  <schonberg@adacore.com>
1997             Javier Miranda  <miranda@adacore.com>
1998
1999         * exp_util.ads, exp_util.adb: 
2000         This patch replaces a number of occurrences of explicit tests for N_Null
2001         with calls to Known_Null. This improves tracking of null values, since
2002         Known_Null also catches null constants, and variables currently known to
2003         be null, so we get better tracking.
2004         (Ensure_Defined): create an itype reference only in the scope of the
2005         itype.
2006         (Side_Effect_Free): A selected component of an access type that
2007         denotes a component with a rep clause must be treated as not
2008         side-effect free, because if it is part of a linked structure its
2009         value may be affected by a renaming.
2010         (Expand_Subtype_From_Expr): For limited objects initialized with build
2011         in place function calls, do nothing; otherwise we prematurely introduce
2012         an N_Reference node in the expression initializing the object, which
2013         breaks the circuitry that detects and adds the additional arguments to
2014         the called function. Bug found working in the new patch for statically
2015         allocated dispatch tables.
2016         (Is_Library_Level_Tagged_Type): New subprogram.
2017         (Remove_Side_Effects): If the expression of an elementary type is an
2018         operator treat as a function call.
2019         (Make_Literal_Range): If the index type of the array is not integer, use
2020         attributes properly to compute the constraint on the resulting aggregate
2021         which is a string.
2022
2023         * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
2024         class-wide type whose base type is an incomplete private type, leave
2025         class-wide type unfrozen so that freeze nodes can be generated
2026         properly at a later point.
2027         (Freeze_Entity, array case): Handle case of pragma Pack and component
2028         size attributre clause for same array.
2029
2030 2007-08-14  Vincent Celier  <celier@adacore.com>
2031
2032         * prj.ads, prj.adb: Update Project Manager to new attribute names for
2033         gprbuild.
2034         Allow all valid declarations in configuration project files
2035         (Reset): Initialize all tables and hash tables in the project tree data
2036         Major update of the Project Manager and of the project aware tools,
2037         including gprmake, so that the same sources in the GNAT repository
2038         can be used by gprbuild.
2039         (Slash_Id): Change type to be Path_Name_Type
2040         (Slash): Return a Path_Name_Type instead of a File_Name_Type
2041
2042         * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
2043         gprbuild.
2044         Update Project Manager to new attribute names for ghprbuild
2045         Allow all valid declarations in configuration project files
2046         Major update of the Project Manager and of the project aware tools,
2047         including gprmake, so that the same sources in the GNAT repository
2048         can be used by gprbuild.
2049
2050         * prj-com.ads: 
2051         Major update of the Project Manager and of the project aware tools,
2052         including gprmake, so that the same sources in the GNAT repository
2053         can be used by gprbuild.
2054
2055         * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
2056         insensitive flag for attributes with optional index.
2057         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
2058         array attribute, put the index in lower case.
2059         Update Project Manager to new attribute names for ghprbuild
2060         Allow all valid declarations in configuration project files
2061         Major update of the Project Manager and of the project aware tools,
2062         including gprmake, so that the same sources in the GNAT repository
2063         can be used by gprbuild.
2064
2065         * prj-env.ads, prj-env.adb: 
2066         Major update of the Project Manager and of the project aware tools,
2067         including gprmake, so that the same sources in the GNAT repository
2068         can be used by gprbuild.
2069         (Get_Reference): Change type of parameter Path to Path_Name_Type
2070
2071         * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
2072         removing '-' from the path to start with the first character of the
2073         next directory.
2074         Major update of the Project Manager and of the project aware tools,
2075         including gprmake, so that the same sources in the GNAT repository
2076         can be used by gprbuild.
2077         Major update of the Project Manager and of the project aware tools,
2078         including gprmake, so that the same sources in the GNAT repository
2079         can be used by gprbuild.
2080
2081         * prj-nmsc.ads, prj-nmsc.adb: 
2082         Update Project Manager to new attribute names for ghprbuild
2083         Allow all valid declarations in configuration project files
2084         (Search_Directories): Detect subunits that are specified with an
2085         attribute Body in package Naming. Do not replace a source/unit in the
2086         same project when the order of the source dirs are known. Detect
2087         duplicate sources/units in the same project when the order of the
2088         source dirs are not known.
2089         (Check_Ada_Name): Allow all identifiers that are not reserved words
2090         in Ada 95.
2091         Major update of the Project Manager and of the project aware tools,
2092         including gprmake, so that the same sources in the GNAT repository
2093         can be used by gprbuild.
2094         (Look_For_Sources): If the list of sources is empty, set the object
2095         directory of non extending project to nil.
2096         Change type of path name variables to be Path_Name_Type
2097         (Locate_Directory): Make sure that on Windows '/' is converted to '\',
2098         otherwise creating missing directories will fail.
2099
2100         * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb, 
2101         prj-part.ads, prj-part.adb:
2102         Major update of the Project Manager and of the project aware tools,
2103         including gprmake, so that the same sources in the GNAT repository
2104         can be used by gprbuild.
2105
2106         * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
2107         insensitive flag for attributes with optional index.
2108         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
2109         array attribute, put the index in lower case.
2110         (Parse_Variable_Reference): Allow the current project name to be used in
2111         the prefix of an attribute reference.
2112
2113         * prj-util.ads, prj-util.adb
2114         (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
2115         defaulted to False. When True, always check against indexes in lower
2116         case.
2117
2118         * snames.ads, snames.h, snames.adb: 
2119         Update Project Manager to new attribute names for gprbuild
2120         Allow all valid declarations in configuration project files
2121
2122 2007-08-14  Robert Dewar  <dewar@adacore.com>
2123             Ed Schonberg  <schonberg@adacore.com>
2124
2125         * opt.ads: Warning for non-local exception propagation now off by
2126         default
2127         New switch -gnatI to disable representation clauses
2128         Implement new pragma Implicit_Packing
2129
2130         * usage.adb: 
2131         Warning for non-local exception propagation now off by default
2132         Add warning for unchecked conversion of pointers wi different
2133         conventions.
2134         New switch -gnatI to disable representation clauses
2135
2136         * usage.adb: new switch -gnatyS
2137
2138         * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
2139         note that aggregates of anonymous array types are not flagged.
2140         -gnatwc now includes membership tests optimized away
2141         -gnatw.x warnings are now off by default
2142         Added conditional compilation Appendix
2143         Add documentation of -gnatI
2144         Add documentation for new -gnatyS style check
2145         Update documentation about SAL and auto-init on Windows.
2146
2147         * gnat_rm.texi: 
2148         Add documentation for pragma Check_Name and 'Enabled attribute
2149         Document that Eliminate on dispatching operation is ignored
2150         Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
2151         Document pragma Main
2152         Document pragma Implicit_Packing
2153
2154         * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
2155         different conventions
2156         New switch -gnatI to disable representation clauses
2157
2158         * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
2159         recognized, report the invalid characters including "-gnat" instead of
2160         just the first character in the switch.
2161         New switch -gnatI to disable representation clauses
2162         Set Warn_On_Object_Renames_Function true for -gnatg
2163
2164         * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
2165         Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
2166         Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
2167         to switch -aP (add directory to project search dir).
2168
2169         * par-prag.adb: Implement new pragma Implicit_Packing
2170
2171         * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
2172         type as having a non-standard representation, to force expansion on
2173         conversion to related types.
2174         (Analyze_Pragma): Warn on misspelled pragma
2175         (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
2176         Ensure consistent use of # in error messages
2177         Implement pragma Implicit_Packing
2178
2179 2007-08-14  Olivier Hainque  <hainque@adacore.com>
2180             Eric Botcazou  <ebotcazou@adacore.com>
2181
2182         * targtyps.c (get_target_maximum_default_alignment): New function.
2183         Maximum alignment
2184         that the compiler might choose by default for a type or object.
2185         (get_target_default_allocator_alignment): New function. Alignment known
2186         to be honored by the target default allocator.
2187         (get_target_maximum_allowed_alignment): New function. Maximum alignment
2188         we might accept for any type or object on the target.
2189         (get_target_maximum_alignment): Now synonym of maximum_default_alignment
2190
2191         * gigi.h (get_target_maximum_default_alignment): Declare new function.
2192         (get_target_default_allocator_alignment): Likewise.
2193         (get_target_maximum_allowed_alignment): Likewise.
2194
2195         PR ada/19037
2196         * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
2197         result of a function call, first try to use a stabilized reference for
2198         a constant renaming too.
2199         (validate_alignment): Use target_maximum_allowed_alignment instead of
2200         MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
2201         (gnat_to_gnu_entity): Use common nodes directly.
2202         (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
2203         alignment and size for the object.
2204         (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
2205         and N_Procedure_Call_Statement.
2206         (takes_address): Rename to lvalue_required_p, add third parameter
2207         'aliased' and adjust recursive calls.
2208         <N_Indexed_Component>: Update 'aliased' from the array type.
2209         <N_Selected_Component>: New case.
2210         <N_Object_Renaming_Declaration>: New Likewise.
2211         (Identifier_to_gnu): Adjust for above changes.
2212         (maybe_stabilize_reference) <CONST_DECL>: New case.
2213
2214         * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
2215         between type variants.
2216         (build_simple_component_ref): Likewise.
2217         (build_call_alloc_dealloc): Use target_default_allocator_alignment
2218         instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
2219         aligning type circuitry for allocations from the default storage pool.
2220         (build_allocator): Likewise.
2221         (build_simple_component_ref): Manually fold the reference for a
2222         constructor if the record type contains a template.
2223
2224         * utils.c (value_zerop): Delete.
2225         (gnat_init_decl_processing): Emit debug info for common types.
2226         (rest_of_record_type_compilation): If a union contains a field
2227         with a non-constant qualifier, treat it as variable-sized.
2228         (finish_record_type): Give the stub TYPE_DECL a name.
2229         (rest_of_record_type_compilation): Likewise.
2230         (convert) <CONSTRUCTOR>: New case.  Build a new constructor if
2231         types are equivalent array types.
2232         (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
2233         even if the type is not passed by reference.
2234         (static_ctors, static_dtors): Delete.
2235         (end_subprog_body): Do not record constructors and destructors.
2236         (build_global_cdtor): Delete.
2237         (gnat_write_global_declarations): Do not call build_global_cdtor.
2238
2239         * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
2240         -fRTS=rtp is specified.
2241         If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
2242         specified.
2243
2244         * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
2245         of the personality function with SJLJ exceptions.
2246
2247         * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
2248         the name of the personality function with SJLJ exceptions.
2249
2250 2007-08-14  Robert Dewar  <dewar@adacore.com>
2251             Ed Schonberg  <schonberg@adacore.com>
2252
2253         * par.ads, par.adb: Improve handling of extra right parens.
2254         (Par): Remove flag From_Limited_With_Clause.
2255
2256         * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
2257         Improve handling of extra right parens.
2258
2259 2007-08-14  Robert Dewar  <dewar@adacore.com>
2260
2261         * par-tchk.adb (TF_Semicolon): Improve error recovery
2262
2263 2007-08-14  Robert Dewar  <dewar@adacore.com>
2264             Ed Schonberg  <schonberg@adacore.com>
2265
2266         * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
2267         enumeration type, mark all literals as referenced.
2268         (Eval_Attribute, case 'Image): If the argument is an enumeration
2269         literal and names are available, constant-fold but mark nevertheless as
2270         non-static.
2271         Clean up function names.
2272         (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
2273         comment.
2274         (Requires_Simple_Name_Prefix): Removed.
2275
2276 2007-08-14  Robert Dewar  <dewar@adacore.com>
2277             Ed Schonberg  <schonberg@adacore.com>
2278
2279         * sem_ch11.adb: Improved warnings for unused variables
2280
2281         * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
2282         is a synchronized interface, the derived type is limited.
2283         (Analyze_Object_Declaration): Mark the potential coextensions in the
2284         definition and expression of an object declaration node.
2285         (Build_Derived_Type): For the completion of a private type declaration
2286         with a derived type declaration, chain the parent type's representation
2287         items to the last representation item of the derived type (not the
2288         first one) if they are not present already.
2289         (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
2290         object declaration of forward references to tags.
2291         (Access_Subprogram_Declaration): In Ada2005, anonymous access to
2292         subprogram types can appear as access discriminants of synchronized
2293         types.
2294         (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
2295         given in prefixed form as a selected component.
2296         (Process_Discriminants): If not all discriminants have defaults, place
2297         error message on a default that is present.
2298         (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
2299         extend a synchronized tagged type.
2300         Improved warnings for unused variables
2301         (Is_Visible_Component): Fix a visibility hole on a component inherited
2302         by a private extension when parent is itself declared as a private
2303         extension, and the derivation is in a child unit.
2304         (Find_Hidden_Interface): Move spec from the package body.
2305
2306 2007-08-14  Robert Dewar  <dewar@adacore.com>
2307             Ed Schonberg  <schonberg@adacore.com>
2308
2309         * sem_ch5.adb: Improve warnings on redundant assignments
2310
2311         * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
2312         parameter
2313         (Is_Synchronized_Tagged_Type): New subprogram that returns true
2314         in case of synchronized tagged types (AARM 3.9.4 (6/2)).
2315         (Safe_To_Capture_Value): Can now return True for constants, even if Cond
2316         is set to False. Improves handling of Known_[Not_]Null.
2317         (Wrong_Type): Special case address arithmetic attempt
2318         (Collect_Abstract_Interfaces): Add new formal to allow collecting
2319         abstract interfaces just using the partial view of private types.
2320         (Has_Abstract_Interfaces): Add new formal to allow checking types
2321         covering interfaces using the partial view of private types.
2322         (Is_Fully_Initialized_Type): Special VM case for uTag component. This
2323         component still needs to be defined in this case, but is never
2324         initialized as VMs are using other dispatching mechanisms.
2325         (Abstract_Interface_List): For a protected type, use base type to get
2326         proper declaration.
2327         Improve warnings on redundant assignments
2328         (Is_Variable): Handle properly an implicit dereference of a prefixed
2329         function call.
2330         (Build_Actual_Subtype): If this is an actual subtype for an
2331         unconstrained formal parameter, use the sloc of the body for the new
2332         declaration, to prevent anomalises in the debugger.
2333
2334 2007-08-14  Robert Dewar  <dewar@adacore.com>
2335
2336         * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
2337         dispatching operation
2338
2339 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2340             Gary Dismukes  <dismukes@adacore.com>
2341
2342         * exp_aggr.ads, 
2343         exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
2344         expanded aggregate code before allocator, and ahead of declaration for
2345         temporary, to prevent access before elaboration when the allocator is
2346         an actual for an access parameter.
2347         (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
2348         the TSD and the table of interfaces.
2349         (Convert_To_Assignments): Augment the test for delaying aggregate
2350         expansion for limited return statements to include the case of extended
2351         returns, to prevent creation of an unwanted transient scope.
2352         (Is_Static_Dispatch_Table_Aggregate): New subprogram.
2353         (Expand_Array_Aggregate): Handle aggregates associated with
2354         statically allocated dispatch tables.
2355         (Expand_Record_Aggregate): Handle aggregates associated with
2356         statically allocated dispatch tables.
2357         (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
2358         of anonymous access type.
2359
2360 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2361
2362         * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
2363         is a variable that renames a slice, use the variable itself in the
2364         expannsion when the renamed expression itself may be modified between
2365         the declaration of the renaming and the array assignment.
2366
2367 2007-08-14  Jerome Guitton  <guitton@adacore.com>
2368
2369         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, 
2370         s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, 
2371         s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
2372         New functions; dummy implementations.
2373
2374         * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
2375         functions, used to implement the multi-tasks mode routines on VxWorks.
2376
2377         * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
2378         New functions, thin
2379         binding to the VxWorks routines which have changed between VxWorks 5
2380         and 6.
2381         (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
2382         which are not callable from a RTP.
2383
2384         * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
2385         implemented for the multi-tasks mode on VxWorks 5 and 6.
2386
2387         * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
2388
2389         * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
2390         functions.
2391
2392 2007-08-14  Vincent Celier  <celier@adacore.com>
2393
2394         * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb, 
2395         gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
2396         mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb, 
2397         mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb, 
2398         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, 
2399         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
2400         mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
2401         procedure.
2402         (Major_Id_Name): New function.
2403         mlib-tgt.ads/mlib.tgt.adb:
2404         (Library_Major_Minor_Id_Supported): New function, default returns True
2405         Most mlib-tgt-*.adb that support shared libraries and symbolic links:
2406         (Build_Dynamic_Library): Add support for major/minor ids for shared libs
2407         Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
2408         Implementation of Library_Major_Minor_Id_Supported returns False
2409         clean.adb:
2410         (Clean_Library_Directory): If major/minor ids are supported, clean all
2411         library files.
2412         Major update of the Project Manager and of the project aware tools,
2413         including gprmake, so that the same sources in the GNAT repository
2414         can be used by gprbuild.
2415
2416 2007-08-14  Olivier Hainque  <hainque@adacore.com>
2417
2418         * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
2419         (GCC_ZCX_Support): Switch to True.
2420         
2421         * s-intman-solaris.adb (Notify_Exception): Call
2422         Adjust_Context_For_Raise before raising, as expected for signal
2423         handlers in general.
2424         
2425         * s-intman-posix.adb (Notify_Exception): Remove declaration of
2426         Adjust_Context_For_Raise, moved to the spec of this unit to be visible
2427         to other implementation bodies.
2428         
2429         * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
2430         be visible by multiple implementation bodies.
2431         
2432         * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
2433         only for conditions coming from hardware.
2434         [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
2435         adjustments to signal context prior to exception raise from signal
2436         handler.
2437         (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
2438         mode.
2439         Solaris section: (__gnat_adjust_context_for_raise): New function.
2440         Implementation of the machine context adjustments to perform prior to
2441         raise from a signal handler. Version for both sparc and x86.
2442         (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
2443         (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
2444         prior to raising as expected for any handler, before possible nested
2445         faults to make sure all the contexts in a chain have been adjusted by
2446         the time we propagate.
2447
2448 2007-08-14  Pascal Obry  <obry@adacore.com>
2449
2450         * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
2451         (SYSTEM_INFO): New record.
2452         (SetThreadIdealProcessor): New imported routine needed for supporting
2453         task_info pragma on Windows.
2454
2455         * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
2456         info can be applied to the current host.
2457         (Create_Task): Set the ideal processor if information is present.
2458
2459         * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
2460         a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
2461
2462 2007-08-14  Olivier Hainque  <hainque@adacore.com>
2463
2464         * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
2465         stack size and initial stack pointer value for a given task.
2466         (Enter_Task): Get the stack attributes of the task we are entering and
2467         let the stack checking engine know about them.
2468
2469         * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
2470         Let the stack-checking engine know about the initial sp value and stack
2471         size associated with the current task.
2472         (Set_Stack_Info): If a stack base has been notified for the current
2473         task, honor it. Fallback to the previous less accurate method otherwise.
2474
2475         * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
2476
2477 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2478
2479         * sem_ch10.adb: Create a limited view of an incomplete type, to make
2480         treatment of limited views uniform for all visible declarations in a
2481         limited_withed package.
2482         Set flag indicating that a subprogram body for a child unit has a
2483         generated spec.
2484         (Analyze_Compilation_Unit): If unit is a subprogram body that has no
2485         separate declaration, remove the unit name from visibility after
2486         compilation, so that environment is clean for subsequent compilations.
2487         (Install_Limited_Context_Clauses): Do not install a
2488         limited_private_with_clause unless the current unit is a body or a
2489         private child unit.
2490         (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
2491         in the same fashion.
2492         (Install_Limited_Withed_Unit): Do not install a limited with clause if
2493         it applies to the declaration of the current package body.
2494         (Remove_Private_With_Clauses): If there is a regular with_clause for
2495         the unit, delete Private_With_Clause from context, to prevent improper
2496         hiding when processing subsequent nested packages and instantiations.
2497
2498 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
2499
2500         * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
2501         dir/file, device:/dir/file, and device:drive_letter:/dir/file as
2502         representing absolute path names.
2503         __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
2504
2505         * cstreams.c (__gnat_full_name for VxWorks): Use
2506         __gnat_is_absolute_path to detect whether we need to add the current
2507         directory to normalize the path.
2508
2509 2007-08-14  Javier Miranda  <miranda@adacore.com>
2510
2511         * a-tags.ads, 
2512         a-tags.adb (Displace): Associate a message with the raised CE
2513         exception.
2514         (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
2515         To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
2516         To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
2517         spec.
2518         (Default_Prim_Op_Count): Removed.
2519         (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
2520         Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
2521         Remove pragma Inline_Always.
2522
2523         * rtsfind.ads (Default_Prim_Op_Count): Removed
2524         (Max_Predef_Prims): New entity
2525         (RE_Expanded_Name): Removed
2526         (RE_HT_Link): Removed
2527         (RE_Iface_Tag): Remmoved
2528         (RE_Ifaces_Table): Removed
2529         (RE_Interfaces_Array): Removed
2530         (RE_Interface_Data_Element): Removed
2531         (RE_Nb_Ifaces): Removed
2532         (RE_RC_Offset): Removed
2533         (RE_Static_Offset_To_Top): Removed
2534
2535         * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
2536         formal.
2537         (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
2538         Prim_Op_Count by Max_Predef_Prims.
2539
2540 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2541             Vincent Celier  <celier@adacore.com>
2542
2543         * binde.adb (Elab_All_Links): Remove unnecessary call to
2544         Generic_Separately_Compiled (if a unit satisfies this predicate, there
2545         won't be an associated Afile).
2546         (Elab_All_Links): Fail if a referenced unit cannot be found
2547
2548         * bindgen.adb: 
2549         Fix comments in bindgen regarding consistency checks done in Bcheck:
2550         the checks are made across units within a partition, not across several
2551         partitions.
2552         Fix generation of C binder file for VxWorks.
2553
2554         * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
2555         Generic_May_Lack_ALI, more descriptive of the current use of the
2556         predicate, and update documentation.
2557
2558         * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
2559         reorganization and documentation update for the case of predefined
2560         library generics (for which we do not reference an Afile).
2561
2562 2007-08-14  Robert Dewar  <dewar@adacore.com>
2563
2564         * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
2565         s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
2566         s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
2567         s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
2568         s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
2569         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
2570         s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
2571         s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
2572         exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
2573         s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
2574         s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
2575         a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
2576         s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
2577         g-altcon.adb: Minor reformatting
2578
2579         ada-tree.h: Delete empty line.
2580
2581         ali.ads: Minor reformatting
2582         Clarification of comments.
2583         Minor spelling correction
2584
2585         * exp_dbug.adb: Add Warnings Off to suppress new warning
2586
2587         * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
2588         formal
2589
2590         * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
2591         value
2592
2593         * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
2594
2595         * a-textio.ads: Reorder the standard input/output/error declarations
2596         for consistency.
2597
2598         * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
2599
2600         * par-ch2.adb: Recognize RM specially in errout
2601         Change 'R'M to RM in all error messages
2602
2603         * scng.adb: Recognize RM specially in errout
2604
2605         * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
2606         N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
2607
2608         * s-direio.adb: Add missing routine header box.
2609
2610         * sem_attr.ads: Add ??? comments
2611
2612         * sem_eval.adb: Recognize RM specially in errout
2613         Change 'R'M to RM in all error messages
2614
2615         * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
2616
2617         * s-tasinf.ads: Fix minor comment typo.
2618
2619         * a-cihama.adb: Minor comment addition
2620
2621         * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
2622         formal
2623
2624         * s-tasinf-tru64.ads: Fix minor comment typo.
2625
2626         * itypes.ads: Comment update.
2627
2628         * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
2629         anymore.
2630
2631         * argv.c: Added protection against null gnat_argv and gnat_envp.
2632
2633         * bcheck.adb (Check_Consistency): Use correct markup character ({) in
2634         warning message when Tolerate_Consistency_Errors is True.
2635
2636         * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
2637         Any_Id, as this subprogram is only applicable to *type* entities (it
2638         sets RM_Size). Instead initialize just Esize and Alignment.
2639
2640 2007-08-14  Bob Duff  <duff@adacore.com>
2641
2642         * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, 
2643         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
2644         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads, 
2645         a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
2646         a-coorse.ads (Next): Applied pragma Inline.
2647         Make all Containers packages Remote_Types (unless they are already
2648         Pure).
2649         (Previous): applied pragma Inline
2650         (Elements_Type): is now a record instead of an array
2651
2652 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2653
2654         * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
2655         of Set_Item.
2656         (Set_Item): When the new item is an element of the currently allocated
2657         table passed by reference, save a copy on the stack if we're going
2658         to reallocate. Also, in Table.Set_Item, make sure we test the proper
2659         variable to determine whether to call Set_Last.
2660
2661         * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
2662         symbols-vms.adb, symbols-processing-vms-alpha.adb,
2663         symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
2664         some occurrences of the pattern
2665            T.Increment_Last;
2666            T.Table (T.Last) := Value;
2667         with a cleaner call to
2668            T.Append (Value);
2669
2670 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2671             Gary Dismukes  <dismukes@adacore.com>
2672             Thomas Quinot  <quinot@adacore.com>
2673
2674         * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
2675         derived type with interface progenitors use the analyzed formal as the
2676         parent of the actual, to create renamings for all the inherited
2677         operations in Derive_Subprograms.
2678         (Collect_Previous_Instances): new procedure within of
2679         Load_Parent_Of_Generic, to instantiate all bodies in the compilation
2680         unit being loaded, to ensure that the generation of global symbols is
2681         consistent in different compilation modes.
2682         (Is_Tagged_Ancestor): New function testing the ancestor relation that
2683         takes progenitor types into account.
2684         (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
2685         traversing over the primitives of the formal and actual types to locate
2686         any abstract subprograms of the actual type that correspond to a
2687         nonabstract subprogram of the formal type's ancestor type(s), and issue
2688         an error if such is found.
2689         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
2690         Instantiate_Package_Body, Instantiate_Subprogram_Body):
2691         Remove bogus guard around calls to Inherit_Context.
2692         (Reset_Entity): If the entity is the selector of a selected component
2693         that denotes a named number, propagate constant-folding to the generic
2694         template only if the named number is global to the generic unit.
2695         (Set_Instance_Env): Only reset the compilation switches when compiling
2696         a predefined or internal unit.
2697
2698 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2699
2700         * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
2701         parameter to determine whether operation applies to the prefix.
2702         (Complete_Object_Operation): If actual has an access type and
2703         controlling formal is not an in_parameter, reject the actual if it is
2704         an access_to_constant type.
2705         (Try_Primitive_Operation): If the type of the prefix is a formal tagged
2706         type, the candidate operations are found in the scope of declaration of
2707         the type, because the type has no primitive subprograms.
2708         (Analyze_Selected_Component): If prefix is class-wide, and root type is
2709         a private extension, only examine visible components before trying to
2710         analyze as a prefixed call.
2711         Change Entity_List to Type_To_Use, for better readability.
2712         (Has_Fixed_Op): Use base type when checking whether the type of an
2713         operator has a user-defined multiplication/division
2714         (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
2715         user-defined operators are available for fixed-point types.
2716
2717 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2718             Ed Schonberg  <schonberg@adacore.com>
2719
2720         * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
2721         formal At_Any_Place indicating, when True, that we want to test for
2722         availability of the stream attribute at any place (as opposed to the
2723         current visibility context only).
2724         (Missing_Read_Write_Attributes): A stream attribute is missing for the
2725         purpose of enforcing E.2.2(8) only if it is not available at any place.
2726         Take into account the Ada2005 pragma Has_Preelaborable_Initialization
2727         when checking the legality of an extension aggregate in a preelaborable
2728         package. Treat the literal null as a valid default expression in a
2729         component declaration for a type with preelaborable initialization.
2730         A limited interface is a legal progenitor for the designated type of a
2731         remote access to class-wide type.
2732
2733 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2734             Ed Schonberg  <schonberg@adacore.com>
2735
2736         * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
2737         reference): Use correct entity as denoted entity for the selector of
2738         the rewritten node.
2739         (Find_Direct_Name): Add comment about Generate_Reference incorrectly
2740         setting the Referenced_As_LHS flag for entities that are implicitly
2741         dereferenced.
2742         (Find_Type): If the type is an internally generated incomplete type,
2743         mark the full view as referenced, to prevent spurious warnings.
2744         (Find_Selected_Component, Has_Components): Handle properly non-limited
2745         views that are themselves incomplete types.
2746         Handle interfaces visible through limited-with clauses.
2747         (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
2748         subprogram generic actual for which we have generated a renaming.
2749         Warn when the renaming introduces a homonym of
2750         the renamed entity, and the renamed entity is directly visible.
2751
2752 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2753             Hristian Kirtchev  <kirtchev@adacore.com>
2754
2755         * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
2756         appear in the subtree to the current allocator if it is not a static
2757         coextension.
2758         (Resolve_Allocator): Perform cleanup if resolution has determined that
2759         the allocator is not a coextension.
2760         (Resolve): Skip an interpretation hidden by an abstract operator only
2761         when the type of the interpretation matches that of the context.
2762         (Resolve): When looping through all possible interpretations of a node,
2763         do not consider those that are hidden by abstract operators.
2764         (Resolve_Actuals): When verifying that an access to class-wide object
2765         is an actual  for a controlling formal, ignore anonymous access to
2766         subprograms whose return type is an access to class_wide type.
2767         (Resolve_Slice): If the prefix of the slice is a selected component
2768         whose type depends on discriminants, build its actual subtype before
2769         applying range checks on the bounds of the slice.
2770         (Valid_Conversion): In an instance or inlined body, compare root types,
2771         to prevent anomalies between private and public views.
2772         (Resolve): Improve error message for ambiguous fixed multiplication
2773         expressions that involve universal_fixed multiplying operations.
2774
2775 2007-08-14  Javier Miranda  <miranda@adacore.com>
2776             Hristian Kirtchev  <kirtchev@adacore.com>
2777
2778         * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
2779         location to allow the correct generation of errors in case of
2780         restrictions applied to the expanded code.
2781         (Expand_Entry_Barrier): Remove all generated renamings for a barrier
2782         function if the condition does not reference them.
2783         (Expand_Entry_Body_Declarations): Mark the index constant as having a
2784         valid value.
2785
2786 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2787
2788         * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
2789         typecode parameters for a union (in a variant record), remove
2790         extraneous layer of Any wrapping for member label.
2791         (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
2792         elabration statements, register the package with the name server
2793         at the beginning, not at the end, of the elaboration statements so
2794         that they can create remote access to subprogram values that designate
2795         remote subprograms from the package.
2796
2797 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
2798
2799         * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
2800         values to compute the number of seconds since the Unix Epoc in order to
2801         account for Daylight Savings Time. Perform special processing for dates
2802         that are earlier than the Unix Epoc to obtain a negative number.
2803
2804 2007-08-14  Emmanuel Briot  <briot@adacore.com>
2805
2806         * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
2807         switches.
2808
2809 2007-08-14  Eric Botcazou  <ebotcazou@adacore.com>
2810
2811         * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
2812         binder-generated file is not in Ada.
2813         Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
2814         recorded in the ALI file.
2815         Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
2816
2817 2007-08-14  Vincent Celier  <celier@adacore.com>
2818
2819         * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
2820         (Output_Source): Do nothing if parameter is No_Sdep_Id
2821
2822         * make.adb (Gnatmake): Do not rebuild an archive simply because a
2823         shared library it imports has a later time stamp.
2824         (Check): Resolve the symbolic links in the path name of the object
2825         directory.
2826         Check that the ALI file is in the correct object directory
2827         Check if a file name does not correspond to the mapping of units
2828         to file names.
2829         (Display_Version): New procedure
2830         (Initialize): Process switches --version and --help
2831         Use type Path_Name_Type for path name
2832
2833 2007-08-14  Paul Hilfinger  <hilfinger@adacore.com>
2834
2835         * impunit.adb: Re-organize System.Random_Numbers and
2836         GNAT.Random_Numbers and add to builds.
2837
2838         * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
2839
2840         * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
2841
2842         * a-assert.ads, a-assert.adb: New files.
2843
2844 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
2845
2846         * layout.adb (Layout_Type): In the case of access-to-subprogram types,
2847         if AAMP_On_Target is True, then the size of the type encompasses two
2848         addresses (a static link and a subprogram address), except in the case
2849         of library-level access types.
2850
2851 2007-08-14  Vincent Celier  <celier@adacore.com>
2852
2853         * output.ads, output.adb (Write_Eol): Remove trailing spaces before
2854         writing the line.
2855         (Write_Eol_Keep_Blanks): New procedure to write a line, including
2856         possible trailing spaces.
2857         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
2858
2859 2007-08-14  Javier Miranda  <miranda@adacore.com>
2860
2861         * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
2862         null-excluding access types.
2863
2864 2007-08-14  Javier Miranda  <miranda@adacore.com>
2865
2866         * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
2867         that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
2868         of private types add missing check on matching interfaces in the
2869         partial and full declarations.
2870         (Analyze_Protected_Type): Code cleanup.
2871         (Analyze_Task_Type): Code cleanup.
2872
2873 2007-08-14  Javier Miranda  <miranda@adacore.com>
2874
2875         * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
2876         generated interface thunk.
2877
2878 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2879
2880         * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
2881         obsolescent warning on application of 'Class to an incomplete type.
2882
2883         * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
2884         prevent obsolescent warning on application of 'Class to an incomplete
2885         type.
2886
2887 2007-08-14  Pascal Obry  <obry@adacore.com>
2888
2889         * s-fileio.adb (Is_Open): Add check for usability of the underlying
2890         file stream.
2891
2892 2007-08-14  Cyrille Comar  <comar@adacore.com>
2893
2894         * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
2895         since it is potentially used in cases implying double finalization of
2896         the same object.
2897
2898 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
2899
2900         * s-tasini.adb (Get_Stack_Info): Move this function to
2901         System.Soft_Links.Tasking because it is common to the full and the
2902         restricted run times.
2903         (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
2904         in SSL.Tasking.Init_Tasking_Soft_Links.
2905
2906         * s-solita.adb (Get_Stack_Info): Function moved from
2907         System.Tasking.Initialization because it is common to the full and the
2908         restricted run times.
2909         (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
2910
2911 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
2912
2913         * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
2914         s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
2915         (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
2916         parameter.
2917
2918         * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
2919         guard to 12K.
2920
2921 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
2922
2923         * s-veboop.adb (SU): New named number initialized to
2924         System.Storage_Unit.
2925         (True_Val): The initialization expression is revised to use SU (=
2926         Storage_Unit) rather than assuming 8 for the component size of an
2927         unpacked Boolean array.
2928
2929 2007-08-14  Tristan Gingold  <gingold@adacore.com>
2930
2931         * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
2932
2933         * tb-ivms.c: New file.
2934
2935         * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
2936
2937 2007-08-14  Geert Bosch  <bosch@adacore.com>
2938
2939         * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
2940         s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
2941         Add required linker pragmas for automatically linking with the gnalasup
2942         linear algebra support library, and the systems math library.
2943         Rename cdot to cdotu and zdot to zdotu.
2944         Update header comment to describe purpose of package.
2945
2946 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2947
2948         * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
2949         an explicitly specified Associated_Final_Chain, use that list.
2950         (Expand_N_Package_Body): Build dispatch tables of library level tagged
2951         types.
2952         (Expand_N_Package_Declaration): Build dispatch tables of library level
2953         tagged types. Minor code cleanup.
2954
2955 2007-08-14  Vincent Celier  <celier@adacore.com>
2956
2957         * gnatchop.adb (Terminate_Program): Remove exception and use
2958         Types.Terminate_Program instead.
2959
2960         * osint.ads, osint.adb (Current_Exit_Status): New global variable
2961         (Find_Program_Name): Added protection against empty name.
2962         (OS_Exit_Through_Exception): New procedure
2963
2964         * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
2965         (OS_Exit_Default): New procedure that contains the previous
2966         implementation of procedure OS_Exit.
2967         (Final_Value): Remove obsolete Interix stuff.
2968
2969 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2970
2971         * g-socket.ads: Reorganize example code so that it also works on
2972         Windows XP.
2973
2974 2007-08-14  Tristan Gingold  <gingold@adacore.com>
2975
2976         * g-trasym.ads: AIX now supports symbolic backtraces.
2977
2978 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2979
2980         * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
2981         units being loaded to detect circularities. A circularity may be
2982         present even if the current chain of pending units to load starts from
2983         a limited_with_clause.
2984
2985         * lib-load.ads: Change profile of Load_Unit to use a with_clause
2986         rather than a boolean flag, in order to detect circularities in
2987         with_clauses.
2988
2989         * par-load.adb: Use current with_clause in calls to Load_Unit, rather
2990         than propagating the From_Limited_With flag, in order to handle
2991         properly circularities involving with_clauses.
2992
2993 2007-08-14  Nicolas Setton  <setton@adacore.com>
2994
2995         * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
2996         warnings.
2997
2998 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
2999
3000         * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
3001         to build for libgnala.
3002         libgnat: Add rules to build libgnala.a
3003         (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
3004         target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
3005         Add s-osinte-vxworks-kernel.adb to the target pairs of the
3006         kernel run-time lib for VxWorks 6, which would provide a different
3007         implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
3008         x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
3009         running ZCX by default.
3010         Add g-sttsne-locking to LynxOS version.
3011         Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
3012         On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
3013
3014         * system-darwin-x86.ads: New file.
3015
3016         * Make-lang.in: Delete files before copying onto them, so if they are
3017         read-only, the copy won't fail.
3018         Update dependencies
3019
3020 2007-08-14  Pascal Obry  <obry@adacore.com>
3021
3022         * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
3023         naming scheme.
3024
3025 2007-08-14  Vincent Celier  <celier@adacore.com>
3026
3027         * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
3028         (Gcc): Initialize Gcc_Name at the first call
3029
3030 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
3031
3032         * sem_ch7.adb (Analyze_Package_Specification): Do not install private
3033         with_clauses of the enclosing unit when analyzing the package
3034         specification of a nested instance.
3035
3036 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
3037
3038         * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
3039         (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
3040         Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
3041         layout of N_Allocator.
3042
3043 2007-08-14  Thomas Quinot  <quinot@adacore.com>
3044
3045         * rtsfind.adb (Check_RPC): Add PCS version check.
3046
3047         * gnatvsn.ads, gnatvsn.adb: Add PCS version.
3048         (Gnat_Free_Software): New function.
3049
3050         * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
3051         the PCS_Version value from s-parint, used to check that it is consistent
3052         with what exp_dist expects.
3053
3054         * s-parint.ads (PCS_Version): New entity for checking consistency
3055         between exp_dist and PCS.
3056
3057         * gen-soccon.c: (SO_REUSEPORT): New constant.
3058
3059 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
3060
3061         * a-calfor.adb (Image (Duration; Boolean)): Change type of local
3062         variable Sub_Second to Duration in order to accomodate a larger range
3063         of arithmetic operations.
3064
3065 2007-08-14  Bob Duff  <duff@adacore.com>
3066
3067         * g-sttsne-locking.ads: Move comments from spec to body.
3068         * g-sttsne-locking.adb: Move comments from spec to body.
3069         * g-sttsne-vxworks.ads: Removed.
3070         * g-sttsne-vxworks.adb: Removed.
3071
3072 2007-08-11  Ian Lance Taylor  <iant@google.com>
3073
3074         * misc.c (gnat_get_alias_set): Change return type to
3075         alias_set_type.
3076
3077 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3078
3079         * decl.c, utils2.c: Fix whitespace in last change.
3080
3081 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3082
3083         * decl.c (compare_field_bitpos): Constify.
3084         * utils2.c (compare_elmt_bitpos): Likewise.
3085
3086 2007-07-27  Aurelien Jarno  <aurelien@aurel32.net>
3087
3088         * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by 
3089         anonymous access type.
3090         (pthread_sigmask): Now take an access sigset_t.
3091
3092 2007-07-05  Joel Sherrill <joel.sherrill@oarcorp.com>
3093
3094         * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
3095         
3096 2007-06-21  Eric Botcazou  <ebotcazou@adacore.com>
3097
3098         PR tree-optimization/25737
3099         * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
3100
3101 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3102
3103         * trans.c (Attribute_to_gnu): When subtracting an
3104         offset from a pointer, use POINTER_PLUS_EXPR with
3105         NEGATE_EXPR instead of MINUS_EXPR.
3106         (gnat_to_gnu): Likewise.
3107         * utils.c (convert): When converting between
3108         thin pointers, use POINTER_PLUS_EXPR and sizetype
3109         for the offset.
3110         * utils2.c (known_alignment): POINTER_PLUS_EXPR
3111         have the same semantics as PLUS_EXPR for alignment.
3112         (build_binary_op): Add support for the semantics of
3113         POINTER_PLUS_EXPR's operands.
3114         When adding an offset to a pointer, use POINTER_PLUS_EXPR.
3115
3116 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
3117
3118         * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
3119         of get_signed_or_unsigned_type.
3120         * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
3121
3122 2007-06-11  Bob Duff  <duff@adacore.com>
3123             Thomas Quinot  <quinot@adacore.com>
3124
3125         * g-stsifd-sockets.adb (Create): Work around strange behavior of
3126         'bind' on windows that causes 'connect' to fail intermittently, by
3127         retrying the 'bind'.
3128         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3129
3130 2007-06-10  Duncan Sands  <baldrick@free.fr>
3131
3132         * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
3133         than to void, for the fields when making a new fat pointer type.
3134         (gnat_substitute_in_type): Now substitute_in_type.
3135         * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
3136         * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
3137         * utils.c (update_pointer_to): Update fat pointers by updating the
3138         dummy node pointers used for the fields.
3139
3140 2007-06-06  Thomas Quinot  <quinot@adacore.com>
3141             Bob Duff  <duff@adacore.com>
3142
3143         * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
3144         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, 
3145         g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
3146         constant Thread_Blocking_IO, always True by default, set False
3147         on a per-runtime basis.
3148         (Need_Netdb_Buffer): New constant.
3149
3150         * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
3151         g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
3152         files.
3153
3154         * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
3155         g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
3156         Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
3157         child package Task_Safe_NetDB
3158         (Host_Error_Messages): Add stub body.
3159         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3160
3161         * g-soccon-mingw.ads: Add Windows-specific constants.
3162         (Need_Netdb_Buffer): New constant.
3163         (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
3164         wrapper and import inet_addr(3) from the standard sockets library
3165         directly instead.
3166         (In_Addr): Add alignment clause.
3167         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3168
3169 2007-06-06  Robert Dewar  <dewar@adacore.com>
3170
3171         * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
3172         s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
3173         s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
3174         s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
3175         s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
3176         s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
3177         a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
3178         a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
3179         a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
3180         g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
3181         g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
3182         i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
3183         s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
3184         s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
3185         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
3186         s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
3187         s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
3188         s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
3189         s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
3190         s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
3191         s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
3192         s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
3193         s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
3194         s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
3195         s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
3196         s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
3197         s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
3198         s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
3199         s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
3200         s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
3201         s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
3202         a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
3203         Unchecked_* by Ada.Unchecked_*
3204
3205 2007-06-06  Robert Dewar  <dewar@adacore.com>
3206
3207         * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
3208         s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
3209         g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
3210         output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
3211         g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
3212         a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
3213
3214         * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
3215         s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
3216         s-tasloc.adb, s-tasloc.ads: New files.
3217
3218 2007-06-06  Bob Duff  <duff@adacore.com>
3219
3220         * g-expect-vms.adb: 
3221         (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
3222         * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
3223         (Send_Signal, Close): Raise Invalid_Process if the process id is
3224         invalid.
3225         (Pattern_Matcher_Access): Is now a general access type to be able to
3226         use aliased string.
3227
3228 2007-06-06  Thomas Quinot  <quinot@adacore.com>
3229             Arnaud Charlet  <charlet@adacore.com>
3230
3231         * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
3232         (SIGEMT is now used instead of SIGTERM on AIX).
3233
3234         * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
3235         (Time_Slice_Supported): Set to True.
3236         Use SIGEMT instead of SIGTERM as SIGADAABORT.
3237
3238 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
3239
3240         * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
3241         (Time, Time)): Use To_Relative_Time rather than manual calculation to
3242         express the bounds of Duration as Time. Raise Time_Error when the
3243         result is greater or equal to the higher bound of Duration (on the
3244         margin case).
3245         ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
3246         Ada_High_And_Leaps.
3247         ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
3248         Ada_High_And_Leaps.
3249         ("-" (Time, Time)): Reorder code.
3250         (All_Leap_Seconds): Removed.
3251         (Arithmetic_Operations.Add): Remove sign related kludge.
3252         (Arithmetic_Operations.Difference): Control the leaps seconds processing
3253         with flag Leap_Support.
3254         (Arithmetic_Operations.Subtract): Remove sign related kludge.
3255         (Check_Within_Time_Bounds): New procedure.
3256         (Clock): Control the leap seconds processing with flag Leap_Support.
3257         (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
3258         (Formatting_Operations.Split): Control the leap seconds processing with
3259         flag Leap_Support.
3260         (Formatting_Operations.Time_Of): Control the leaps seconds processing
3261         with flag Leap_Support. Adjust the year, month and day (if applicable)
3262         when the value of day seconds designates a new day.
3263         (Split): Use parameter associations for better readability. Integrate
3264         flag Is_Ada_05.
3265         (Time_Of): Use parameter associations for better readability. Integrate
3266         flag Is_Ada_05.
3267
3268         * a-calfor.adb (Split): Use parameter associations for better
3269         readability. Integrate flag Is_Ada_05.
3270         (Time_Of): Remove flag Leap_Checks. Use parameter associations for
3271         better readability. Integrate flag Is_Ada_05.
3272
3273 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
3274
3275         * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb, 
3276         s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb, 
3277         s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb, 
3278         s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads, 
3279         s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb, 
3280         s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb, 
3281         s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads, 
3282         s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads, 
3283         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads, 
3284         s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
3285         s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
3286         time when entering this routine to detect a backward clock setting
3287         (manual setting or DST adjustment), to avoid waiting for a longer delay
3288         than needed.
3289         (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
3290         Remove handling of deferred priority change, and replace by setting the
3291         task priority directly, as required by AI-188.
3292         Update comments.
3293         (Max_Task_Image_Length): New constant.
3294         Replace Warnings (Off) by Unreferenced pragma, cleaner.
3295         (Dynamic_Priority_Support): Removed, no longer needed.
3296         (Poll_Base_Priority_Change): Ditto.
3297         (Set_Ceiling): Add this procedure to change the ceiling priority
3298         associated to a lock. This is a dummy implementation because dynamic
3299         priority ceilings are not supported by the underlying system.
3300
3301         * a-dynpri.adb (Set_Priority): Take into account case where Target is
3302         accepting a RV with its priority boosted.
3303         Remove handling of deferred priority change, and replace by setting the
3304         task priority directly, as required by AI-188.
3305
3306         * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
3307         Succeeded = True.
3308         Remove handling of deferred priority change, and replace by setting the
3309         task priority directly, as required by AI-188.
3310         (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
3311         of Self_Id earlier.
3312
3313         * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
3314         (Poll_Base_Priority_Change): Removed.
3315         Code clean up: use SSL.Current_Target_Exception.
3316
3317         * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
3318         to run as this is a potentially dispatching point.
3319         (Call_Synchronous): Use Local_Defer_Abort.
3320         (Callable): Relax assertion.
3321         (Selective_Wait): Relax assertion in case abort is not allowed.
3322         Remove handling of deferred priority change, and replace by setting the
3323         task priority directly, as required by AI-188.
3324
3325         * s-tasuti.adb (Make_Passive): Adjust assertions.
3326         Remove handling of deferred priority change, and replace by setting the
3327         task priority directly, as required by AI-188.
3328
3329 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
3330
3331         * system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
3332         system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
3333         system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads, 
3334         system-vxworks-mips.ads, system-vxworks-alpha.ads, 
3335         system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads, 
3336         system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads, 
3337         system-interix.ads, system-linux-hppa.ads, system-tru64.ads, 
3338         system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads, 
3339         system-solaris-sparcv9.ads, system-vms.ads, system.ads,
3340         system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
3341         system-linux-ia64.ads: Document mapping between Ada and OS priorities.
3342         This patch changes the largest non-binary modulus from 2**31-1 to
3343         2**32-1.
3344         (Compiler_System_Version): Removed, no longer used.
3345         Clean up system files by removing flags only used on a single target.
3346         Also remove obsolete flags, only used during bootstrap from system.ads
3347         (Address): Add a pragma Preelaborable_Initialization.
3348
3349         * system-aix.ads:  Ditto.
3350         (GCC_ZCX_Support): Set to true.
3351         Update priority range on AIX and map Ada priorities to target
3352         priorities appropriately for different scheduling policies.
3353
3354         * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
3355
3356 2007-06-06  Vincent Celier  <celier@adacore.com>
3357
3358         * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
3359         mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
3360
3361         * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb, 
3362         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb, 
3363         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, 
3364         mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, 
3365         mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
3366         MLib.Tgt, containing the default versions of the exported subprograms.
3367         For each platform, create a specific version of the body of new child
3368         package MLib.Tgt.Specific that contains only the body of subprograms
3369         that are different from the default.
3370         (Archive_Builder_Append_Options): New function.
3371
3372 2007-06-06  Matthew Gingell  <gingell@adacore.com>
3373
3374         * s-osinte-aix.adb: Map Ada priorities to target priorities
3375         appropriately for different scheduling policies.
3376
3377 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
3378
3379         * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
3380         its C counterpart.
3381         Remove references to Unchecked_Conversion, and use Ada.xxx instead.
3382         Replace Unchecked_Conversion by Ada.Unchecked_Conversion. 
3383
3384 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
3385
3386         * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
3387         Noop on VMS, added for interface commonality.
3388
3389 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
3390             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3391             Olivier Hainque  <hainque@adacore.com>
3392
3393         * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
3394         renamed expression of a full renaming at toplevel.
3395         (gnat_to_gnu_entity, case object): If not defining, do not look inside
3396         the values the constant is initialized to if it is an N_Allocator.
3397         (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
3398         TYPE_SIZE_UNIT of inner types after the stride is elaborated.
3399         (make_aligning_type): Accept an extra ROOM argument for storage to be
3400         made available before the aligned field, and an extra BASE_ALIGN
3401         argument for callers to pass the alignment guaranteed to be honored for
3402         the whole aligning object. Avoid call to finish_record_type, which only
3403         interferes with the sizes we want to set.
3404         (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
3405         make_aligning_type for super-aligned objects on stack.
3406         (components_to_record): Pass the adjusted size of the type when creating
3407         fields in the qualified union for the variant part.
3408         (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
3409         (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
3410         packed array type.
3411         (maybe_pad_type): Set TYPE_USER_ALIGN.
3412         (make_aligning_type): Likewise.
3413         ALIGN argument is unsigned int.
3414         (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
3415         (gnat_to_gnu_param): Likewise, for parameters.
3416         (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
3417         if it is constant and stems from a function call.
3418         (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
3419         of the record is specified.  Adjust accordingly.
3420         (adjust_packed): New static function.
3421         (gnat_to_gnu_field): Use it to adjust the packedness setting.
3422         (components_to_record): Likewise.
3423         (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
3424         side-effects if the object is deemed constant.
3425         (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
3426         type instead of merely finalizing it.  Tidy.
3427         <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
3428         <E_Access_Type>: Likewise.
3429         (defer_debug_incomplete_list): Rename to defer_finalize_list.
3430         (defer_debug_level): Delete.
3431         (gnat_to_gnu_entity) <debug_deferred>: Likewise
3432         <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
3433         type.
3434         <E_Record_Type>: Do not explicitly defer finalizing the type.
3435         Adjust for write_record_type_debug_info renaming.
3436         <E_Subprogram_Type>: Likewise.
3437         Finalize deferred types right after deferred incomplete types are
3438         expanded.
3439         (rest_of_type_decl_compilation): New global function.
3440         (components_to_record): Rename defer_debug parameter to do_not_finalize.
3441         (components_to_record): Propagate the packedness to the fields of the
3442         qualified union type if there is a variant part.
3443         (gnat_to_gnu_entity) <E_Array_Type>: Use new function
3444         instead of inline code to adjust the XUT field offsets.
3445         (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
3446         <E_Record_Subtype>: Do not let finish_record_type compute the sizes
3447         and write the debug info if the type derives from a discriminated one.
3448         (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
3449         <E_Array_Subtype>: Likewise.
3450         <E_String_Literal_Subtype>: Likewise.
3451         (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
3452         an alignment clause.
3453         (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
3454         before giving warning.
3455         (prepend_one_attribute_to): New function, helper to prepend an attribute
3456         to an attribute list.
3457         (gnat_to_gnu_entity) <E_Procedure>: Use it.
3458         (prepend_attributes): Likewise.
3459         (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
3460         <E_Array_Type>: Declare the padding type for the element type, if any.
3461         <E_Array_Subtype>: Likewise.
3462         (defer_limited_with): New variable.
3463         (Gigi_Equivalent_Type): New function.
3464         (gnat_to_gnu_entity): Use it at start and use result throughout.
3465         (gnat_to_gnu_entity, case E_Access_Type): Rework to use
3466         Gigi_Equivalent_Type, support Limited_With, allow two levels of
3467         indirection, precompute if unconstrained array to simplify logic, and
3468         use defer_limited_with to defer elaboration of some types from limited
3469         with.
3470         (finalize_from_with_types): New function.
3471
3472 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
3473             Eric Botcazou  <ebotcazou@adacore.com>
3474             Tristan Gingold  <gingold@adacore.com>
3475             Olivier Hainque  <hainque@adacore.com>
3476
3477         * trans.c (Identifier_to_gnu): Change test for deferred constant by
3478         adding guard that the entity is an E_Constant before testing presence
3479         of Full_view (and remove unnecessary test that entity is not a type).
3480         For a CONST_DECL used by reference, manually retrieve
3481         the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
3482         (struct language_function): Move from utils.c to here.
3483         (struct parm_attr): New structure.
3484         (parm_attr, parm_attr vector, parm_attr GC vector): New types.
3485         (f_parm_attr_cache): New macro.
3486         (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
3487         expressions for the 'First, 'Last and 'Length attributes of the
3488         unconstrained array IN parameters.
3489         (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
3490         Allocate the information structure for the function earlier, as well
3491         as the language-specific part.
3492         If the parameter attributes cache has been populated, evaluate the
3493         cached expressions on entry.
3494         (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
3495         N_Procedure_Call_Statement and N_Indexed_Component.
3496         (Pragma_to_gnu): Translate inspection_point to an asm statement
3497         containaing a comment and a reference to the object (either its address
3498         for BLKmode or its value).
3499         (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
3500         to go to DECL_INITIAL. Together with the size constraint relaxation
3501         in create_var_decl, enlarges the set of situations in which an
3502         identifier may be used as an initializer without implying elaboration
3503         code.
3504         (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
3505         DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
3506         node.
3507         (maybe_stabilize_reference): Remove lvalues_only parameter.
3508         (gnat_stabilize_reference): Adjust for above change.
3509         (gnat_to_gnu): Do not set location information on the result
3510         if it is a reference.
3511         (add_cleanup): Add gnat_node parameter and set the location of the
3512         cleanup to it.
3513         (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
3514         (Exception_Handler_to_gnu_zcx): Likewise.
3515         (gigi): Remove the cgraph node if the elaboration procedure is empty.
3516         (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
3517         the former right after the latter.
3518         (start_stmt_group): Make global.
3519         (end_stmt_group): Likewise.
3520         (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
3521         vars.
3522         (gnu_program_error_label_stack): Likewise.
3523         (gigi): Initialize them.
3524         (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
3525         (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
3526         New cases.
3527         (push_exception_label_stack): New function.
3528         (takes_address): New function.
3529
3530         * utils.c (struct language_function): Move to trans.c from here.
3531         (unchecked_convert): Do not wrap up integer constants in
3532         VIEW_CONVERT_EXPRs.
3533         (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
3534         the latter for aggregate types, unexpected by later passes, and relax an
3535         arbitrary size constraint on the former.
3536         (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
3537         to compare the sizes.
3538         (convert_vms_descriptor): When converting to a fat pointer type, be
3539         prepared for a S descriptor at runtime in spite of a SB specification.
3540         (shift_unc_components_for_thin_pointers): New function.
3541         (write_record_type_debug_info): For variable-sized fields, cap the
3542         alignment of the pointer to the computed alignment.
3543         (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
3544         If REP_LEVEL is 2, do not compute the sizes.
3545         (build_vms_descriptor): Adjust for new prototype of finish_record_type.
3546         (build_unc_object_type): Likewise.
3547         (declare_debug_type): New function.
3548
3549         * ada-tree.def: USE_STMT: removed (not emitted anymore).
3550
3551         * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
3552         no statement is expandable anymore.
3553         (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
3554         (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
3555         when the user requested it explicitely.
3556         (gnat_post_options): By default, set flag_eliminate_unused_debug_types
3557         to 0 for Ada.
3558         (get_alias_set): Return alias set 0 for a type if
3559         TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
3560
3561         * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
3562         (DECL_FUNCTION_STUB): New accessor macro.
3563         (SET_DECL_FUNCTION_STUB): New setter macro.
3564
3565         * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
3566
3567         * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
3568         declarations.
3569
3570 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
3571
3572         * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
3573         Rename to Abort_Task_Interrupt to be able to keep the same interface
3574         as the rest of the targets.
3575
3576         * s-osinte-vxworks.ads s-osinte-vxworks.adb
3577         (To_VxWorks_Priority): Remove explicit "in" mode indicator
3578
3579         * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
3580         New files.
3581
3582 2007-06-06  Robert Dewar  <dewar@adacore.com>
3583
3584         * a-chahan.ads: Remove obsolescent pragmas
3585
3586         * a-chlat1.ads: Minor reformatting
3587
3588 2007-06-06  Robert Dewar  <dewar@adacore.com>
3589
3590         * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
3591         for Errout
3592
3593         * errout.adb: New Finalize/Compilation_Errors/Output_Messages
3594         implementation
3595
3596         * errout.ads (Finalize): Changed interface
3597         (Output_Messages): New procedure
3598         (Compilation_Errors): New Interface
3599
3600         * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
3601         Finalize/Output_Messages interface for Errout
3602         (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
3603         Errout.
3604
3605 2007-06-06  Thomas Quinot  <quinot@adacore.com>
3606             Olivier Hainque  <hainque@adacore.com>
3607             Robert Dewar  <dewar@adacore.com>
3608
3609         * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
3610         check.
3611         (Raise_Current_Excep): Call Debug_Raise_Exception just before
3612         propagation starts, to let debuggers know about the event in a reliable
3613         fashion.
3614         (Local_Raise): Moved to System.Exceptions
3615         More convenient to have this as a separate unit
3616
3617         * s-except.adb, s-except.ads: New files.
3618
3619         * a-exextr.adb (Unhandled_Exception): Delete - replaced by
3620         Debug_Unhandled_Exception in System.Exceptions where it belongs
3621         together with a couple of other debug helpers.
3622         (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
3623         the former Unhandled_Exception.
3624
3625         * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
3626         (Warn_No_Exception_Propagation): New procedure
3627         (Warn_If_No_Propagation): Rewritten for new warning generation
3628         (Expand_Exception_Handlers): New warning generation
3629         (Expand_N_Raise_xxx_Error): Rewritten for new warnings
3630         (Add_Exception_Label): Use Special_Exception_Package_Used for test
3631         instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
3632         (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
3633         even if restriction is set (makes life easier in Check_Returns)
3634         (Expand_Local_Exception_Handlers): Follow renamed entity chain when
3635         checking exception identities.
3636         (Expand_Local_Exception_Handlers): Do not optimize when all others case
3637         (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
3638         block for handler (used by Check_Returns)
3639         (Expand_Local_Exception_Handlers): Local_Raise now takes an address
3640         (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
3641         remove all exception handlers when optimizing local raise statements.
3642         (Find_Local_Handler): Use Get_Renamed_Entity
3643         (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
3644         marked analyzed after expanding exception handlers, do not generate
3645         redundant cleanup actions, because they have been constructed already.
3646
3647 2007-06-06  Thomas Quinot  <quinot@adacore.com>
3648
3649         * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
3650         presence of this categorization pragma is mandated by the language.
3651         (Limited_Controlled): Add missing pragma Preelaborable_Initialization
3652         for this type.
3653
3654 2007-06-06  Vincent Celier  <celier@adacore.com>
3655             Robert Dewar  <dewar@adacore.com>
3656
3657         * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb, 
3658         butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, 
3659         err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads, 
3660         fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads, 
3661         lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads, 
3662         makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb, 
3663         par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb, 
3664         prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads, 
3665         prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb, 
3666         sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb, 
3667         uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
3668         ali.ads, ali.adb: 
3669         Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
3670         package Namet. Make File_Name_Type and Unit_Name_Type types derived from
3671         Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
3672         Use variables of types File_Name_Type and Unit_Name_Type in error
3673         messages.
3674         (Get_Name): Add parameter Ignore_Special, and set it reading file name
3675         (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
3676         here.
3677         Define flags Flag217-Flag230 with associated subprograms
3678         (Flag_Word5): New record type.
3679         (Flag_Word5_Ptr): New access type.
3680         (To_Flag_Word5): New unchecked conversion.
3681         (To_Flag_Word5_Ptr): Likewise.
3682         (Flag216): New function.
3683         (Set_Flag216): New procedure.
3684
3685 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
3686
3687         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
3688         instead of 'Size.
3689
3690         * a-stwifi.ads, a-stzfix.ads: Minor reformatting
3691
3692 2007-06-06  Javier Miranda  <miranda@adacore.com>
3693
3694         * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
3695         the package.
3696         (Object_Specific_Data_Array): This is now internal to the package.
3697         (Object_Specific_Data): This is now internal to the package.
3698         (Select_Specific_Data_Element): This is now internal to the package.
3699         (Select_Specific_Data_Array): This is now internal to the package.
3700         (Select_Specific_Data): This is now internal to the package.
3701         (Offset_To_Top_Function_Ptr): This is now public.
3702         (To_Offset_To_Top_Function_Ptr): Removed.
3703         (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
3704          local to subprogram Offset_To_Top.
3705         (Predefined_DT): Removed.
3706         (Typeinfo_Ptr): Removed.
3707         (OSD): This function is now internal to this package.
3708         (SSD): This function is now internal to this package.
3709         (DT): New function that displaces the pointer to the table of primitives
3710          to get access to the enclosing wrapper record.
3711         (IW_Membership): Code cleanup.
3712         (Offset_To_Top): Code cleanup.
3713         (Predefined_DT): Removed.
3714         (Register_Interface_Tag): Removed.
3715         (Set_Interface_Table): Removed.
3716         (Set_Offset_Index): Removed.
3717         (Set_Offset_To_Top): Code cleanup.
3718         (Set_OSD): Removed.
3719         (Set_Signature): Removed.
3720         (Set_SSD): Removed.
3721         (Set_Tagged_Kind): Removed.
3722         (Typeinfo_Ptr): Removed.
3723         (TSD): Removed.
3724         (Displace): Add missing check on null actual.
3725
3726         * exp_disp.ads, exp_disp.adb
3727         (Select_Expansion_Utilities): Removed.
3728         (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
3729         (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
3730         the interface requires a new parameter.
3731         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
3732         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
3733         calls to subprograms Build_T, Build_S, etc. by the corresponding code.
3734         Done to remove package Select_Expansion_Utilities.
3735         (Make_DT): New implementation for statically allocated dispatch tables.
3736         (Make_Secondary_DT): Moved to the scope of Make_DT.
3737         (Register_Primitive): Code cleanup plus incoporate the use of the new
3738         function DT_Address_Attribute.
3739         (Expand_Interface_Thunk): The profile of this subprogram has been
3740         changed to return the Thunk_Id and the corresponding code.
3741         (Fill_DT_Entry): Removed. Its functionality is now provided by
3742         subprogram Register_Primitive.
3743         (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
3744         subprogram Register_Primitive.
3745         (Register_Primitive): New subprogram that incorporates the previous
3746         functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
3747         (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
3748         was only required to call Make_DT_Access_Action, which is now removed.
3749         (Ada_Actions): Removed
3750         (Action_Is_Proc): Removed
3751         (Action_Nb_Arg): Removed
3752         Replace all the calls to Make_DT_Access_Action by direct calls to
3753         Make_Procedure_Call_Statement or Make_Function_Call.
3754         (Set_DTC_Entity_Value): New subprogram.
3755         (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
3756         (Expand_Interface_Thunk): Add missing support for primitives that are
3757         functions with a controlling result (case in which there is no need
3758         to generate the thunk).
3759
3760         * exp_atag.ads, exp_atag.adb
3761         (Build_DT): New subprogram that displaces the pointer to reference the
3762         base of the wrapper record.
3763         (Build_Typeinfo_Offset): Removed.
3764         (RTE_Tag_Node): Removed.
3765         (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
3766         (Build_Get_RC_Offset): Removed.
3767         (Build_Inherit_Predefined_Prims): Removed.
3768         (Build_Inherit_TSD: Removed.
3769         (Build_New_TSD): Removed.
3770         (Build_Set_External_Tag): Removed.
3771         (Build_Set_Predefined_Prim_Op_Address): Add documentation.
3772