OSDN Git Service

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