OSDN Git Service

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