OSDN Git Service

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