OSDN Git Service

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