OSDN Git Service

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