OSDN Git Service

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