OSDN Git Service

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