OSDN Git Service

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