OSDN Git Service

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