OSDN Git Service

gcc/ada/
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2008-04-09  Samuel Tardieu  <sam@rfc1149.net>
2
3         PR ada/28305
4         * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
5         environment if generic instance is a top-level one.
6
7 2008-04-09  Doug Rupp  <rupp@adacore.com>
8
9         * decl.c (validate_size): Set minimum size for fat pointers same as
10         access types. Code clean ups.
11
12         * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
13         (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
14
15         * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
16
17         * s-crtl.ads (malloc32) New function, alias for malloc
18         (realloc32) New function, alias for realloc
19
20         * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
21
22         * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
23         allocator size is 32 and default pointer size is 64.
24         (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
25         lhs type if smaller, whatever the modes.
26
27         * gigi.h (malloc32_decl): New macro definition
28
29         * utils.c (init_gigi_decls): New malloc32_decl
30         Various code clean ups.
31
32         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
33         Task_Address vice System.Address.
34
35         * s-taspri-vms.ads: Import System.Aux_DEC
36         (Task_Address): New subtype of System.Aux_DEC.Short_Address
37         (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
38
39         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
40         Task_Address vice System.Address.
41
42         * s-inmaop-vms.adb: Import System.Task_Primitives
43         (To_Address): Unchecked convert to Task_Address vice System.Address
44
45         * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
46         expires now.
47         (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
48         (To_Address) Unchecked convert to Task_Address vice System.Address
49
50         * s-tpopde-vms.adb: Remove unnecessary warning pragmas
51
52         * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
53
54 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
55
56         * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
57         (fdesc_type_node): Define.
58         (null_fdesc_node): Likewise.
59         * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
60         uses descriptors for vtables and the type comes from a dispatch table,
61         return the descriptor type.
62         * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
63         uses descriptors for vtables and the type comes from a dispatch table,
64         build a descriptor in the static case and copy the existing one in the
65         non-static case.
66         (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
67         the type is a pointer-to-subprogram coming from a dispatch table,
68         return the null descriptor.
69         <N_Unchecked_Type_Conversion>: If the target uses descriptors for
70         vtables, the source type is the descriptor type and the target type
71         is a pointer type, first build the pointer.
72         * utils.c (init_gigi_decls): If the target uses descriptors for vtables
73         build the descriptor type and the null descriptor.
74
75 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
76
77         * decl.c (prepend_attributes): Fix typo.
78         * trans.c (Pragma_to_gnu): Likewise.
79         * utils.c (gnat_genericize): Likewise.
80
81 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
82             Richard Kenner  <kenner@adacore.com>
83
84         * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
85         * decl.c (gnat_to_gnu_entity): Adjust for above change.
86         <E_Record_Type>: Try to get a better form of the component for
87         packing, even if it has an integral mode.
88         <E_Record_Subtype>: Likewise.
89         * trans.c (gnat_to_gnu): Do not require BLKmode for the special
90         exception suppressing the final conversion between record types.
91
92 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
93
94         * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
95         alignment for space, promote the alignment of non-scalar variables with
96         no size and alignment.
97         * gigi.h (gnat_types_compatible_p): Declare.
98         * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
99         * trans.c (gnat_to_gnu): Revert revision 129339 change.  Minor cleanup.
100         * utils.c (gnat_types_compatible_p) : New predicate.
101         (convert): Use it throughout to test for cases where a mere view
102         conversion is sufficient.
103         * utils2.c (build_binary_op): Minor tweaks.
104         (build_unary_op): Likewise.
105
106 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
107
108         * decl.c (adjust_packed): Expand comment.
109
110 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
111
112         * s-tasuti.ads: Use Task_Address instead of System.Address.
113
114         * makeutl.adb (Path_Or_File_Name): New function
115
116         * nlists.ads, itypes.ads: Update comments.
117
118         * s-crtl.ads (malloc32, realloc32): New functions.
119
120         * s-auxdec.ads (Short_Address_Size): New constant.
121
122         * a-taside.adb, s-tasdeb.adb: Use Task_Address.
123
124         * s-ststop.ads, s-ststop.adb: New file.
125
126         * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
127         Minor reformatting.
128
129 2008-04-08  Pascal Obry  <obry@adacore.com>
130
131         * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
132         (Stop_Bits_Number): New type.
133         (Parity_Check): Likewise.
134         (Set): Add parameter to set the number of stop bits and
135         the parity. Parameter timeout is now a duration instead
136         of a plain integer.
137
138         * g-sercom-linux.adb:
139         Implement the stop bits and parity support for GNU/Linux.
140         Fix handling of timeout, it must be given in tenth of seconds.
141         
142         * g-sercom-mingw.adb:
143         Implement the stop bits and parity support for Windows.
144         Use new s-win32.ads unit instead of declaring Win32 services
145         directly into this body.
146         Update handling of timeout as now a duration.
147
148         * s-win32.ads, s-winext.ads: New files.
149
150 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
151             Arnaud Charlet  <charlet@adacore.com>
152
153         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
154
155         s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
156         s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
157
158         * s-osinte-lynxos-3.ads,
159         (Alternate_Stack): Remove when not needed. Simplify declaration
160         otherwise.
161         (Alternate_Stack_Size): New constant.
162
163         s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
164         'Unrestricted_Access.
165
166         * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
167         s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
168         s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
169         s-osinte-solaris.ads, s-osinte-vms.ads
170         (SA_ONSTACK): New constant.
171         (stack_t): New record type.
172         (sigaltstack): New imported function.
173         (Alternate_Stack): New imported variable.
174         (Alternate_Stack_Size): New constant.
175
176         * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
177
178         * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
179         s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
180         s-taspri-vms.ads (Task_Address): New subtype of System.Address
181         (Task_Address_Size): New constant size of System.Address
182         (Alternate_Stack_Size): New constant.
183
184         * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
185         (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
186         Establish the alternate stack if the platform makes use of n alternate
187         signal stack for stack overflows.
188         (Create_Task): Take into account the alternate stack in the stack size.
189         (Initialize): Save the address of the alternate stack into the ATCB for
190         the environment task.
191         (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
192
193         * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
194
195         * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
196
197         * s-intman-posix.adb: 
198         (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
199         alternate signal stack for stack overflows.
200
201         * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
202         x86-64, adjust the saved value of the stack pointer if the signal was
203         raised by a stack checking probe.
204         (HP-UX section): Use global __gnat_alternate_stack as signal handler
205         stack and only for SIGSEGV.
206         (Linux section): Likewise on x86 and x86-64.
207         [VxWorks section]
208         (__gnat_map_signal): Now static.
209         (__gnat_error_handler): Not static any more.
210         (__gnat_adjust_context_for_raise): New function. Signal context
211         adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
212         propagation circuitry.
213         (__gnat_error_handler): Second argument of a sigaction handler is a
214         pointer, not an int, and is unused.
215         Adjust signal context before mapping to exception.
216         Install signal handlers for LynxOS case.
217
218         * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
219         (Task_Id): Set size to Task_Address_Size
220         (To_Task_id): Unchecked convert from Task_Address vice System.Address
221         (To_Address): Unchecked convert to Task_Address vice System.Address
222
223         * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
224         address into the ATCB if the platform makes use of an alternate signal
225         stack for stack overflows.
226         (Free_Task): Add call to Finalize_Attributes_Link.
227         Add argument Relative_Deadline to pass the value specified for
228         the task. This is not yet used for any target.
229
230         * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
231         the value specified for the task.
232
233 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
234
235         (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
236         (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
237         s-vxwext-rtp.adb): New files.
238
239         * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
240         Minor updates to accomodate changes above.
241
242 2008-04-08  Pascal Obry  <obry@adacore.com>
243
244         * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
245         s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
246         Use new s-win32.ads unit instead of declaration
247         from s-osinte-mingw.ads.
248         
249         * s-osinte-mingw.ads:
250         Move all non tasking based interface to s-win32.ads.
251         
252         * s-osprim-mingw.adb:
253         Remove duplicated declarations and use s-win32.ads
254         unit instead.
255
256 2008-04-08  Vincent Celier  <celier@adacore.com>
257             Arnaud Charlet  <charlet@adacore.com>
258
259         * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
260         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
261         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
262         mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
263         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
264
265         * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
266         mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
267         mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
268         mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
269         mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
270         mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
271         mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
272         mlib-tgt-specific-mingw.adb: New names.
273
274         * Makefile.in: 
275         On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
276         Get rid of gnatbl.
277         (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
278         Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
279         Minor updates for VMS
280
281         * gnatbl.c: Removed.
282
283 2008-04-08  Thomas Quinot  <quinot@adacore.com>
284
285         * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
286         g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
287         gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
288         a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
289         s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
290         ASCII.NUL throughout.
291
292 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
293             Matthew Heaney  <heaney@adacore.com>
294
295         * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
296         renaming.
297
298         * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,  
299         a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
300         to convention for non-RM specs.
301         Add descriptive header, and documented each operation
302         document each operation
303
304 2008-04-08  Robert Dewar  <dewar@adacore.com>
305             Bob Duff  <duff@adacore.com>
306             Gary Dismukes  <dismukes@adacore.com>
307             Ed Schonberg  <schonberg@adacore.com>
308
309         * alloc.ads: Add entries for Obsolescent_Warnings table
310
311         * einfo.ads, einfo.adb: Minor reformatting.
312         (Is_Discriminal): New subprogram.
313         (Is_Prival): New subprogram.
314         (Is_Protected_Component): New subprogram.
315         (Is_Protected_Private): Removed.
316         (Object_Ref, Set_Object_Ref): Removed.
317         (Prival, Set_Prival): Change assertion.
318         (Privals_Chain, Set_Privals_Chain): Removed.
319         (Prival_Link, Set_Prival_Link): New subprogram.
320         (Protected_Operation, Set_Protected_Operation): Removed.
321         (Protection_Object, Set_Protection_Object): New subprogram.
322         (Write_Field17_Name): Remove case for Object_Ref.
323         (Write_Field20_Name): Add case for Prival_Link.
324         (Write_Field22_Name): Remove case for Protected_Operation,
325         Privals_Chain.
326         Add case for Protection_Object.
327         (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
328         so clients
329         (Overlays_Constant): New flag
330         (Is_Constant_Object): New predicate
331         (Is_Standard_Character_Type): New predicate
332         (Optimize_Alignment_Space): New flag
333         (Optimize_Alignment_Time): New flag
334         (Has_Postconditions): New flag
335         (Obsolescent_Warrning): Field removed
336         (Spec_PPC_List): New field
337         (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
338         subprograms to get and set the relative deadline associated to a task.
339
340         * exp_attr.adb (May_Be_External_Call): Account for the case where the
341         Access attribute is part of a named parameter association.
342         (Expand_Access_To_Protected_Op): Test for the attribute occurring
343         within an init proc and use that directly as the scope rather than
344         traversing up to the protected operation's enclosing scope. Only apply
345         assertion on Is_Open_Scopes in the case the scope traversal is done.
346         For the init proc case use the address of the first formal (_init) as
347         the protected object reference.
348         Implement Invalid_Value attribute
349         (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
350         contents of the dispatch table there is no need to duplicate the
351         itypes associated with record types (i.e. the implicit full view
352         of private types).
353         Implement Enum_Val attribute
354         (Expand_N_Attribute_Reference, case Old): Properly handle appearence
355         within _Postconditions procedure
356         (Expand_N_Attribute_Reference, case Result): Implement new attribute
357
358         * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
359         a return statement calls a function that is not available in
360         configurable runtime.
361         (Analyze_If_Statement): don't optimize simple True/False cases in -O0
362         (Expand_Non_Function_Return): Generate call to _Postconditions proc
363         (Expand_Simple_Function_Return): Ditto
364
365         * frontend.adb: Add call to Sem_Aux.Initialize
366
367         * sem_aux.ads, sem_aux.adb: New file.
368
369         * par-prag.adb: Add entries for pragmas Precondition/Postcondition
370         Add new Pragma_Relative_Deadline.
371         Add support for pragmas Check and Check_Policy
372
373         * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
374         (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
375         (Analyze_Attribute): In case of attributes 'Alignment and 'size add
376         missing check because they are not allowed in CPP tagged types.
377         Add Sure parameter to Note_Possible_Modification calls
378         Add implementation of Invalid_Value attribute
379         Implement new attribute Has_Tagged_Values
380         Implement Enum_Val attribute
381         (Analyze_Attribute, case Range): Set Name_Req True for prefix of
382         generated attributes.
383         (Analyze_Attribute, case Result): If prefix of the attribute is
384         overloaded, it always resolves to the enclosing function.
385         (Analyze_Attribute, case Result): Properly deal with analysis when
386         Postconditions are not active.
387         (Resolve_Attribute, case Result): Properly deal with appearence during
388         preanalysis in spec.
389         Add processing for attribute Result
390
391         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
392         for operators.
393         (Analyze_Subprogram_Body): Install private_with_clauses when the body
394         acts as a spec.
395         (Check_Inline_Pragma): recognize an inline pragma that appears within
396         the subprogram body to which it applies.
397         (Analyze_Function_Return): Check that type of the expression of a return
398         statement in a function with a class-wide result is not declared at a
399         deeper level than the function.
400         (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
401         (Verify_Overriding_Indicator): Handle properly subprogram bodies for
402         user- defined operators.
403         (Install_Formals): Moved to spec to allow use from Sem_Prag for
404         analysis of precondition/postcondition pragmas.
405         (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
406         Last_Formal, along with lots of comments on what this is about
407         (Analyze_Subprogram_Body): Fix case where we move entities from the
408         spec to the body when there are no body entities (now possible with
409         precondition and postcondition pragmas).
410         (Process_PPCs): New procedure
411         (Analyze_Subprogram_Body): Add call to Process_PPCs
412
413         * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
414         clause.
415         (Pop_Scope): Restore Check_Policy_List on scope exit
416         (Push_Scope): Save Check_Policy_List on scope entry
417         Change name In_Default_Expression      => In_Spec_Expression
418         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
419         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
420         (Analyze_Object_Renaming): Allow 'Reference as object
421         (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
422         (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
423         of restriction identifier.
424         Add Sure parameter to Note_Possible_Modication calls
425
426         * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
427         Don't check for primitive operations when calling Rep_Item_Too_Late.
428         (Process_Import_Or_Interface): Do not place flag on formal
429         subprograms.
430         (Analyze_Pragma, case Export): If the entity is a deferred constant,
431         propagate information to full view, which is the one elaborated by the
432         back-end.
433         (Make_Inline): the pragma is effective if it applies to an internally
434         generated subprogram declaration for a body that carries the pragma.
435         (Analyze_Pragma, case Optimize_Alignment): Set new flag
436         Optimize_Alignment_Local.
437         (Analyze_PPC_In_Decl_Part): New procedure
438         (Get_Pragma_Arg): Moved to outer level
439         (Check_Precondition_Postcondition): Change to allow new visibility
440         rules for package spec
441         (Analyze_Pragma, case Check_Policy): Change placement rules to be
442         same as pragma Suppress/Unsuppress.
443         Change name In_Default_Expression      => In_Spec_Expression
444         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
445         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
446         (Check_Precondition_Postcondition): Do proper visibility preanalysis
447         for the case of these pragmas appearing in the spec.
448         (Check_Enabled): New function
449         (Initialize): New procedure
450         (Tree_Read): New procedure
451         (Tree_Write): New procedure
452         (Check_Precondition_Postcondition): New procedure
453         Implement pragmas Check and Check_Policy
454         Merge Assert processing with Check
455
456         * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
457         New warning flag -gnatw.e
458
459         * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
460         returning whether a task (or main procedure) has a pragma
461         Relative_Deadline.
462         (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
463         (or main procedure) has a pragma Relative_Deadline.
464         Add Next_Pragma field to N_Pragma node
465         (PPC_Enabled): New flag
466         (Next_Pragma): Now used for Pre/Postcondition processing
467
468         * snames.h, snames.ads, snames.adb: New standard name
469         Inherit_Source_Path
470         Add entry for 'Invalid_Value attribute
471         Add entry for new attribute Has_Tagged_Values
472         Add entry for Enum_Val attribute
473         Add new standard names Aggregate, Configuration and Library.
474         Add _Postconditions
475         Add _Result
476         Add Pragma_Precondition
477         Add Pragma_Postcondition
478         Add Attribute_Result
479         New standard name Archive_Builder_Append_Option
480         (Preset_Names): Add _relative_deadline and relative_deadline definitions
481         There was also a missing non_preemptive_within_priorities.
482         (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
483         Relative_Deadline.
484         Add support for pragmas Check and Check_Policy
485
486         * tree_gen.adb: Call Sem_Aux.Tree_Write
487
488         * tree_in.adb: Call Sem_Aux.Tree_Read
489
490         * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
491         sequence
492
493         * exp_intr.adb (Expand_Source_Info): New Build_Location calling
494         sequence
495
496         * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
497         (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
498         Relative_Deadline.
499         (Expand_Pragma_Check): New procedure
500
501         * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
502         buffer.
503
504         * sinfo.adb (PPC_Enabled): New flag
505
506 2008-04-08  Robert Dewar  <dewar@adacore.com>
507             Gary Dismukes  <dismukes@adacore.com>
508             Javier Miranda  <miranda@adacore.com>
509             Ed Schonberg  <schonberg@adacore.com>
510
511         * fe.h: Remove global Optimize_Alignment flag, no longer used
512
513         * layout.adb: Test Optimize_Alignment flags rather than global switch
514
515         * lib.ads, lib.adb: New OA_Setting field in library record
516
517         * lib-load.adb: New OA_Setting field in library record
518
519         * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
520         units mentioned in limited_with_ clauses in the ali file, with an
521         'Y' marker.
522         New Ox fields in U line
523
524         * opt.adb: New flag Optimize_Alignment_Local
525         (Check_Policy_List[_Config]): New flags
526
527         * opt.ads (Invalid_Value_Used): New flag
528         New switch Optimize_Alignment_Local
529         (Warn_On_Parameter_Order): New flag
530         (Check_Policy_List[_Config]): New flags
531
532         * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
533         limited_with clauses.
534         New data structures for Optimize_Alignment
535
536         * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
537         New procedure
538         (Check_Consistent_Optimize_Alignment): Rework for new structure
539         (Check_Consistent_Restrictions): Fix incorrect error message
540
541         sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
542         created class-wide type (to the Parent field of the specific type).
543         (Install_Siblings): Handle properly private_with_clauses on subprogram
544         bodies and on generic units.
545         (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
546         illegal limited_with_clause that names a non-existent package.
547         (Check_Body_Required): Determine whether a unit named a limited_with
548         clause needs a body.
549         (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
550         Capture Optimize_Alignment settings to set new OA_Setting field in
551         library record.
552         (Build_Limited_Views): Include task and protected type declarations.
553
554         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
555         case of a possible constant redeclaration where the current object is
556         an entry index constant.
557         (Analyze_Object_Declaration): Generate an error in case of CPP
558         class-wide object initialization.
559         (Analyze_Object_Declaration): Add extra information on warnings for
560         declaration of unconstrained objects.
561         (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
562         conflicts with the setting of Stored_Constraint in the case where the
563         access type entity has already been created as an E_Incomplete_Type due
564         to a limited with clause.
565         Use new Is_Standard_Character_Type predicate
566         (Analyze_Object_Declaration): Apply access_constant check only after
567         expression has been resolved, given that it may be overloaded with
568         several access types.
569         (Constant_Redeclaration): Additional legality checks for deferred
570         constant declarations tha involve anonymous access types and/or null
571         exclusion indicators.
572         (Analyze_Type_Declaration): Set Optimize_Alignment flags
573         (Analyze_Subtype_Declaration): Ditto
574         (Analyze_Object_Declaration): Ditto
575         (Analyze_Object_Declaration): Don't count tasks in generics
576         Change name In_Default_Expression      => In_Spec_Expression
577         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
578         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
579         (Process_Discriminants): Additional check for illegal use of default
580         expressions in access discriminant specifications in a type that is not
581         explicitly limited.
582         (Check_Abstract_Overriding): If an inherited function dispaches on an
583         access result, it must be overridden, even if the type is a null
584         extension.
585         (Derive_Subprogram): The formals of the derived subprogram have the
586         names and defaults of the parent subprogram, even if the type is
587         obtained from the actual subprogram.
588         (Derive_Subprogram): In the presence of interfaces, a formal of an
589         inherited operation has the derived type not only if it descends from
590         the type of the formal of the parent operation, but also if it
591         implements it. This is relevant for the renamings created for the
592         primitive operations of the actual for a formal derived type.
593         (Is_Progenitor): New predicate, to determine whether the type of a
594         formal in the parent operation must be replaced by the derived type.
595
596         * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
597         predicate recursive to handle components that have a user-defined
598         Initialize procedure. Handle controlled derived types whose ancestor
599         has a user-defined Initialize procedured.
600         (Note_Possible_Modification): Add Sure parameter, generate warning if
601         sure modification of constant
602         Use new Is_Standard_Character_Type predicate
603         (Find_Parameter_Type): when determining whether a protected operation
604         implements an interface operation, retrieve the type of the formal from
605         the entity when the formal is an access parameter or an
606         anonymous-access-to-subprogram.
607         Move Copy_Parameter_List to sem_util, for use when building stubbed
608         subprogram bodies.
609         (Has_Access_Values): Tagged types now return False
610         (Within_HSS_Or_If): New procedure
611         (Set_Optimize_Alignment_Flags): New procedure
612         Change name In_Default_Expression      => In_Spec_Expression
613         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
614         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
615
616 2008-04-08  Tristan Gingold  <gingold@adacore.com>
617
618         * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
619
620 2008-04-08  Tristan Gingold  <gingold@adacore.com>
621
622 PR ada/10768
623
624         * cuintp.c: Fix 16 bits issue for AVR.
625         On AVR, integer is 16 bits, so it can't be used to do math with
626         Base (=32768).
627         So use long_integer instead.
628
629 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
630
631         * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
632         System.OS_Primitives.
633         Change type of various constants, parameters and local variables from
634         Time to representation type OS_Time.
635         (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
636         Remove the declaration of constant Mili_F from several routines. New
637         body for internal package Conversions_Operations.
638         (Time_Of): Add default parameters for several formals.
639
640         * a-caldel.adb: Minor reformatting
641
642         * a-calend.ads, a-calend.adb: New body for internal package
643         Conversions_Operations.
644         (Time_Of): Add default parameters for several formals.
645
646         * Makefile.rtl: Add a-ststop
647         Add Ada.Calendar.Conversions to the list of runtime files.
648         Add g-timsta
649
650         * a-calcon.adb, a-calcon.ads: New files.
651
652 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
653             Tristan Gingold  <gingold@adacore.com>
654
655         * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
656         (Install_Restricted_Handlers): New procedure
657         which is a simplified version of Install_Handlers that does not store
658         previously installed.
659
660         * s-interr-vxworks.adb: Fix ACATS cxc3001
661         On VxWorks interrupts can't be detached.
662         (Install_Restricted_Handlers): New procedure.
663
664         * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
665         procedure.
666
667 2008-04-08  Olivier Hainque  <hainque@adacore.com>
668
669         * s-intman-vxworks.ads, s-intman-vxworks.adb
670         (Map_And_Raise_Exception): Remove. Was an import of only part of the
671         required services already implemented elsewhere.
672         (Notify_Exception): Delete body, import __gnat_error_handler instead.
673         (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
674         argument passed to the handler, which we need for ZCX propagation
675         purposes.
676
677 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
678
679         * adaint.h, adaint.c (__gnat_current_time_string): New routine.
680
681         * g-timsta.adb, g-timsta.ads: New files.
682
683 2008-04-08  Robert Dewar  <dewar@adacore.com>
684
685         * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
686         (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
687         (Raise_Exception_Always): Fix documentation accordingly
688
689 2008-04-08  Robert Dewar  <dewar@adacore.com>
690
691         * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
692         Stream_Convert)
693
694         * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
695         FOnly
696
697 2008-04-08  Javier Miranda  <miranda@adacore.com>
698             Robert Dewar  <dewar@adacore.com>
699             Ed Schonberg  <schonberg@adacore.com>
700
701         * a-tags.adb (Register_Interface_Offset): New subprogram.
702         (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
703         (To_Predef_Prims_Table_Ptr): Removed.
704         (Acc_Size): Removed.
705         (To_Acc_Size): Removed.
706         (Parent_Size): Modified to the call the subprogram returning the size of
707         the parent by means of the new TSD component Size_Func.
708
709         * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
710         (DT_Offset_To_Top_Offset): New constant value that is used to generate
711         code referencing the Offset_To_Top component of the dispatch table's
712         prologue.
713         (Prim_Ptr): New declaration of access to procedure. Used to avoid the
714         use of 'address to initialize dispatch table slots.
715         (Size_Func): New component of the TSD. Used by the run-time to call the
716         size primitive of the tagged type.
717
718         * checks.adb (Apply_Access_Check): Avoid check when accessing the
719         Offset_To_Top component of a dispatch table.
720         (Null_Exclusion_Static_Checks): If the non-null access type appears in a
721         deferred constant declaration. do not add a null expression, to prevent
722         spurious errors when full declaration is analyzed.
723         (Apply_Discriminant_Check): If both discriminant constraints share a
724         node which is not static but has no side effects, do not generate a
725         check for that discriminant.
726         (Generate_Index_Checks): Set Name_Req to true in call to duplicate
727         subexpr, since the prefix of an attribute is a name.
728
729         * checks.ads: Fix nit in comment.
730
731         * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
732         and body of predefined primitives in case of CPP tagged type
733         derivations.
734         (Freeze_Type): Deal properly with no storage pool case
735         (Make_Predefined_Primitive_Specs): Generate specification of abstract
736         primitive Deep_Adjust if a nonlimited interface is derived from a
737         limited interface.
738         (Build_Dcheck_Functions): Create discriminant-checking functions only
739         for variants that have some component(s).
740         (Build_Slice_Assignment): In expanded code for slice assignment, handle
741         properly the case where the slice bounds extend to the last value of the
742         underlying representation.
743         (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
744         (Is_Variable_Size_Record): An array component has a static size if
745         index bounds are enumeration literals.
746
747         * exp_disp.adb (Make_DT): Use the first subtype to determine whether
748         an external tag has been specified for the type.
749         (Building_Static_DT): Add missing support for private types.
750         (Make_DT): Add declaration of Parent_Typ to ensure consistent access
751         to the entity associated with the parent of Typ. This is done to
752         avoid wrong access when the parent is a private type.
753         (Expand_Interface_Conversion): Improve error message when the
754         configurable runtime has no support for dynamic interface conversion.
755         (Expand_Interface_Thunk): Add missing support to interface types in
756         configurable runtime.
757         (Expand_Dispatching_Call): remove obsolete code.
758         (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
759         ensure that all subtypes and aggregates associated with dispatch
760         tables have the attribute Is_Dispatch_Table_Entity set to true.
761         (Register_Primitive): Rename one variable to improve code reading.
762         Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
763         of the pointer to the 'size primitive in the TSD.
764
765         * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
766         (RE_Offset_To_Top_Ptr): New entity.
767         (RE_Register_Interface_Offset): New entity.
768         (RE_Set_Dynamic_Offset_To_Top): New entity.
769         (RE_Set_Offset_To_Top): Removed entity.
770         (RE_Prim_Ptr): New entity
771         (RE_Size_Func): New entity
772         (RE_Size_Ptr): New entity
773         (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
774         (Ada_Dispatching_Child): Define this new subrange.
775         (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
776          RE_Time_Span, and RE_Time_Span_Zero).
777         (RE_Unit_Table): Add new required run-time calls
778
779         * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
780         children.
781
782         * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
783         (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
784          initializes the Offset_To_Top component of a dispatch table.
785         (Build_Predef_Prims): Removed.
786         (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
787          its actual code.
788         (Build_Set_Size_Function): New subprogram.
789
790         * exp_ch13.adb: Do not generate storage variable for storage_size zero
791         (Expand): Handle setting/restoring flag Inside_Freezing_Actions
792
793 2008-04-08  Robert Dewar  <dewar@adacore.com>
794
795         * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
796         computing Fore when Exp > 0
797
798 2008-04-08  Robert Dewar  <dewar@adacore.com>
799
800         * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
801
802         * errout.adb: Remove Big_String_Ptr declarations (now in Types)
803         Change name Is_Style_Msg to Is_Style_Or_Info_Msg
804
805         * fmap.adb: Remove Big_String declarations (now in Types)
806         (No_Mapping_File): New Boolean global variable
807         (Initialize): When mapping file cannot be read, set No_Mapping_File to
808         False.
809         (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
810         tables were empty before adding entries, open the mapping file
811         with Truncate = True, instead of delete/re-create.
812
813         * fname-sf.adb: Remove Big_String declarations (now in Types)
814
815         * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
816         s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
817         big pointer types
818
819         * table.ads: Add for Table_Ptr'Storage_Size use 0
820
821         * types.ads: Add Big_String declarations
822         Add Size_Clause of zero for big pointer types
823
824 2008-04-08  Vincent Celier  <celier@adacore.com>
825
826         * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
827         (Usage): Add line for switch --subdirs=
828         Add new switch -eL, to follow symbolic links when processing project
829         files.
830
831         * gnatcmd.adb: Process switches -eL and --subdirs=
832         (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
833         Program_Name to get proper tool names when AAMP_On_Target is set.
834         (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
835         AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
836         Osint.Program_Name).
837
838         * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
839         (Usage): Add lines for switches -eL and --subdirs=
840
841         * makeusg.adb: Add line for switch --subdirs=
842
843         * prj.ads: 
844         (Source_Data): New Boolean component Compiled, defaulted to True
845         (Empty_File_Name: New global variable in private part, initialized in
846         procedure Initialize.
847         (Subdirs_Option): New constant string
848         (Subdirs): New String_Ptr global variable
849         (Language_Config): New component Include_Compatible_Languages
850         (Project_Qualifier): New type for project qualifiers
851         (Project_Data): New component Qualifier
852         (Project_Configuration): New component Archive_Builder_Append_Option
853
854         * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
855         another imported project indicate the name of this imported project.
856         (Check_File): When a unit is in two project files, indicate the project
857         names and the paths of the source files for each project.
858         (Add_Source): Set Compiled to False if compiler driver is empty. Only
859         set object, dependency and switches file names if Compiled is True.
860         (Process_Compiler): Allow the empty string for value of attribute Driver
861         (Get_Directories): When Subdirs is not null and Object_Dir is not
862          specified, locate and create if necessary the actual object dir.
863         (Locate_Directory): When Subdirs is not empty and Create is not the
864         empty string, locate and create if necessary the actual directory
865         as a subdirectory of directory Name.
866         (Check_Library_Attributes.Check_Library): Allow a project where the only
867         "sources" are header files of file based languages to be imported by
868         library projects, in multi-language mode (gprbuild).
869         (Check_Library_Attributes.Check_Library): In multi-language mode
870         (gprbuild), allow a library project to import a project with no
871         sources, even when this is not declared explicitly.
872         (Check_If_Externally_Built): A virtual project extending an externally
873         built project is also externally built.
874         (Check_Library_Attributes): For a virtual project extending a library
875         project, inherit the library directory.
876         (Process_Project_Level_Array_Attributes): Process new attribute
877         Inherit_Source_Path.
878         For projects with specified qualifiers "standard", "library" or
879         "abstract", check that the project conforms to the qualifier.
880         (Process_Project_Level_Simple_Attributes): Process new attribute
881          Archive_Builder_Append_Option.
882
883         * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
884         (Normalize_Compiler_Switches): Only keep compiler switches that are
885         passed to gnat1 by the gcc driver and that are stored in the ALI file
886         by gnat1.
887         Do not take into account switc -save-temps
888
889         * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
890         gprmake is called with -eL.
891         (Scan_Arg): Recognize switch -eL
892         (Usage): Add line for switch -eL
893
894         * prj.adb (Initialize): Initialize Empty_File_Name
895         (Project_Empty): New component Qualifier
896
897         * prj-attr.ads, prj-attr.adb: New project level attribute
898         Inherit_Source_Path.
899         New project level attribute Archive_Builder_Append_Option
900
901         * prj-dect.adb: Replace System.Strings by GNAT.Strings.
902
903         * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
904         <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
905         upward compatibility.
906
907         * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
908         each Trying ..." on different lines.
909         (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
910         is "configuration" when not in configuration. Fail when in configuration
911         when a specified qualifier is other than "configuration".
912
913         * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
914         full associative array together.
915         (Recursive_Process): Put the project qualifier in the project data
916         
917         * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
918         (Set_Project_Qualifier_Of): New procedure
919
920 2008-04-08  Robert Dewar  <dewar@adacore.com>
921
922         * errout.ads: Update comments for new handling of info: messages
923
924         * erroutc.adb (Matches): New procedure
925         (Warning_Specifically_Suppressed): Modified to handle multiple * chars
926         (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
927          info messages as well as style messages.
928
929         * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
930
931         * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
932         subprograms.
933         (Check_A_Call): Special "info: " warnings now have ? in the text
934         (Elab_Warning): Use info message in static case
935
936 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
937
938         * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
939         whether an array aggregate with static bounds and scalar components
940         should be expanded into a static constant.
941
942 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
943             Ed Schonberg  <schonberg@adacore.com>
944             Robert Dewar  <dewar@adacore.com>
945
946         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
947         Has_Stream_Attribute_ Definition when checking for available stream
948         attributes on parameters of a limited type in Ada 2005. Necessary for
949         proper recognition of visible stream attribute clauses.
950         (Has_Stream_Attribute_Definition): If the type is derived from a
951         private type, then use the derived type's underlying type for checking
952         whether it has stream attributes.
953         (Validate_Object_Declaration): The check for a user-defined Initialize
954         procedure applies also to types with controlled components or a
955         controlled ancestor.
956         Reject an object declaration in a preelaborated unit if the type is a
957         controlled type with an overriding Initialize procedure.
958         (Validate_Remote_Access_To_Class_Wide_Type): Return without further
959         checking when the parent of a dereference is a selected component and
960         the name has not been analyzed.
961
962         * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
963         prefixes that are invalid explicit dereferences of remote
964         access-to-class-wide values, first checking whether the selected
965         component is a prefixed form of call to a tagged operation.
966         (Analyze_Call): Remove code that issues an error for limited function
967         calls in illegal contexts, as we now support all of the contexts that
968         were forbidden here.
969         Allow a function call that returns a task.and appears as the
970         prefix of a selected component.
971         (Analyze_Reference): Give error message if we try to make a 'Reference
972         for an object that is atomic/aliased without its type having the
973         corresponding attribute.
974         (Analyze_Call): Remove condition checking for attributes to allow
975         calls to functions with inherently limited results as prefixes of
976         attributes. Remove related comment about Class attributes.
977         (Analyze_Selected_Component): If the prefix is a remote type, check
978         whether this is a prefixed call before reporting an error.
979         (Complete_Object_Operation): If the controlling formal is an access to
980         variable reject an actual that is a constant or an access to one.
981         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
982         primitive operations from base type.
983
984         * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
985         build-in-place
986         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
987         (Expand_N_Selected_Component): Test for prefix that is a build-in-place
988         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
989         (Expand_N_Slice): Test for prefix that is a build-in-place function call
990         and call Make_Build_In_Place_Call_In_Anonymous_Context.
991         (Analyze_Call): Remove code that issues an error for limited function
992         calls in illegal contexts, as we now support all of the contexts that
993         were forbidden here.
994         New calling sequence for Get_Simple_Init_Val
995         (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
996         (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
997
998 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
999             Ed Schonberg  <schonberg@adacore.com>
1000             Robert Dewar  <dewar@adacore.com>
1001
1002         * exp_ch2.adb: Minor reformatting.
1003         (Expand_Entry_Index_Parameter): Set the type of the identifier.
1004         (Expand_Entry_Reference): Add call to Expand_Protected_Component.
1005         (Expand_Protected_Component): New routine.
1006         (Expand_Protected_Private): Removed.
1007         Add Sure parameter to Note_Possible_Modification calls
1008
1009         * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
1010         generated subprogram declaration must inherit the overriding indicator
1011         from the instantiation node.
1012         (Validate_Access_Type_Instance): If the designated type of the actual is
1013         a limited view, use the available view in all cases, not only if the
1014         type is an incomplete type.
1015         (Instantiate_Object):  Actual is illegal if the formal is null-excluding
1016         and the actual subtype does not exclude null.
1017         (Process_Default): Handle properly abstract formal subprograms.
1018         (Check_Formal_Package_Instance): Handle properly defaulted formal
1019         subprograms in a partially parameterized formal package.
1020         Add Sure parameter to Note_Possible_Modification calls
1021         (Validate_Derived_Type_Instance): if the formal is non-limited, the
1022         actual cannot be limited.
1023         (Collect_Previous_Instances): Generate instance bodies for subprograms
1024         as well.
1025
1026         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
1027         try to set RM_Size.
1028         Add Sure parameter to Note_Possible_Modification calls
1029         (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
1030         (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
1031         constant overlaid by variable and issue warning.
1032         Use new Is_Standard_Character_Type predicate
1033         (Analyze_Record_Representation_Clause): Check that the specified
1034         Last_Bit is not less than First_Bit - 1.
1035         (Analyze_Attribute_Definition_Clause, case Address): Check for
1036         self-referential address clause
1037
1038         * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
1039         detection mechanism when the lhs is a prival.
1040         (Analyze_Assignment): Call Check_Unprotected_Access to detect
1041         assignment of a pointer to protected data, to an object declared
1042         outside of the protected object.
1043         (Analyze_Loop_Statement): Check for unreachable code after loop
1044         Add Sure parameter to Note_Possible_Modication calls
1045         Protect analysis from previous syntax error such as a scope mismatch
1046         or a missing begin.
1047         (Analyze_Assignment_Statement): The assignment is illegal if the
1048         left-hand is an interface.
1049
1050         * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
1051         violation of restriction No_Implicit_Conditionals
1052         Add Sure parameter to Note_Possible_Modication calls
1053         Use new Is_Standard_Character_Type predicate
1054         (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
1055         call as operator. Fixes problems (e.g. validity checking) which
1056         come from the result looking as though it does not come from source).
1057         (Resolve_Call): Check case of name in named parameter if style checks
1058         are enabled.
1059         (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
1060         from the checking that such calls should not occur from an entry body.
1061         (Resolve_Call): If the return type of an Inline_Always function
1062         requires the secondary stack, create a transient scope for the call
1063         if the body of the function is not available for inlining.
1064         (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
1065         that are actuals for in-out formals.
1066         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
1067         primitive operations from base type.
1068         (Analyze_Selected_Component): If the context is a call to a protected
1069         operation the parent may be an indexed component prior to expansion.
1070         (Resolve_Actuals): If an actual is of a protected subtype, use its
1071         base type to determine whether a conversion to the corresponding record
1072         is needed.
1073         (Resolve_Short_Circuit): Handle pragma Check
1074
1075         * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
1076         Use new Is_Standard_Character_Type predicate
1077         (Eval_Relational_Op): Catch more cases of string comparison
1078
1079 2008-04-08  Robert Dewar  <dewar@adacore.com>
1080             Gary Dismukes  <dismukes@adacore.com>
1081
1082         * s-rident.ads: Add No_Default_Initialization restriction
1083
1084         * exp_tss.adb: 
1085         (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
1086         (Set_TSS): Handle No_Default_Initialization case
1087
1088         * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
1089         No_Default_Initialization
1090         (Expand_N_Subprogram_Body): Remove redundant initialization of out
1091         parameters when Normalize_Scalars is active.
1092         (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
1093         Fix casing error in formal parameter name in call
1094         (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
1095         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
1096         dispatching call on VM targets.
1097
1098 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
1099             Thomas Quinot  <quinot@adacore.com>
1100
1101         * exp_ch7.adb (Find_Final_List): Change the test for generating a
1102         selected component from an access type's Associated_Final_Chain to
1103         check for the presence of that field, rather than assuming it exists
1104         for all named access types.
1105         (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
1106         procedure to call at the end of the generated cleanup procedure.
1107         (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
1108         and an At_End_Proc already exists in the handled sequence of statements
1109         for which cleanup actions are being expanded, the original cleanup
1110         action must be preserved.
1111
1112 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
1113             Ed Schonberg  <schonberg@adacore.com>
1114             Robert Dewar  <dewar@adacore.com>
1115             Gary Dismukes  <dismukes@adacore.com>
1116
1117         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
1118         Build_Unprotected_Subprogram_Body): Generate debug info for
1119         declarations related to the handling of private data in task and
1120         protected types.
1121         (Debug_Private_Data_Declarations): New subprogram.
1122         (Install_Private_Data_Declarations): Remove all debug info flagging.
1123         This is now done by Debug_Private_Data_Declarations at the correct
1124         stage of expansion.
1125         (Build_Simple_Entry_Call): If the task name is a function call, expand
1126         the prefix into an object declaration, and make the surrounding block a
1127         task master.
1128         (Build_Master_Entity): An internal block is a master if it wraps a call.
1129         Code reformatting, update comments. Code clean up.
1130         (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
1131         (Replicate_Entry_Formals): If the formal is an access parameter or
1132         anonymous access to subprogram, copy the original tree to create new
1133         entities for the formals of the subprogram.
1134         (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
1135         for tasks to store the value passed using pragma Relative_Deadline.
1136         (Make_Task_Create_Call): Add the Relative_Deadline argument to the
1137         run-time call to create a task.
1138         (Build_Wrapper_Spec): If the controlling argument of the interface
1139         operation is an access parameter with a non-null indicator, use the
1140         non-null indicator on the wrapper.
1141
1142         * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
1143         present, which it may not be in the case where the type entity is an
1144         incomplete view brought in by a limited with.
1145         (Analyze_Task_Type): Only retrieve the full view when present, which it
1146         may not be in the case where the type entity is an incomplete view brought
1147         in by a limited with.
1148         (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
1149         private components of a protected type, to prevent the generation of freeze
1150         nodes for which there is no proper scope of elaboration.
1151
1152         * exp_util.ads, exp_util.adb
1153         (Remove_Side_Effects): If the expression is a function call that returns a
1154         task, expand into a declaration to invoke the build_in_place machinery.
1155         (Find_Protection_Object): New routine.
1156         (Remove_Side_Effects): Also make a copy of the value
1157         for attributes whose result is of an elementary type.
1158         (Silly_Boolean_Array_Not_Test): New procedure
1159         (Silly_Boolean_Array_Xor_Test): New procedure
1160         (Is_Volatile_Reference): New function
1161         (Remove_Side_Effects): Use Is_Volatile_Reference
1162         (Possible_Bit_Aligned_Component): Handle slice case properly
1163
1164         * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
1165         case test to Exp_Util
1166         (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
1167
1168 2008-04-08  Thomas Quinot  <quinot@adacore.com>
1169
1170         * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
1171         in call
1172         (Add_RACW_Features): When processing an RACW in another unit than the
1173         main unit, set Body_Decls to No_List to indicate that the bodies of
1174         the type's TSS must not be generated.
1175         (GARLIC_Support.Add_RACW_Read_Attribute,
1176         GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
1177         Body_Decls is No_List.
1178         (PolyORB_Support.Add_RACW_Read_Attribute,
1179         PolyORB_Support.Add_RACW_Write_Attribute,
1180         PolyORB_Support.Add_RACW_From_Any,
1181         PolyORB_Support.Add_RACW_To_Any,
1182         PolyORB_Support.Add_RACW_TypeCode): Same.
1183         (Transmit_As_Unconstrained): New function.
1184         (Build_Ordered_Parameters_List): Use the above to order parameters.
1185         (GARLIC_Support.Build_General_Calling_Stubs):
1186         Use the above to determine which parameters to unmarshall using 'Input
1187         at the point where their temporary is declared (as opposed to later on
1188         with a 'Read call).
1189         (PolyORB_Support.Build_General_Calling_Stubs):
1190         Use the above to determine which parameters to unmarshall using From_Any
1191         at the point where their temporary is declared (as opposed to later on
1192         with an assignment).
1193
1194 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
1195
1196         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
1197         an Input function for an access type, do not perform default
1198         initialization on the local variable that receives the value, to
1199         prevent spurious warnings when the type is null-excluding.
1200
1201 2008-04-08  Robert Dewar  <dewar@adacore.com>
1202             Ed Schonberg  <schonberg@adacore.com>
1203
1204         * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
1205         units.
1206         (Size_Known): Generic formal scalar types have known at compile
1207         time size, so remove check.
1208         Fix casing error in formal parameter name in call
1209         (Freeze_Subprogram): If the subprogram is a user-defined operator,
1210         recheck its overriding indication.
1211
1212 2008-04-08  Vincent Celier  <celier@adacore.com>
1213
1214         * gnat1drv.adb: Send all messages indicating an error to standard error
1215
1216 2008-04-08  Robert Dewar  <dewar@adacore.com>
1217
1218         * gnatbind.adb (Restriction_Could_Be_Set): New procedure
1219         (List_Applicable_Restrictions): Do not list existing restrictions
1220
1221 2008-04-08  Thomas Quinot  <quinot@adacore.com>
1222
1223         * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
1224         add a pointer to generic sockets literature
1225         do not mention that the given example is "typical" usage.
1226         Remove obsolete comment about multicast not being supported on Windows.
1227         (Connect_Socket): Make Server mode IN rather than IN OUT
1228         since this formal is never modified.
1229
1230 2008-04-08  Robert Dewar  <dewar@adacore.com>
1231
1232         * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
1233         the declaration for some different entity.
1234         (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
1235         list is precent (following the parent subtype indication), display
1236         appropriate "and" keyword.
1237
1238         * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
1239         Remove unnecessary calls to Init_Size_Align and Init_Esize.
1240         Add notes on use of Parent field of an Itype
1241
1242 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
1243             Robert Dewar  <dewar@adacore.com>
1244             Gary Dismukes  <dismukes@adacore.com>
1245
1246         * lib-xref.adb (Is_On_LHS): Remove dead code
1247         (Output_Overriden_Op): If the overridden operation is itself inherited,
1248         list the ancestor operation, which is the one whose body or absstract
1249         specification is actually being overridden. For source navigation
1250         purposes.
1251
1252         * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
1253         operation is primitive for the type.
1254         (Declare_Inherited_Private_Subprograms): If the new operation overrides
1255         an inherited private subprogram, set properly the Overridden_Operation
1256         attribute, for better cross-reference information.
1257         (Analyze_Package_Specification): Do late analysis of spec PPCs
1258         (Install_Private_Declaration, Uninstall_Declarations): Save/restore
1259         properly the full view and underlying full views of a private type in a
1260         child unit, whose full view is derived from a private type in a parent
1261         unit, and whose own full view becomes visible in the child body.
1262
1263         * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
1264         primitive operation after the type has been frozen, add an explicit
1265         reference to the type and the operation, because other primitive
1266         references have been emitted already.
1267         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
1268         dispatching call on VM targets.
1269
1270 2008-04-08  Vincent Celier  <celier@adacore.com>
1271             Thomas Quinot  <quinot@adacore.com>
1272
1273         * make.adb: (Gnatmake_Called): Remove, no longer necessary
1274         (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
1275         is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
1276         (Insert_Project_Sources): Take into account index in multi-unit source
1277         files.
1278         After building a library project, delete all temporary files.
1279         (Initialize): Reset current output after parsing project file.
1280         (Collect_Arguments_And_Compile): Never insert in the queue the sources
1281         of library projects that are externally built.
1282         Put file name in error and inform messages if -df is used
1283         (Display): If invoked with -d7, do not display path names, but only
1284         file names.
1285
1286         * makeutl.ads (Path_Or_File_Name): New function
1287         (Path_Or_File_Name): New function
1288
1289 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
1290
1291         * Make-lang.in: Disable warnings during first stage of bootstrap
1292         Get rid of gnatbl.
1293         Update dependencies.
1294
1295 2008-04-08  Vincent Celier  <celier@adacore.com>
1296
1297         * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
1298         case to decide if ALI object file is included in library.
1299         (Build_Library): Never attempt to build a library if the project is
1300         externally built.
1301
1302 2008-04-08  Thomas Quinot  <quinot@adacore.com>
1303
1304         * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
1305         (No_List) is defined to return Empty.
1306
1307 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
1308
1309         * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
1310         documentation.
1311         Update comments.
1312         (Read_Default_Search_Dirs): Do not consider spaces as path separators
1313         because spaces may be part of legal paths.
1314
1315 2008-04-08  Robert Dewar  <dewar@adacore.com>
1316
1317         * par-ch11.adb (P_Exception_Handler): Check indentation level for
1318         handler
1319
1320 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
1321
1322         * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
1323         in a type declaration, if this is not an interface declaration or
1324         private type extension.
1325
1326 2008-04-08  Vincent Celier  <celier@adacore.com>
1327
1328         * prj-util.adb (Executable_Of): New String parameter Language. When
1329         Ada_Main is False and Language is not empty, attempt to remove the body
1330         suffix or the spec suffix of the language to get the base of the
1331         executable file name.
1332         (Put): New Boolean parameter Lower_Case, defauilted to False. When
1333         Lower_Case is True, put the value in lower case in the name list.
1334         (Executable_Of): If there is no executable suffix in the configuration,
1335         then do not modify Executable_Extension_On_Target.
1336
1337         * prj-util.ads (Executable_Of): New String parameter Language,
1338         defaulted to the empty string.
1339         (Put): New Boolean parameter Lower_Case, defauilted to False
1340
1341 2008-04-08  Robert Dewar  <dewar@adacore.com>
1342
1343         * scng.adb (Scan_Identifier): Handle case of identifier starting with
1344         wide character using UTF-8 encoding.
1345
1346 2008-04-08  Javier Miranda  <miranda@adacore.com>
1347
1348         * sem.adb (Analyze): Consider case in which we analyze an empty node
1349         that was generated by a call to a runtime function that is not
1350         available under the configurable runtime.
1351
1352         * sem.ads (Inside_Freezing_Actions): New flag.
1353         (Save_Check_Policy_List): New field in scope stack entry
1354
1355 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
1356             Robert Dewar  <dewar@adacore.com>
1357
1358         * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
1359         the ancestor part of an extension aggregate for a limited type.
1360         (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
1361         enumeration index bounds.
1362         (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
1363         when array is too short.
1364         (Check_Expr_OK_In_Limited_Aggregate): Move function
1365         Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
1366         change name).
1367         (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
1368         Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
1369         component associations.
1370         (Check_Non_Limited_Type): Moved to outer level and renamed.
1371         (Resolve_Record_Aggregate): In an extension aggregate, an association
1372         with a box initialization can only designate a component of the
1373         extension, not a component inherited from the given ancestor
1374
1375         * sem_case.adb: Use new Is_Standard_Character_Type predicate
1376
1377 2008-04-08  Robert Dewar  <dewar@adacore.com>
1378
1379         * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
1380         negative scale
1381         (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
1382         Properly handle case where Aft > Scale and input number is less than
1383         one.
1384
1385 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
1386
1387         * s-stoele.ads, s-soflin.ads: Move the location of
1388         Dummy_Communication_Block from System.Storage_Elements to
1389         System.Soft_Links.
1390
1391         * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
1392         emulate Communication_Block in certain scenarios.
1393
1394 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
1395
1396         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
1397         subprogram.
1398         Add new subtype S_WWC, unchecked conversion routines From_WWC and
1399         To_WWC.
1400         (I_WWC, O_WWC): New routines for input and output of
1401         Wide_Wide_Character.
1402
1403 2008-04-08  Robert Dewar  <dewar@adacore.com>
1404
1405         * stringt.adb (Write_String_Table_Entry): Handle wide characters
1406         properly
1407
1408 2008-04-08  Robert Dewar  <dewar@adacore.com>
1409
1410         * styleg.adb (Check_Comment): Allow special char after -- in
1411         non-end-of-line case
1412
1413 2008-04-08  Robert Dewar  <dewar@adacore.com>
1414
1415         * stylesw.adb: Implement -gnaty + - y options
1416         (Set_GNAT_Style_Check_Options): Includ I in style check string
1417
1418         * stylesw.ads: Add comments for new style switch options
1419
1420 2008-04-08  Sergey Rybin  <rybin@adacore.com>
1421
1422         * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
1423         to the set of the GNAT components needed by ASIS.
1424
1425 2008-04-08  Bob Duff  <duff@adacore.com>
1426
1427         * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
1428
1429 2008-04-08  Tristan Gingold  <gingold@adacore.com>
1430
1431         * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
1432         Improve error message generation.
1433
1434 2008-04-08  Vincent Celier  <celier@adacore.com>
1435
1436         * a-direct.adb (Start_Search): Check for Name_Error before checking for
1437         Use_Error, as specified in the RM. Check if directory is open and raise
1438         Use_Error if it is not.
1439
1440 2008-04-08  Vincent Celier  <celier@adacore.com>
1441             Robert Dewar  <dewar@adacore.com>
1442
1443         * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
1444         AAMP_On_Target is set.
1445
1446         * vms_data.ads: Add NOxxx to style check switch list
1447         Add entry COMPONENTS for -gnatVe
1448         Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
1449         (/SUBDIRS=).
1450         (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
1451         Add qualifiers for gnatmetric coupling options
1452         Add note that -gnata enables all checks
1453         Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
1454         Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
1455         New warning flag -gnatw.e
1456
1457         * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
1458         Add entry for -gnatyN (forgotten before)
1459         Line for new warning switch -gnatw.p
1460         New warning flag -gnatw.e
1461
1462         * gnat_ugn.texi: Add documentation fpr project file switch -aP
1463         Document -gnaty - + y
1464         Replace occurences of "package specification" with "package spec"
1465         Define preprocessing symbols in documentation of gnatprep
1466         Clarify reason for distinguishing overflow checking
1467         Add documentation for project-aware tool switches -eL and --subdirs=
1468         Complete list of configuration pragmas
1469         Specify that, even when gnatmake switch -x is used, mains on the command
1470         line need to be sources of project files.
1471         Editing of gnatcheck/gnatmetric doc.
1472         Add documentation for -gnatw.p/-gnatw.P
1473         Add missing documentation for -fno-inline-functions.
1474         Add documentation for -gnatw.e
1475
1476         * gnat_rm.texi: Add documentation for No_Default_Initialization
1477         Replace occurences of "package specification" with "package spec"
1478         Document use of * in Warnings Off string
1479         Update documentation of alignment/component clauses.
1480         Add documentation for Invalid_Value
1481         Document new consistency rule for Optimize_Alignment
1482         Add documentation for Precondition and Postcondition pragmas
1483         Add documentation for Check and Check_Policy pragmas
1484         Document new Enum_Val attribute
1485         Remove requirement for static string in pragma Assert
1486         Add documentation on GNAT.Time_Stamp
1487
1488         * ug_words: add entry for -gnatVe
1489         Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
1490         Add entry for -gnatw.e
1491
1492         * debug.adb: Add missing documentation for d.a flag
1493         Document new -gnatd.a switch.
1494         Add documentation for new gnatmake debug switch -df
1495
1496 2008-04-08  Thomas Quinot  <quinot@adacore.com>
1497
1498         * gen-soccon.c: Bump year in copyright notices.
1499
1500         * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
1501
1502 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
1503
1504         * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
1505         Minor reformatting.
1506
1507 2008-04-08  Robert Dewar  <dewar@adacore.com>
1508             Bob Duff  <duff@adacore.com>
1509
1510         * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
1511         Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
1512
1513         * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
1514
1515         * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
1516
1517         * g-trasym.ads: Minor comment improvements
1518
1519         * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
1520
1521         * a-sequio.ads, a-direio.ads: improve message for tagged type
1522
1523         * a-strunb.ads: Minor reformatting
1524
1525         * a-tifiio.adb: Minor reformatting
1526
1527         * atree.adb (Fix_Parents): Use clearer names for formals
1528         Cleanup and simplify code
1529         Use named notation in calls
1530
1531         * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
1532         confusing calls
1533
1534         * uintp.adb: Used named notation for some confusing calls
1535
1536         * bindusg.adb: Minor change in one line of output
1537
1538         * cstand.adb: Minor reformatting of src representation of Standard
1539
1540         * a-assert.ads: Add comment.
1541
1542         * g-decstr.adb: Fix bad indentation
1543
1544         * expander.ads, expander.adb: Code clean up.
1545
1546         * sem_dist.ads: Minor comment improvement
1547
1548         * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
1549         s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
1550
1551         * i-cstrin.adb: Fix casing error in formal parameter name in call
1552
1553 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
1554
1555         * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
1556         mentioned in limited_with_clauses to do create semantic dependencies
1557         even though they appear in the ali file.
1558
1559 2008-04-08  Emmanuel Briot  <briot@adacore.com>
1560
1561         * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
1562         statement.
1563         (Get_Configuration): New subprogram.
1564
1565         * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
1566         These optional parameters help preserve the casing of the project's name
1567         when pretty-printing.
1568
1569 2008-04-08  Jerome Lambourg  <lambourg@adacore.com>
1570             Arnaud Charlet  <charlet@adacore.com>
1571
1572         * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
1573         then use __gnat_set_exit_status to report the returned status code.
1574
1575         * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
1576         messages on .NET, since some constructs of the language are not
1577         properly supported.
1578
1579         * gnatlink.adb (Gnatlink): In case the command line is too long for the
1580         .NET linker, gnatlink now concatenate all .il files and pass this to
1581         ilasm.
1582
1583 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
1584             Xavier Grave  <grave@ipno.in2p3.fr>
1585
1586         * Makefile.in: Add make ifeq define for mips/mipsel support.
1587         * g-soccon-linux-mips.ads, system-linux-mipsel.ads, 
1588         system-linux-mips.ads: New files.
1589
1590 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
1591
1592         * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
1593         detect systems using GNU libc.
1594         * gsocket.h: ditto.
1595         * socket.c: ditto.
1596         * adaint.c: ditto.
1597         * link.c: ditto.
1598
1599 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
1600
1601         * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New 
1602         constant constant for sysconf call.
1603         (bit_field): New packed boolean type used by cpu_set_t.
1604         (cpu_set_t): New type corresponding to the C type with
1605         the same name. Note that on the Ada side we use a bit
1606         field array for the affinity mask. There is not need
1607         for the C macro for setting individual bit.
1608         (pthread_setaffinity_np): New imported routine.
1609         * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
1610         on GNU/kFreeBSD.
1611
1612 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
1613
1614         * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
1615
1616 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
1617
1618         * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
1619         * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
1620         * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
1621         * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
1622         Return by Depressed Stack Pointer.
1623
1624 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
1625
1626         * decl.c (is_variable_size): Do not unconditionally return false
1627         on non-strict alignment platforms.
1628
1629 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
1630
1631         * decl.c (rest_of_type_decl_compilation_no_defer): New local function
1632         used to process all the variants of the specified type.
1633         (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
1634         types too.  Call rest_of_type_decl_compilation_no_defer if undeferring.
1635         (rest_of_type_decl_compilation): Likewise.
1636         * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
1637
1638 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
1639
1640         * gigi.h (insert_block): Kill.
1641         * utils.c (insert_block): Kill.
1642
1643 2008-04-02  Eric Botcazou  <ebotcazou@adacore.com>
1644
1645         * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
1646         type has self-referential size, get the size from the initializing
1647         expression directly if it is also a constant whose nominal type
1648         has self-referential size.
1649
1650 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1651
1652         PR ada/33688
1653         * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
1654
1655         PR ada/33857
1656         * env.c: Always include crt_externs.h if __APPLE__ is defined.
1657         (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
1658
1659 2008-04-01  Andreas Jaeger  <aj@suse.de>
1660
1661         * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
1662         IP_PKTINFO.
1663
1664 2008-03-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1665
1666         * g-table.adb, g-tasloc.adb, g-traceb.ads,
1667         g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
1668         gnatbind.adb, gnatchop.adb, gnatcmd.adb,
1669         gnatcmd.ads, gnatdll.adb, gnatfind.adb,
1670         gnatlink.adb, gnatmem.adb, gprep.adb,
1671         i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
1672         i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
1673         layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
1674         lib-xref.ads, lib.adb, link.c, live.ads,
1675         make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
1676         mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
1677         misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
1678         mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
1679         namet.adb, namet.h, nlists.adb, nlists.ads,
1680         nlists.h, opt.ads, osint-b.ads, osint-c.adb,
1681         osint-c.ads, osint.adb, osint.ads, output.ads,
1682         par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
1683         par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
1684         par-endh.adb, par-labl.adb, par-prag.adb,
1685         par-sync.adb, par-tchk.adb, par-util.adb,
1686         par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
1687         prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
1688         prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
1689         prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
1690
1691 2008-03-31  Eric Botcazou  <ebotcazou@adacore.com>
1692
1693         * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
1694         size if it has overflowed.
1695
1696 2008-03-31  Olivier Hainque  <hainque@adacore.com>
1697             Eric Botcazou  <ebotcazou@adacore.com>
1698
1699         * utils2.c (find_common_type): Document assumption on t1/t2 vs
1700         lhs/rhs. Force use of lhs type if smaller, whatever the modes.
1701
1702 2008-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1703
1704         * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
1705         einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
1706         exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
1707         exp_pakd.ads, exp_prag.adb, exp_smem.adb,
1708         exp_tss.ads, exp_util.adb, exp_util.ads,
1709         exp_vfpt.adb, freeze.adb, freeze.ads,
1710         frontend.adb, g-alleve.adb, g-altcon.adb,
1711         g-altive.ads, g-alveop.ads, g-alvevi.ads,
1712         g-arrspl.adb, g-busorg.ads, g-calend.adb,
1713         g-calend.ads, g-casuti.ads, g-cgideb.adb,
1714         g-comlin.adb, g-comlin.ads, g-curexc.ads,
1715         g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
1716         g-dirope.adb, g-dirope.ads, g-dynhta.ads,
1717         g-dyntab.adb, g-encstr.ads, g-excact.ads,
1718         g-except.ads, g-expect.ads, g-heasor.adb,
1719         g-hesora.adb, g-hesorg.adb, g-htable.ads,
1720         g-locfil.ads, g-md5.adb, g-md5.ads,
1721         g-memdum.ads, g-moreex.ads, g-os_lib.adb,
1722         g-pehage.adb, g-pehage.ads, g-regexp.adb,
1723         g-regexp.ads, g-regpat.adb, g-regpat.ads,
1724         g-soccon-aix.ads, g-soccon-darwin.ads,
1725         g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
1726         g-soccon-hpux.ads, g-soccon-irix.ads,
1727         g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
1728         g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
1729         g-soccon-mingw.ads, g-soccon-solaris-64.ads,
1730         g-soccon-solaris.ads, g-soccon-tru64.ads,
1731         g-soccon-vms.ads, g-soccon-vxworks.ads,
1732         g-soccon.ads, g-socket.adb, g-socket.ads,
1733         g-socthi-mingw.adb, g-socthi-vms.adb,
1734         g-socthi-vxworks.adb, g-soliop-mingw.ads,
1735         g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
1736         g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
1737         typos.
1738
1739 2008-03-27  Eric Botcazou  <ebotcazou@adacore.com>
1740
1741         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
1742         if the procedure is imported.
1743
1744 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
1745
1746         * adaint.c: Fix warnings.
1747
1748 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
1749
1750         * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
1751
1752 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
1753
1754         * a-witeio.adb: Fix problem with Current_Output (introduce Self).
1755         Fix problem of status check for null file
1756
1757 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
1758
1759         * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
1760         s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
1761         s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
1762         i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
1763         s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
1764         comments.
1765
1766 2008-03-26  Thomas Quinot  <quinot@adacore.com>
1767
1768         PR ada/33688
1769         * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
1770         Get_Socket_Option): Add support for Receive_Packet_Info.
1771
1772         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
1773         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
1774         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
1775         g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
1776         g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
1777         new constants SO_REUSEPORT and IP_PKTINFO
1778
1779 2008-03-26  Robert Dewar  <dewar@adacore.com>
1780
1781         * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
1782         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
1783         a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
1784         a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
1785         a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
1786         a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
1787         s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
1788         s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
1789         a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
1790         s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
1791         s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
1792         s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
1793         s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
1794         s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
1795         s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
1796         s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
1797         s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
1798         s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
1799         s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
1800         s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
1801         a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
1802         a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
1803         s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
1804         s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
1805         s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
1806         s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
1807         s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
1808         a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
1809         a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
1810         s-tasloc.adb: Minor reformatting.
1811         Update comments.
1812         Remove "used for" sections from comments.
1813
1814 2008-03-26  Robert Dewar  <dewar@adacore.com>
1815
1816         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
1817         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
1818         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
1819         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
1820         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
1821         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
1822         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
1823         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
1824         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
1825         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
1826         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
1827         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
1828         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
1829         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
1830         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
1831         double spaced if it fits on one line and otherwise single spaced.
1832
1833 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
1834
1835         * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb, 
1836         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb, 
1837         s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
1838         or task info if the thread could not be created.
1839
1840 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
1841
1842         * gnatvsn.ads (Library_Version): Bump to 4.4.
1843         (Current_Year): Bump to 2008.
1844
1845 2008-03-26  Robert Dewar  <dewar@adacore.com>
1846
1847         * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
1848
1849         * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
1850
1851         * debug.adb: Add debug flags d.r and d.v
1852         Add debug flag .T (Optimize_Alignment (Time))
1853         Add debug flag .S (Optimize_Alignment (Space))
1854
1855         * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
1856         depending on setting of relevant debug flags.
1857         Replace use of Warnings_Off by Has_Warnings_Off
1858         (Freeze_Entity): In circuit for warning on suspicious convention
1859         actuals, do not give warning if subprogram has same entity as formal
1860         type, or if subprogram does not come from source.
1861         (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
1862         if Optimize_Alignment set to Space.
1863
1864         * frontend.adb: Add call to Sem_Warn.Initialize
1865         Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
1866         Reset Optimize_Alignment mode from debug switches .S and .T
1867
1868         * layout.adb (Layout_Composite_Object): Rewritten for
1869         Optimize_Aligment pragma.
1870
1871         * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
1872         mode.
1873
1874         * opt.ads, opt.adb: (Optimize_Alignment): New global switch
1875
1876         * par-prag.adb (N_Pragma): Chars field removed, use Chars
1877         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
1878         this change. Add entry for pragma Optimize_Alignment
1879
1880         * sem_prag.adb (N_Pragma): Chars field removed, use Chars
1881         (Pragma_Identifier (..
1882         instead, adjustments throughout to accomodate this change.
1883         (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
1884         (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
1885         Add implementation of pragma Optimize_Alignment
1886
1887 2008-03-26  Vincent Celier  <celier@adacore.com>
1888
1889         * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
1890         Improve memory usage to avoid use of stack.
1891
1892 2008-03-26  Robert Dewar  <dewar@adacore.com>
1893
1894         * a-teioed.ads: Correct value of Default_Fill
1895
1896         * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
1897
1898 2008-03-26  Robert Dewar  <dewar@adacore.com>
1899
1900         * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
1901         with Current_Output (introduce Self).
1902
1903 2008-03-26  Robert Dewar  <dewar@adacore.com>
1904
1905         * checks.adb (Ensure_Valid): Capture valid status if possible
1906         (eliminate checks)
1907
1908 2008-03-26  Robert Dewar  <dewar@adacore.com>
1909
1910         * stand.ads: Deal with reordering of package standard declarations
1911
1912         * cstand.adb: Put package Standard declarations in proper order
1913
1914 2008-03-26  Robert Dewar  <dewar@adacore.com>
1915
1916         * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
1917         (Pragma_Identifier (.. instead.
1918         (OK_To_Reorder_Components): New flag
1919         (Has_Entries): Code cleanup.
1920         (Warnings_Off_Used): New flag
1921         (Warnings_Off_Used_Unmodified): New flag
1922         (Warnings_Off_Used_Unreferenced): New flag
1923         (Has_Warnings_Off): New function
1924         (Has_Unmodified): New function
1925         (Has_Unreferenced): New function
1926         (Is_Trivial_Subprogram): New flag
1927         (Is_Static_Dispatch_Table_Entity): New attribute.
1928         Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
1929         (more consistent with other similar names)
1930         (Access_Subprogram_Type): New classification function
1931
1932 2008-03-26  Robert Dewar  <dewar@adacore.com>
1933
1934         * errout.ads: Document new !! insertion sequence
1935
1936         * errout.adb (N_Pragma): Chars field removed, use Chars
1937         (Pragma_Identifier (..  instead.
1938         Replace use of Warnings_Off by Has_Warnings_Off
1939         (Error_Msg_Internal): Don't delete warning ending in !!
1940
1941 2008-03-26  Robert Dewar  <dewar@adacore.com>
1942
1943         * par.adb (Check_No_Right_Paren): Removed no longer used
1944
1945         * par-ch10.adb (N_Pragma): Chars field removed, use Chars
1946         (Pragma_Identifier (..  instead.
1947
1948         * par-ch10.adb (P_Subunit): Improvement in error recovery and message
1949
1950         * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
1951         par-ch4.adb: Minor improvements in error recovery and messages.
1952
1953         * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
1954         non-serious
1955
1956         * par-ch9.adb: Minor improvements in error recovery and messages
1957         (P_Protected): Better error recovery for "protected type x;"
1958
1959         * par-util.adb: Minor improvements in error recovery and messages
1960         (Check_No_Right_Paren): Removed no longer used
1961
1962 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
1963
1964         * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
1965         that the prefix of an attribute is the type of the aggregate being
1966         expanded.
1967
1968 2008-03-26  Javier Miranda  <miranda@adacore.com>
1969             Robert Dewar  <dewar@adacore.com>
1970
1971         * exp_attr.adb (N_Pragma): Chars field removed.
1972         (Expand_N_Attribute_Reference): If the designated type associated with
1973         attribute 'Unrestricted_Access is a subprogram entity then replace it
1974         by an E_Subprogram_Type itype.
1975         Implement attribute Old
1976
1977         * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
1978
1979         * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
1980         Replace call to
1981         New_Internal_Entity by call to Create_Itype to centralize calls
1982         building itypes, ad propagate the convention of the designated
1983         subprogram. In addition, disable the machinery cleaning constant
1984         indications from all entities in current scope when 'Unrestricted_Access
1985         corresponds with a node initializing a dispatch table slot.
1986         (Analyze_Attribute): Parameterless attributes returning a string or a
1987         type will not be called with improper arguments, so we can remove junk
1988         code that was dealing with this case.
1989         Implement attribute Old
1990
1991         * snames.ads, snames.h, snames.adb: Add entries for attribute Old
1992         Add entry for pragma Optimize_Alignment
1993         New standard names Sync and Synchronize
1994
1995 2008-03-26  Robert Dewar  <dewar@adacore.com>
1996             Arnaud Charlet  <charlet@adacore.com>
1997
1998         * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
1999         stmt.
2000         (No_Exception_Propagation_Active): New function.
2001         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
2002         Update comments, and review all uses of No_Exception_Propagation, which
2003         are now correct and in sync with what gigi expects.
2004
2005         * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
2006         function.
2007         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
2008         Update comments, and review all uses of No_Exception_Propagation, which
2009         are now correct and in sync with what gigi expects.
2010
2011 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
2012
2013         * sem_ch3.adb (Access_Definition): If the access type is the return
2014         result of a protected function, create an itype reference for it
2015         because usage will be in an inner scope from the point of declaration.
2016         (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
2017         OK_To_Reorder_Components.
2018         (Make_Index): If an overloaded range includes a universal integer
2019         interpretation, resolve to Standard.Integer.
2020         (Analyze_Subtype_Indication): Copy Convention to subtype
2021         (Check_Abstract_Interfaces): Complete semantic checks on the legality of
2022         limited an synchronized progenitors in type declaration and private
2023         extension declarations.
2024
2025         * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
2026         protected subprogram body, determine proper scope from subprogram
2027         declaration.
2028
2029 2008-03-26  Robert Dewar  <dewar@adacore.com>
2030
2031         * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
2032         No_Run_Time_Mode
2033
2034 2008-03-26  Gary Dismukes  <dismukes@adacore.com>
2035
2036         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
2037         of a heap allocator for a limited unconstrained function return when
2038         resstriction No_Allocators is active.
2039         (Analyze_Allocator): The restriction No_Allocators is now only checked
2040         on allocators that have Comes_From_Source set, as per RM-H.4(7).
2041
2042         * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
2043         of a heap allocator for a limited unconstrained function return when
2044         resstriction No_Allocators is active.
2045         (Analyze_Allocator): The restriction No_Allocators is now only checked
2046         on allocators that have Comes_From_Source set, as per RM-H.4(7).
2047         (Has_Fixed_Op):  If the name in a function call is Standard."*" and the
2048         operands are fixed-point types, the universal_fixed predefined operation
2049         is used, regardless of whether the operand type (s) have a primitive
2050         operation of the same name.
2051
2052 2008-03-26  Javier Miranda  <miranda@adacore.com>
2053
2054         * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
2055         Is_Static_Dispatch_Table
2056         (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
2057         to Exchange_Declarations to exchange the private and full-view. Bug
2058         found working in this issue.
2059         (Expand_Dispatching_Call): Propagate the convention of the subprogram
2060         to the subprogram pointer type.
2061         (Make_Secondary_DT): Replace generation of Prim'Address by
2062         Address (Prim'Unrestricted_Access)
2063         (Make_DT): Replace generation of Prim'Address by
2064         Address (Prim'Unrestricted_Access)
2065         (Make_Disp_*_Bodies): When compiling for a restricted profile, use
2066         simple call form for single entry.
2067         (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
2068         tables of predefined primitives).
2069         (Make_Secondary_DT): Add support to handle access to dispatch tables of
2070         predefined primitives.
2071         (Make_Tags): Add entities to Access_Dispatch_Table associated with
2072         access to dispatch tables containing predefined primitives.
2073
2074         * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
2075         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
2076         this change.
2077         (Register_Predefined_DT_Entry): Updated to handle the new contents
2078         of attribute Access_Disp_Table (pointers to dispatch tables containing
2079         predefined primitives).
2080
2081         * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
2082         subprogram.
2083         (Find_Interface_ADT): Updated to skip the new contents of attribute
2084         Access_Dispatch_Table (pointers to dispatch tables containing predefined
2085         primitives).
2086
2087         * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
2088         concurrent types.
2089         (Set_Convention): Use new function Is_Access_Subprogram_Type
2090         (Collect_Interfaces_Info): Updated to skip the new contents of attribute
2091         Access_Dispatch_Table (pointers to dispatch tables containing predefined
2092         primitives).
2093
2094         * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
2095         expanded code avoiding calls to Build_Predef_Prims.
2096         (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
2097         call to Build_Get_Predefined_Prim_Op_Address.
2098
2099 2008-03-26  Javier Miranda  <miranda@adacore.com>
2100
2101         * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
2102         subprogram Corresponding_Runtime_Package to know the runtime package
2103         that will provide support to a given protected type.
2104
2105         * exp_ch9.adb (Add_Private_Declarations,
2106         Build_Protected_Subprogram_Call,
2107         Build_Protected_Entry, Build_Simple_Entry_Call,
2108         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
2109         Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
2110         cleanup using the new centralized subprogram Corresponding_Runtime
2111         Package to know the runtime package that provides support to
2112         a given protected type.
2113
2114 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
2115
2116         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
2117         assignment is within the initialization procedure for a packed array,
2118         and Initialize_Scalars is enabled, compile right-hand side with checks
2119         off, because the value is purposely out of range.
2120
2121 2008-03-26  Vincent Celier  <celier@adacore.com>
2122
2123         * gnatcmd.adb: Add processing for GNAT SYNC
2124
2125         * vms_conv.ads: (Command_Type): Add command Sync
2126
2127         * vms_conv.adb (Initialize): Add Command_List data for new command Sync
2128
2129         * vms_data.ads: Add entries for -gnatw.w
2130         Add qualifier for gnatstub --header-file option
2131         Add switches for GNAT SYNC
2132
2133         * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
2134         (Add_Package_Name): New procedure
2135         (Package_Name_List): New function
2136         (Initialize): Add known package names to the list
2137         (Register_New_Package): Add the new package name to the list
2138
2139 2008-03-26  Robert Dewar  <dewar@adacore.com>
2140
2141         * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
2142         s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
2143         Raise_Exception by "raise with" construct.
2144
2145 2008-03-26  Pascal Obry  <obry@adacore.com>
2146
2147         * Makefile.in: Add proper GNAT.Serial_Communications implementation on
2148         supported platforms.
2149         
2150         * Makefile.rtl: Add g-sercom.o.
2151         
2152         * impunit.adb: Add g-sercom.adb.
2153         
2154         * s-crtl.ads (open): New routine.
2155         (close): Likewise.
2156         (write): Likewise.
2157         
2158         * s-osinte-mingw.ads (BYTE): New type.
2159         (CHAR): Likewise.
2160         (OVERLAPPED): Likewise.
2161         (GENERIC_READ): New constant.
2162         (GENERIC_WRITE): Likewise.
2163         (OPEN_EXISTING): Likewise.
2164         (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
2165         type instead.
2166         (CreateFile): New routine.
2167         (WriteFile): Likewise.
2168         (ReadFile): Likewise.
2169         (CloseHandle): Move next to the other file oriented routines.
2170
2171         * g-sercom.ads: New unit.
2172
2173         * g-sercom.adb: Default implementation, calls to this unit will raise
2174         a program error exception.
2175         
2176         * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
2177         GNU/Linux implementations.
2178
2179 2008-03-26  Robert Dewar  <dewar@adacore.com>
2180
2181         * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
2182
2183         * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
2184         unchecked conversion for different conventions only for subprogram
2185         pointers or on VMS.
2186
2187 2008-03-26  Vincent Celier  <celier@adacore.com>
2188
2189         * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
2190         to check if the specified object file is correct.
2191
2192 2008-03-26  Thomas Quinot  <quinot@adacore.com>
2193
2194         * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
2195         Comes_From_Source to exclude primitives from being checked. We want to
2196         exclude predefined primitives only, so use the appropriate specific
2197         predicate. Also, flag a formal parameter of an anonymous
2198         access-to-subprogram type as illegal for a primitive operation of a
2199         remote access to class-wide type.
2200
2201 2008-03-26  Vincent Celier  <celier@adacore.com>
2202
2203         * prj-dect.adb (Parse_Package_Declaration): When a package name is not
2204         known, check if it may be a missspelling of a known package name. In
2205         not verbose, not mode, issue warnings only if the package name is a
2206         possible misspelling.
2207         In verbose mode, always issue a warning for a not known package name,
2208         plus a warning if the name is a misspelling of a known package name.
2209
2210         * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
2211         limited withs or limited withs are parse during one call.
2212         (Parse_Single_Project): Post parse context clause in two passes: non
2213         limited withs before current project and limited withs after current
2214         project.
2215
2216         * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
2217         project with the name With_Name, even if it is only extended indirectly.
2218         (Recursive_Process): Process projects in order: first single withs, then
2219         current project, then limited withs.
2220
2221         * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
2222         project with the name With_Name, even if it is only extended indirectly.
2223
2224 2008-03-26  Robert Dewar  <dewar@adacore.com>
2225
2226         * scn.adb (Initialize_Scanner): Format messages belong on standard error
2227
2228 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
2229
2230         * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
2231         a generic subprogram that is imported, do not attempt to compile
2232         non-existent body.
2233
2234         * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
2235         imported, do not generate a raise_program_error for the non-existent
2236         body.
2237         (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
2238         perform minimal name resolution on the generic to avoid spurious
2239         warnings.
2240         (Find_Actual_Type): the designated type of the actual in a child unit
2241         may be declared in a parent unit without being an actual.
2242
2243 2008-03-26  Robert Dewar  <dewar@adacore.com>
2244
2245         * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
2246         * sinfo.ads, sinfo.adb (From_At_End): New flag
2247
2248 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
2249
2250         * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
2251         operations that have an interface parameter.
2252         (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
2253         Don't treat No_Return call as raise.
2254
2255         * sem_disp.adb (Check_Dispatching_Operations): apply check for
2256         non-primitive interface primitives to access parameters, not to all
2257         parameters of an access type.
2258
2259 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
2260
2261         * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
2262         declarations of a parent unit are made visible when compiling a child
2263         instance, the parent is not a hidden open scope, even though it may
2264         contain other pending instance.
2265         
2266         * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
2267         hidden open scope for some child instance, it does affect the
2268         visibility status of other stach entries.
2269         (Analyze_Object_Renaming): Check that a class-wide object cannot be
2270         renamed as an object of a specific type.
2271
2272 2008-03-26  Robert Dewar  <dewar@adacore.com>
2273
2274         * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
2275         recursion and raise SE directly.
2276         (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
2277         set for formal type for IN mode parameter.
2278
2279 2008-03-26  Robert Dewar  <dewar@adacore.com>
2280
2281         * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
2282         (Initialize): New procedure
2283         (Output_Warnings_Off_Warnings): New procedure
2284         (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
2285         (Output_Non_Modifed_In_Out_Warnings): Ditto
2286         (Warn_On_Unreferenced_Entity): Ditto
2287
2288 2008-03-26  Vincent Celier  <celier@adacore.com>
2289
2290         * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
2291         readable.
2292
2293 2008-03-26  Matthew Heaney  <heaney@adacore.com>
2294
2295         * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads, 
2296         a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
2297         Marked with clauses as private, and controlled operations as overriding
2298
2299 2008-03-26  Robert Dewar  <dewar@adacore.com>
2300
2301         * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
2302
2303 2008-03-26  Robert Dewar  <dewar@adacore.com>
2304
2305         * back_end.adb, back_end.ads: Minor reformatting
2306
2307         * bindgen.adb: Minor clarification of comments
2308
2309         * fname.ads: Minor comment fixes
2310
2311         * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
2312         prj-nmsc.adb, sem_aggr.adb: Minor reformatting
2313
2314         * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
2315         xsnames.adb: Remove warnings off pragma no longer needed
2316
2317         * a-catizo.ads, a-calari.ads, a-calfor.adb,
2318         a-calfor.ads: Fix header.
2319
2320 2008-03-26  Tristan Gingold  <gingold@adacore.com>
2321
2322         * init.c: Do not adjust pc for HPARITH on alpha/vms.
2323
2324 2008-03-26  Robert Dewar  <dewar@adacore.com>
2325
2326         * lib-xref.adb: (OK_To_Set_Reference): New function
2327         (Generate_Reference): Don't set referenced from occurrence in Warnings,
2328         Unmodified, or Unreferenced pragma
2329
2330 2008-03-26  Robert Dewar  <dewar@adacore.com>
2331
2332         * alloc.ads: Add entries for Warnings_Off_Pragmas table
2333
2334 2008-03-26  GNAT Script  <nobody@adacore.com>
2335
2336         * Make-lang.in: Makefile automatically updated
2337
2338 2008-03-26  Robert Dewar  <dewar@adacore.com>
2339
2340         * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
2341         par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
2342         removed, use Chars (Pragma_Identifier (..  instead, adjustments
2343         throughout to accomodate this change.
2344
2345         * s-pooglo.ads, s-pooloc.ads: Minor comment updates
2346
2347         * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
2348         Einfo.Set_Needs_Debug_Info)
2349
2350 2008-03-26  Robert Dewar  <dewar@adacore.com>
2351
2352         * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
2353         Add description for the new gnatstub option '--header-file'
2354         clarification of -gnatwz/-gnatwZ
2355         Add a "Irix-Specific Considerations" section to document the need to
2356         set LD_LIBRARY_PATH when using the default shared runtime library.
2357         Added documentation for both gcov and gprof.
2358
2359         * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
2360         messages that are not suppressed when clients are compiled.
2361         Add documentation of s-pooglo s-pooloc
2362         Document the new GNAT.Serial_Communications API.
2363         Add documentation for 'Old attribute
2364         Add description of pragma Optimize_Alignment
2365
2366         * ug_words: Add entries for -gnatw.w -gnatw.W
2367
2368         * usage.adb: Add line for -gnatw.w (warn on warnings off)
2369
2370 2008-03-25  Eric Botcazou  <ebotcazou@adacore.com>
2371
2372         Revert
2373         2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
2374         PR ada/35186
2375         * decl.c (maybe_pad_type): Avoid padding an integral type when
2376         bumping its alignment is sufficient.
2377
2378 2008-03-25  Arnaud Charlet  <charlet@adacore.com>
2379
2380         * exp_ch6.adb, exp_disp.adb: Update copyright notice.
2381         Fix wrong formatting (lines too long)
2382
2383 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2384
2385         * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
2386         a-calend-vms.adb, a-calend.adb, a-calend.ads,
2387         a-calfor.adb, a-chahan.ads, a-chtgke.adb,
2388         a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
2389         a-cohama.ads, a-comlin.ads, a-coorse.adb,
2390         a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
2391         a-except-2005.ads, a-except.adb, a-except.ads,
2392         a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
2393         a-exextr.adb, a-filico.ads, a-finali.ads,
2394         a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
2395         a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
2396         a-sequio.ads, a-strbou.ads, a-strfix.adb,
2397         checks.adb, exp_ch3.adb, exp_ch4.adb,
2398         exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
2399         exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
2400         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
2401         exp_dbug.ads, exp_disp.adb, exp_dist.adb,
2402         exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
2403
2404 2008-03-24  Robert Dewar  <dewar@adacore.com>
2405
2406         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
2407         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
2408         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
2409         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
2410         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
2411         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
2412         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
2413         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
2414         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
2415         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
2416         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
2417         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
2418         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
2419         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
2420         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
2421         double spaced if it fits on one line and otherwise single spaced.
2422
2423 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2424
2425         PR documentation/15479
2426         * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
2427         (doc/gnat_ugn_unw.texi): ... this, and adjusted.
2428         (doc/gnat_ugn.info): Renamed from ...
2429         (doc/gnat_ugn_unw.info): ... this.
2430         (doc/gnat_ugn.dvi): Renamed from ...
2431         (doc/gnat_ugn_unw.dvi): ... this.
2432         (doc/gnat_ugn.pdf): Renamed from ...
2433         (doc/gnat_ugn_unw.pdf): ... this.
2434         (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
2435         Adjusted.
2436         * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
2437         unconditionally to gnat_ugn.info.  Fix cross references to the
2438         GNAT Reference Manual.  Convert links to the GCC, GDB, Emacs,
2439         and GNU make manuals to be proper texinfo links.
2440         * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
2441
2442 2008-03-21  Olivier Hainque  <hainque@adacore.com>
2443
2444         * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
2445         ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
2446
2447 2008-03-21  Eric Botcazou  <ebotcazou@adacore.com>
2448
2449         * trans.c (addressable_p): Add notes on addressability issues.
2450
2451 2008-03-21  Olivier Hainque  <hainque@adacore.com>
2452             Ed Schonberg  <schonberg@adacore.com>
2453
2454         * trans.c (addressable_p): Accept COND_EXPR when both arms
2455         are addressable.
2456         (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
2457         (call_to_gnu): Do not use name reference in the error message
2458         for a misaligned by_reference_parameter. The actual may be a
2459         general expression.
2460
2461 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
2462
2463         * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
2464
2465 2008-03-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2466
2467         * gnat_rm.texi (Implementation Defined Characteristics)
2468         (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
2469         appropriate.
2470         * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
2471         (Switches for gnatchop, Installing a library): Likewise.
2472
2473 2008-03-10  Eric Botcazou  <ebotcazou@adacore.com>
2474
2475         * trans.c (emit_range_check): Do not emit the check if the base type
2476         of the expression is the type against which its range must be checked.
2477
2478 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
2479
2480         * decl.c (maybe_pad_type): Use value_factor_p.
2481
2482 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
2483
2484         * lang.opt (nostdlib): Move around.
2485         * misc.c (gnat_handle_option): Fix formatting.
2486         (gnat_dwarf_name): Move around.
2487         * trans.c (Case_Statement_to_gnu): Fix formatting.
2488         (gnat_to_gnu): Likewise.
2489         * utils.c (aggregate_type_contains_array_p): Likewise.
2490         (create_subprog_decl): Likewise.
2491
2492 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
2493
2494         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
2495         bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
2496
2497 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
2498
2499         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
2500         BIGGEST_ALIGNMENT when capping the alignment of records with
2501         strict alignment and size clause.
2502
2503 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
2504
2505         * lang-specs.h: Pass -gnatwa if -Wall is passed.
2506         * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
2507         and -Wuninitialized.
2508         (gnat_post_options): Clear warn_unused_parameter.
2509
2510 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
2511
2512         * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
2513         aligned bit-fields, bumping the alignment of the record type if deemed
2514         profitable.
2515         (value_factor_p): Return false instead of 0.
2516
2517 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
2518
2519         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
2520         for scalar types with small alignment.
2521
2522 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
2523
2524         * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
2525         from that of the front-end's end label.
2526         (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
2527         from that of the loop label.
2528
2529 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
2530
2531         * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
2532         comment for the packed array type case.
2533         * utils.c (build_template): Use a loop to strip padding or
2534         containing records for justified modular types.
2535
2536 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
2537
2538         * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
2539         large alignments specified for types.
2540         (validate_alignment): Minor cleanup.
2541
2542 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
2543
2544         * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
2545         (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
2546         the component for packing, if possible, as well as if a component
2547         size clause is specified.
2548         <E_Record_Subtype>: For an array type used to implement a packed
2549         array, get the component type from the original array type.
2550         Try to get a smaller form of the component for packing, if possible,
2551         as well as if a component size clause is specified.
2552         (round_up_to_align): New function.
2553         (make_packable_type): Add in_record parameter.
2554         For a padding record, preserve the size.  If not in_record and the
2555         size is too large for an integral mode, attempt to shrink the size
2556         by lowering the alignment.
2557         Ditch the padding bits of the last component.
2558         Compute sizes and mode manually, and propagate the RM size.
2559         Return a BLKmode record type if its size has shrunk.
2560         (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
2561         Use Original_Array_Type to retrieve the type in case of an error.
2562         Adjust call to make_packable_type.
2563         (gnat_to_gnu_field): Likewise.
2564         (concat_id_with_name): Minor tweak.
2565         * trans.c (larger_record_type_p): New predicate.
2566         (call_to_gnu): Compute the nominal type of the object only if the
2567         parameter is by-reference.  Do the conversion actual type -> nominal
2568         type if the nominal type is a larger record.
2569         (gnat_to_gnu): Do not require integral modes on the source type to
2570         avoid the conversion for types with identical names.
2571         (addressable_p): Add gnu_type parameter.  If it is specified, do not
2572         return true if the expression is not addressable in gnu_type.
2573         Adjust recursive calls.
2574         * utils.c (finish_record_type): Remove dead code.
2575
2576 2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
2577
2578         PR ada/35186
2579         * decl.c (maybe_pad_type): Avoid padding an integral type when
2580         bumping its alignment is sufficient.
2581
2582 2008-03-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2583
2584         * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
2585         * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
2586         statement.
2587         * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
2588         gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
2589         sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
2590         code output strings.
2591         * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
2592         system-vms_64.ads: Fix typos in ada source code comments.
2593         * sinfo-cn.adb: Remove incomplete sentence.
2594
2595         PR documentation/15479
2596         * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
2597
2598 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
2599
2600         PR ada/22255
2601         * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
2602
2603 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
2604
2605         PR ada/34799
2606         * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
2607         that underlying type is present.
2608
2609 2008-02-26  Tom Tromey  <tromey@redhat.com>
2610
2611         * misc.c (internal_error_function): Remove test of
2612         USE_MAPPED_LOCATION.
2613         * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
2614         (Sloc_to_locus): Remove old location code.
2615
2616 2008-02-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2617
2618         * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
2619         `i.e.' by adding comma or `@:' as appropriate.
2620         * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
2621         plain characters `C', use `@samp{C}'.
2622         * gnat_ugn.texi (File Naming Rules, About gnatkr)
2623         (Krunching Method): Likewise.
2624
2625         * gnat_ugn.texi (Conventions): List environment variables and
2626         metasyntactic variables.
2627         (Compiling Programs): Fix notation of metasyntactic variables.
2628         Add @file where appropriate.  Use @file for file extensions,
2629         @samp for strings.
2630         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
2631         instead of @file, @env instead of @code.
2632
2633 2008-02-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2634
2635         PR documentation/15479
2636         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
2637         and `...' with `@dots{}' or `@enddots{}'.
2638
2639         PR documentation/15479
2640         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
2641         use @command instead of @code, @option instead of @samp or @code,
2642         @code instead of @var, @samp instead of @file.
2643
2644         PR documentation/15479
2645         * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
2646         in Makefile rules, by using `&&' rather than `;'.
2647
2648 2008-02-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2649
2650         PR documentation/15479
2651         * gnat_ugn.texi: In non-code, avoid space before colon.
2652         (Regular Expressions in gnatfind and gnatxref): Fix indentation.
2653         (Examples of gnatxref Usage): Use @command{vi} instead of
2654         @file{vi}.
2655         (Character Set Control): Do not use @code for UTF-8.
2656         (Validity Checking): Fix typo "NaNs" instead of "NaN's".  Do not
2657         use @code for IEEE.
2658         * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
2659         sample.
2660         * gnat_rm.texi, gnat_ugn.texi: Fix typos.  Bump copyright years.
2661
2662 2008-02-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
2663
2664         PR ada/35143
2665         * env.c: Add __rtems__ to if defined.
2666         * s-osinte-rtems.adb: Add To_Target_Priority.  Fix formatting.
2667         * s-osinte-rtems.ads: Add To_Target_Priority prototype and
2668         PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants.  Add
2669         pragma Convention as required.
2670         * gsocket.h: Make compile in and out of RTS.
2671         * Makefile.in: Add system-rtems.ads.  Build DEC extensions.
2672         Use g-soccon-rtems.ads.
2673         * g-soccon-rtems.ads, system-rtems.ads: New files.
2674
2675 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2676
2677         PR other/35107
2678         * Make-lang.in (gnat1): Add $(GMPLIBS).
2679
2680 2008-01-26  Eric Botcazou  <ebotcazou@adacore.com>
2681
2682         * decl.c (components_to_record): Improve comment.
2683
2684 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
2685
2686         * decl.c (components_to_record): Do not reuse the empty union type
2687         if there is a representation clause on the record.
2688         * trans.c (addressable_p): Return true for INTEGER_CST.
2689
2690 2008-01-21  Eric Botcazou  <ebotcazou@adacore.com>
2691
2692         * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
2693         in pointer arithmetics.
2694         * utils2.c (build_allocator): Likewise.
2695
2696 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
2697
2698         * utils.c (build_function_stub): Properly build the call expression.
2699
2700 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
2701
2702         * decl.c (gnat_to_gnu_entity) <object>: Process renamings
2703         before converting the expression to the type of the object.
2704         * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
2705         Stabilize constructors for special wrapping types.
2706
2707 2008-01-13  Eric Botcazou  <ebotcazou@adacore.com>
2708
2709         * trans.c (call_to_gnu): Invoke the addressable_p predicate only
2710         when necessary.  Merge some conditional statements.  Update comments.
2711         Rename unchecked_convert_p local variable to suppress_type_conversion.
2712         Do not suppress conversions in the In case.
2713         (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
2714         into account on non strict-alignment platforms.
2715
2716 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
2717
2718         * utils.c (aggregate_type_contains_array_p): New predicate.
2719         (create_field_decl): In a packed record, force byte alignment
2720         for fields without specified position that contain an array.
2721
2722 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
2723
2724         * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
2725
2726 2008-01-10  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
2727
2728         PR ada/34466
2729         * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
2730         sysconf call.
2731         (bit_field): New packed boolean type used by cpu_set_t.
2732         (cpu_set_t): New type corresponding to the C type with
2733         the same name. Note that on the Ada side we use a bit
2734         field array for the affinity mask. There is not need
2735         for the C macro for setting individual bit.
2736         (pthread_setaffinity_np): New imported routine.
2737
2738 2008-01-03  Tero Koskinen  <tero.koskinen@iki.fi>
2739
2740         PR ada/34647
2741         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
2742         on OpenBSD as is done on other BSD systems.
2743
2744         PR ada/34645
2745         * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
2746         getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
2747         I/O.
2748
2749         PR ada/34644
2750         * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
2751         clearenv().
2752
2753         PR ada/34646
2754         * init.c (__gnat_error_handler, __gnat_install_handler,
2755         __gnat_init_float): Define for OpenBSD.
2756
2757         * initialize.c (__gnat_initialize): Define for OpenBSD.
2758
2759 2007-12-27  Samuel Tardieu  <sam@rfc1149.net>
2760
2761         PR ada/34553
2762         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
2763         instead of mktemp() or tmpnam() on NetBSD.
2764
2765 2007-12-23  Eric Botcazou  <ebotcazou@adacore.com>
2766
2767         * trans.c (call_to_gnu): Make the temporary for non-addressable
2768         In parameters passed by reference.
2769         (addressable_p): Return true for STRING_CST and CALL_EXPR.
2770
2771 2007-12-19  Robert Dewar  <dewar@adacore.com>
2772
2773         * g-expect-vms.adb, g-expect.adb, s-poosiz.adb: 
2774         Add pragma Warnings (Off) for unassigned IN OUT arguments
2775
2776         * sem_warn.adb (Output_Reference): Suppress messages for internal names
2777         (Check_References): Extensive changes to tune up warnings
2778         (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
2779         (Has_Pragma_Unmodifed_Check_Spec): New function
2780         (Check_References): Implement pragma Unmodified
2781         (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
2782
2783         * par-prag.adb: Dummy entry for pragma Unmodified
2784
2785         * sem_prag.adb: Implement pragma Unmodified
2786
2787         * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
2788         (Proc_Next_Component_Or_Discriminant): Fix typo.
2789         Update comments.
2790
2791         * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
2792         Unmodified.
2793         (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
2794         because the former already takes care of discarding the result.
2795         (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
2796         Add comment.
2797
2798         * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
2799
2800 2007-12-19  Eric Botcazou  <ebotcazou@adacore.com>
2801
2802         * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
2803         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
2804         system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
2805         system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
2806         system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
2807         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
2808         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
2809         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
2810         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
2811         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
2812         (Dynamic_Trampolines_Used): Delete.
2813
2814         * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
2815         Turn on stack probing mechanism on LynxOS.
2816
2817 2007-12-19  Bob Duff  <duff@adacore.com>
2818
2819         * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
2820         the resulting tail recursion by hand. This prevents running out of
2821         memory on deeply nested concatenations, since Field2 is where the left
2822         operand of concatenations is stored.
2823         Fix bug (was returning OK_Orig in some cases). Fix return subtype to
2824         clarify that it can only return OK or Abandon.
2825
2826         * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
2827         operand by iteration, in order to avoid running out of memory on
2828         deeply-nested concatenations. Use the Parent pointer to get back up the
2829         tree.
2830         (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
2831          Resolve_Op_Concat_Rest): New procedures split out of
2832         Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
2833         clearer.
2834
2835         * checks.adb (Remove_Checks): Use Traverse_Proc instead of
2836         Traverse_Func, because the former already takes care of discarding the
2837         result.
2838
2839         * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
2840         because the former already takes care of discarding the result.
2841         (Remove_Warning_Messages): Use appropriate subtype for Status and
2842         Discard 
2843
2844 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
2845
2846         * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
2847         discriminants forces expansion of the aggregate into assignments.
2848         (Init_Record_Controller):  If the type of the aggregate is untagged and
2849         is not inherently limited, the record controller is not limited either.
2850
2851 2007-12-19  Robert Dewar  <dewar@adacore.com>
2852
2853         * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
2854         handling compile time known size of record or array (case of front end
2855         layout active, e.g. in GNAAMP).
2856
2857 2007-12-19  Javier Miranda  <miranda@adacore.com>
2858
2859         * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
2860         that forces the construction of static dispatch tables in case of
2861         record subtypes.
2862
2863 2007-12-19  Robert Dewar  <dewar@adacore.com>
2864
2865         * exp_ch9.adb (Null_Statements): Moved to library level
2866         (Trivial_Accept_OK): New function
2867         (Expand_Accept_Declaration): Use Trivial_Accept_OK
2868         (Expand_N_Accept_Statement): Use Trivial_Accept_OK
2869
2870 2007-12-19  Robert Dewar  <dewar@adacore.com>
2871
2872         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
2873         in complex case where array is Volatile.
2874
2875 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
2876
2877         * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
2878         properly the Ada2005 rules concerning when the current instance of a
2879         record type is aliased.
2880
2881 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
2882
2883         * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
2884         mangled declaration
2885         (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
2886         declarations.
2887         (P_Variant_Part): Cleaner patch for parenthesized discriminant
2888
2889 2007-12-19  Vincent Celier  <celier@adacore.com>
2890
2891         * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
2892         package is not known
2893
2894         * prj-attr.ads (Unknown_Package): New constant
2895         Do not crash when an unknown package is in several projects
2896
2897         * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
2898         ignored
2899
2900         * prj-nmsc.adb (Check): Remove obsolete code related to no longer
2901         existing package Language_Processing.
2902
2903 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
2904             Gary Dismukes  <dismukes@adacore.com>
2905             Samuel Tardieu  <sam@rfc1149.net>
2906
2907         PR ada/15803, ada/15805
2908         * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
2909         illegal access subtypes when there is a constrained partial view.
2910         (Check_For_Premature_Usage): New procedure inside
2911         Access_Subprogram_Declaration for checking that an access-to-subprogram
2912         type doesn't reference its own name within any formal parameters or
2913         result type (including within nested anonymous access types).
2914         (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
2915         (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
2916         context is an access_to_variable, the expression cannot be an
2917         access_to_constant.
2918
2919 2007-12-19  Bob Duff  <duff@adacore.com>
2920
2921         * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
2922         (Analyze_Concatenation): Use iteration instead of recursion in order
2923         to avoid running out of stack space for deeply nested concatenations.
2924
2925 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
2926             Gary Dismukes  <dismukes@adacore.com>
2927
2928         * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
2929         whose renamed entity is a subprogram that requires overriding.
2930         (Premature_Usage): Test for the case of N_Full_Type_Declaration when
2931         issuing an error for premature usage and issue a message that says
2932         'type' rather than 'object'.
2933
2934 2007-12-19  Gary Dismukes  <dismukes@adacore.com>
2935
2936         PR ada/34149
2937         * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
2938         presence of a statically tagged operand (Present (Static_Tag)) with
2939         test for Indeterm_Ancestor_Call when determining whether to propagate
2940         the static tag to tag-indeterminate operands (which forces dispatching
2941         on such calls).
2942         (Check_Controlling_Formals): Ada2005, access parameters can have
2943         defaults.
2944         (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
2945         not insert subprogram in list of primitive operations if already there.
2946
2947 2007-12-19  Tristan Gingold  <gingold@adacore.com>
2948
2949         * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
2950         global variable.
2951
2952 2007-12-19  Thomas Quinot  <quinot@adacore.com>
2953
2954         Part of PR ada/33688
2955         * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
2956         datagram info on Linux.
2957
2958 2007-12-19  Vincent Celier  <celier@adacore.com>
2959
2960         * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
2961         that the source path name is always found in the dependencies.
2962
2963 2007-12-19  Robert Dewar  <dewar@adacore.com>
2964
2965         * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
2966         Fix name of Wide_Wide_Latin_1/9 file names
2967         Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
2968         Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
2969         Add missing documentation for Ada.Command_Line.Response_File
2970         Update list of warning letters for Warnings pragma
2971         Add documentation for pragma Unmodified
2972
2973 2007-12-19  Samuel Tardieu  <sam@rfc1149.net>
2974
2975         * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
2976
2977 2007-12-17  Arnaud Charlet  <charlet@adacore.com>
2978
2979         * s-vxwork-alpha.ads: Removed, no longer used.
2980
2981 2007-12-15  Jakub Jelinek  <jakub@redhat.com>
2982
2983         * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
2984
2985 2007-12-13  Samuel Tardieu  <sam@rfc1149.net>
2986
2987         PR ada/34360
2988         * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
2989         mlib-tgt-specific.adb.
2990
2991 2007-12-13  Bob Duff  <duff@adacore.com>
2992
2993         * trans.c (Attribute_to_gnu): Check for violations of the
2994         No_Implicit_Dynamic_Code restriction. This checking used to be done in
2995         the front end, but is moved here so we can make it more accurate.
2996
2997 2007-12-13  Pascal Obry  <obry@adacore.com>
2998
2999         * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
3000          version is provided for older GNU/Linux distribution not
3001          supporting thread affinity sets.
3002         
3003         * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
3004         call.
3005         (bit_field): New packed boolean type used by cpu_set_t.
3006         (cpu_set_t): New type corresponding to the C type with
3007         the same name. Note that on the Ada side we use a bit
3008         field array for the affinity mask. There is not need
3009         for the C macro for setting individual bit.
3010         (pthread_setaffinity_np): New imported routine.
3011         
3012         * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
3013         no null.
3014         (Create_Task): Set the processor affinity mask if information
3015         is present.
3016         
3017         * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
3018         
3019 2007-12-13  Robert Dewar  <dewar@adacore.com>
3020
3021         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, 
3022         s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads, 
3023         s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads, 
3024         s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
3025         s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
3026         s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads, 
3027         s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads, 
3028         i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
3029         for subprogram pointers.
3030
3031         * g-ctrl_c.adb: New file.
3032
3033         * g-ctrl_c.ads (Install_Handler): New body.
3034
3035         * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
3036         instead of obsolete function Is_Always_Inlined.
3037         (Freeze_Entity): check for tagged type in imported C subprogram
3038         (Freeze_Entity): check for 8-bit boolean in imported C subprogram
3039         (Freeze_Entity): check for convention Ada subprogram pointer in
3040         imported C subprogram.
3041         (Freeze_Fixed_Point_Type): In the case of a base type where the low
3042         bound would be chopped off and go from negative to zero, force
3043         Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
3044         bound) so that the size computation for the base type will take
3045         negative values into account.
3046
3047 2007-12-13  Eric Botcazou  <ebotcazou@adacore.com>
3048             Bob Duff  <duff@adacore.com>
3049             Tristan Gingold  <gingold@adacore.com>
3050
3051         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
3052         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, 
3053         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
3054         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
3055         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, 
3056         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
3057         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
3058         system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
3059         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
3060         system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
3061         system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
3062         (Always_Compatible_Rep): New flag to control trampolines globally.
3063         (Dynamic_Trampolines_Used): New flag for implementing the
3064         No_Implicit_Dynamic_Code restriction more correctly (not yet used,
3065         and not yet set correctly for some targets).
3066
3067         * s-taprop-vxworks.adb: Use stack limit method of stack checking.
3068         Simply indirectly call s-stchop when a task is created.
3069
3070         * ali.ads: 
3071         New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
3072         appears as an argument (entries A) in an ALI file.
3073
3074         * fe.h (Stack_Check_Limits): Declare new target parameter.
3075         (Check_Implicit_Dynamic_Code_Allowed): New procedure.
3076
3077         * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
3078         This variable is declared in C to be sure not subject to elaboration
3079         code.
3080         (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
3081         Storage_Error.
3082
3083         * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
3084         (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
3085
3086         * s-stchop.ads: Add comments.
3087
3088         * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
3089         limit method of stack checking.
3090
3091         * s-stchop-limit.ads: New file.
3092
3093 2007-12-13  Robert Dewar  <dewar@adacore.com>
3094
3095         * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb, 
3096         a-cihama.adb, g-awk.adb, 
3097         s-inmaop-posix.adb: Update handling of assigned value/unreferenced
3098         warnings
3099
3100         * exp_smem.adb: Update handling of assigned value/unreferenced warnings
3101
3102         * sem.adb: Update handling of assigned value/unreferenced warnings
3103
3104         * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
3105
3106         * lib-xref.ads: Improve documentation for k xref type
3107
3108         * lib-xref.adb: 
3109         Update handling of assigned value/unreferenced warnings
3110         (Generate_Reference): Warning for reference to entity for which a
3111         pragma Unreferenced has been given should be unconditional.
3112         If the entity is a discriminal, mark the original
3113         discriminant as referenced.
3114
3115         * sem_warn.ads, sem_warn.adb
3116         (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
3117         no entities referenced in package
3118         (Check_One_Unit): Don't give message about no entities referenced in
3119         a package if a pragma Unreferenced has appeared.
3120         Handle new warning flag -gnatw.a/-gnatw.A
3121         Update handling of assigned value/unreferenced warnings
3122
3123         * atree.h: Add flags up to Flag247
3124         (Flag231): New macro.
3125
3126 2007-12-13  Jose Ruiz  <ruiz@adacore.com>
3127
3128         * adaint.h: (__gnat_plist_init): Not defined for RTX.
3129
3130         * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
3131         RTX systems.
3132
3133         * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
3134         (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
3135         EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
3136         GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
3137
3138         * mingw32.h: 
3139         Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
3140
3141         * sysdep.c (winflush_function for RTX): Procedure that does nothing
3142         since we only have problems with Windows 95/98, which are not
3143         supported by RTX.
3144         (__gnat_ttyname): Return the empty string on Nucleus, just as
3145         done on vxworks.
3146
3147 2007-12-13  Robert Dewar  <dewar@adacore.com>
3148
3149         * a-textio.adb, a-textio.ads: 
3150         Extensive changes to private part for wide character encoding
3151
3152         * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
3153         (Look_Ahead): Fix mishandling of encoded sequences
3154         Move declaration of Wch_Con to private part (should not be visible)
3155
3156         * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
3157         UTF-8. Probably this is never used, but if it is, brackets is
3158         clearly correct.
3159
3160         * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
3161         setting wide character encoding for no main program case and when
3162         encoding is specified using -W?
3163         Initialize stack limit of environment task if stack limit method of
3164         stack checking is enabled.
3165         (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
3166         (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
3167         (Get_Main_Unit_Name): New function.
3168         (Gen_Adainit_Ada): Add call to main program for .NET when needed.
3169         (Gen_Output_File): Set Bind_Main_Program to True for .NET
3170
3171         * bindusg.adb: Add line for -Wx switch
3172
3173         * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
3174         Add comments
3175         Add new useful constant WC_Longest_Sequences
3176
3177         * switch-b.adb: Clean up handling of -Wx switch
3178         For -gnatWx, set Wide_Character_Encoding_Method_Specified
3179
3180         * switch-c.adb: -gnatg activates warning on assertion errors
3181         For -gnatWx, set Wide_Character_Encoding_Method_Specified
3182
3183         * s-wchcon.adb: (Is_Start_Of_Encoding): New function
3184
3185 2007-12-13  Robert Dewar  <dewar@adacore.com>
3186             Ed Schonberg  <schonberg@adacore.com>
3187
3188         * a-ngcoty.adb: New pragma Fast_Math
3189
3190         * opt.adb: New pragma Fast_Math
3191
3192         * par-prag.adb: 
3193         Add Implemented_By_Entry to the list of pragmas which do not require any
3194         special processing.
3195         (Favor_Top_Level): New pragma.
3196         New pragma Fast_Math
3197
3198         * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
3199         (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
3200         Expand_Allocator_Expression): Take into account VM_Target
3201         (Expand_Attribute, case 'Identity):  Handle properly the case where
3202         the prefix is a task interface.
3203         New pragma Fast_Math
3204
3205         * par.adb (Next_Token_Is): New function
3206         (P_Pragma): Add Skipping parameter
3207         (U_Left_Paren): New procedure
3208         (U_Right_Paren): New procedure
3209         New pragma Fast_Math
3210
3211         * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
3212         subunit
3213         New pragma Fast_Math
3214
3215         * sem_prag.adb: Add significance value to table Sig_Flag for pragma
3216         Implemented_By_Entry.
3217         (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
3218         (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
3219         items, since it can apply to more than one overloadable entity. Set
3220         new flag Has_Pragma_Inline_Always for Inline_Always case.
3221         (Analyze_Pragma, case Complex_Representation): Improve error message.
3222         (Analyze_Pragma, case Assert): When assertions are disabled build the
3223         rewritten code with Sloc of expression rather than pragma, so new
3224         warning about failing is not deleted.
3225         (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
3226         protected types and update error message to reflect that. Test whether
3227         the protected type is allowed for the pragma (an error is issued if the
3228         type has any entries, or components that do not have preelaborable
3229         initialization).
3230         New pragma Fast_Math
3231         (Analyze_Pragma, case No_Return): Handle generic instance
3232
3233         * snames.h, snames.ads, snames.adb: 
3234         Add new predefined name for interface primitive _Disp_Requeue.
3235         New pragma Fast_Math
3236
3237         * a-tags.ads, a-tags.adb: New calling sequence for
3238         String_To_Wide_[Wide_]String
3239         (Secondary_Tag): New subprogram.
3240
3241         * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
3242         from Exp_Attr
3243         New calling sequence for String_To_Wide_[Wide_]String
3244         (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
3245         the use of the secondary stack for image routines.
3246
3247         * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
3248         calling sequence for String_To_Wide_[Wide_]String
3249
3250         * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
3251         Ada 95 mode
3252         (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
3253         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3254
3255         * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
3256         (P_Formal_Part): Use Skipping parameter in P_Pragma call
3257         to improve error recovery
3258
3259         * par-util.adb (Next_Token_Is): New function
3260         (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
3261
3262         * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
3263         semicolon if missing
3264         (P_Pragma): Implement new Skipping parameter
3265         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3266         Fix location of flag for unrecognized pragma message
3267
3268         * par-tchk.adb (U_Left_Paren): New procedure
3269         (U_Right_Paren): New procedure
3270
3271 2007-12-13  Geert Bosch  <bosch@adacore.com>
3272
3273         * a-tifiio.adb: 
3274         (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
3275         the second or later Scaled_Divide would omit leading zeroes,
3276         resulting in too few digits produced and a Layout_Error as result.
3277         (Put): Initialize Pos.
3278
3279 2007-12-13  Robert Dewar  <dewar@adacore.com>
3280
3281         atree.ads, atree.adb (Flag231..Flag247): New functions
3282         (Set_Flag231..Set_Flag247): New procedures
3283         (Basic_Set_Convention): Rename Set_Convention to be
3284         Basic_Set_Convention
3285         (Nkind_In): New functions
3286         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3287
3288         * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
3289         instead
3290          of obsolete function Is_Always_Inlined
3291         (Register_Predefined_DT_Entry): Initialize slots of the second
3292         secondary dispatch table.
3293         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3294         (Expand_N_Function_Call): Remove special provision for stack checking.
3295
3296   &nb