OSDN Git Service

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