OSDN Git Service

2009-04-07 Robert Dewar <dewar@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2009-04-07  Robert Dewar  <dewar@adacore.com>
2
3         * checks.adb:
4         Remove Assume_Valid parameter from In_Subrange_Of calls
5         
6         * sem_eval.adb:
7         (Is_Subrange_Of): Remove Assume_Valid parameter, not needed
8         (Is_In_Range): Remove incorrect use of Assume_Valid
9         (Is_Out_Of_Range): Remove incorrect use of Assume_Valid
10         
11         * sem_eval.ads:
12         (Is_Subrange_Of): Remove Assume_Valid parameter, not needed
13         (Is_In_Range): Documentation cleanup
14         (Is_Out_Of_Range): Documentation cleanup
15
16         * gnat_rm.texi:
17         Add documentation for Assume_No_Invalid_Values pragma
18
19         * sem_ch12.adb: Minor reformatting
20
21         * sem_ch6.adb: (Check_Conformance): Avoid cascaded errors
22
23         * sem_prag.adb: Improve error message.
24
25         * gnatchop.adb, osint.ads, sinput.adb, sinput.ads, styleg.adb:
26         LF/CR no longer recognized as line terminator
27
28         * switch.ads: Minor documentation improvement
29
30         * vms_data.ads: Minor reformatting
31
32 2009-04-07  Robert Dewar  <dewar@adacore.com>
33
34         * checks.adb (Determine_Range): Add Assume_Valid parameter
35         
36         * checks.ads (Determine_Range): Add Assume_Valid parameter
37         
38         * errout.adb (Error_Msg_NEL): Use Suppress_Loop_Warnings rather than
39          Is_Null_Loop to suppress warnings in a loop body.
40         
41         * exp_ch4.adb:
42         (Rewrite_Comparison): Major rewrite to accomodate invalid values
43         
44         * exp_ch5.adb:
45         (Expand_N_Loop_Statement): Delete loop known not to execute
46         
47         * opt.ads:
48         (Assume_No_Invalid_Values): Now set to False, and as documented, this
49          fully enables the proper handling of invalid values.
50         
51         * sem_attr.adb:
52         New calling sequence for Is_In_Range
53         
54         * sem_ch5.adb:
55         (Analyze_Iteration_Scheme): Accomodate possible invalid values
56          in determining if a loop range is null.
57         
58         * sem_eval.adb:
59         (Is_In_Range): Add Assume_Valid parameter
60         (Is_Out_Of_Range): Add Assume_Valid_Parameter
61         (Compile_Time_Compare): Major rewrite to accomodate invalid values and
62          also to do more accurate and complete range analysis, catching more
63          cases.
64         
65         * sem_eval.ads:
66         (Is_In_Range): Add Assume_Valid parameter
67         (Is_Out_Of_Range): Add Assume_Valid_Parameter
68         
69         * sem_util.adb:
70         New calling sequence for Is_In_Range
71         
72         * sinfo.adb:
73         (Suppress_Loop_Warnings): New flag
74         
75         * sinfo.ads:
76         (Is_Null_Loop): Update documentation
77         (Suppress_Loop_Warnings): New flag
78         
79         * gnat_ugn.texi: Document -gnatB switch
80
81 2009-04-07  Arnaud Charlet  <charlet@adacore.com>
82
83         * gnatvsn.ads: Bump version number.
84
85 2009-04-07  Thomas Quinot  <quinot@adacore.com>
86
87         * exp_ch3.adb: Minor rewording (comments)
88
89 2009-04-07  Robert Dewar  <dewar@adacore.com>
90
91         * exp_disp.adb: Minor reformatting
92
93 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
94
95         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Test the
96         underlying type.
97         * gcc-interface/trans.c (lvalue_required_p): Likewise.
98
99 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
100
101         * gcc-interface/trans.c (Attribute_to_gnu) <Max_Size_In_Storage_Elmts>:
102         Do not convert the result.  Remove obsolete comment.
103
104 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
105
106         * gcc-interface/trans.c (establish_gnat_vms_condition_handler): Clear
107         DECL_CONTEXT.
108         (Subprogram_Body_to_gnu): Fix pasto.
109
110 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
111
112         * gcc-interface/gigi.h (standard_datatypes): Remove ADT_void_type_decl.
113         (void_type_decl_node): Remove.
114         (init_gigi_decls): Likewise.
115         (gnat_install_builtins): Declare.
116         (record_builtin_type): Likewise.
117         (create_type_stub_decl): Likewise.
118         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Void>: Use void_type.
119         (gnat_to_gnu_entity) <E_Array_Type>: Make fat and thin pointer types
120         artificial.
121         <E_Array_Subtype>: Use the index types, not only their name, in the
122         record giving the names of the bounds, if any.
123         For a packed array type, make it artificial only if the base type
124         was artificial as well.  Remove redundant statement.
125         (gnat_to_gnu_entity) <E_Incomplete_Type>: Do not create TYPE_DECL for
126         dummy types.
127         Use create_type_stub_decl to build the TYPE_STUB_DECL of types.
128         (rest_of_type_decl_compilation_no_defer): Likewise.
129         * gcc-interface/misc.c (gnat_printable_name): Add missing guard.
130         * gcc-interface/utils.c (make_dummy_type): Always create TYPE_STUB_DECL
131         and use create_type_stub_decl to build it.
132         (gnat_pushdecl): Rewrite condition.
133         (gnat_install_builtins): Remove bogus declaration.
134         (record_builtin_type): New function.
135         (finish_record_type): Use create_type_stub_decl to build TYPE_STUB_DECL
136         of types.
137         (create_type_stub_decl): New function.
138         (create_type_decl): Assert that the type is not dummy.  If the type
139         hasn't been named yet, equate the TYPE_STUB_DECL to the created node.
140         (build_vms_descriptor32): Do not create TYPE_DECL for the descriptor.
141         (build_vms_descriptor): Likewise.
142         (init_gigi_decls): Delete and move bulk of code to...
143         * gcc-interface/trans.c (gigi): ...here.  Use record_builtin_type.
144         (emit_range_check): Add gnat_node parameter.
145         (emit_index_check): Likewise.
146         (emit_check): Likewise.
147         (build_unary_op_trapv): Likewise.
148         (build_binary_op_trapv): Likewise.
149         (convert_with_check): Likewise.
150         (Attribute_to_gnu): Adjust calls for above changes.
151         (call_to_gnu): Likewise.
152         (gnat_to_gnu): Likewise.
153         (assoc_to_constructor): Likewise.
154         (pos_to_constructor): Likewise.
155         (Sloc_to_locus): Set BUILTINS_LOCATION for Standard_Location nodes.
156         (process_type): Do not create TYPE_DECL for dummy types.
157
158 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
159
160         * gcc-interface/decl.c (gnat_to_gnu_entity): Reorder local variables.
161         * gcc-interface/trans.c: Fix formatting throughout.  Fix comments.
162         * gcc-interface/utils.c: Fix comments.
163
164 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
165
166         * gcc-interface/decl.c (compile_time_known_address_p): Rewrite and
167         move around.
168         (gnat_to_gnu_type): Move around.
169         (get_unpadded_type): Likewise.
170         * gcc-interface/utils.c (update_pointer_to): Use synthetic macro.
171         Tidy comments.
172
173 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
174
175         * gcc-interface/trans.c (check_for_eliminated_entity): New function.
176         (Attribute_to_gnu): Invoke it for Access- and Address-like attributes.
177         (call_to_gnu): Invoke it instead of manually checking.
178
179 2009-04-04  Eric Botcazou  <ebotcazou@adacore.com>
180
181         * gcc-interface/utils.c (finish_record_type): Force structural equality
182         checks if the record type is discriminated.
183
184 2009-03-31  Eric Botcazou  <ebotcazou@adacore.com>
185
186         * system-linux-alpha.ads (Functions_Return_By_DSP): Remove.
187         * system-linux-mips.ads (Functions_Return_By_DSP): Likewise.
188         * system-linux-mipsel.ads (Functions_Return_By_DSP): Likewise.
189         * system-linux-s390.ads (Functions_Return_By_DSP): Likewise.
190         * system-linux-s390x.ads (Functions_Return_By_DSP): Likewise.
191         * system-linux-sparc.ads (Functions_Return_By_DSP): Likewise.
192         * system-linux-sparcv9.ads (Functions_Return_By_DSP): Likewise.
193
194 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
195
196         * gcc-interface/decl.c (maybe_pad_type): Use TREE_OVERFLOW instead
197         of TREE_CONSTANT_OVERFLOW.
198
199 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
200
201         PR rtl-optimization/323
202         * gcc-interface/misc.c (gnat_post_options): Set
203         flag_excess_precision_cmdline.  Give an error for
204         -fexcess-precision=standard for processors where the option is
205         significant.
206
207 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
208
209         PR c/39323
210         * gcc-interface/utils.c (create_field_decl): Use "unsigned int"
211         on bit_align.
212
213 2009-03-11  Olivier Hainque  <hainque@adacore.com>
214
215         * gcc-interface/trans.c (gnat_to_gnu) <case N_Slice>: In range
216         checks processing, remove unintended TREE_TYPE walk on index type.
217
218 2009-03-01  Eric Botcazou  <ebotcazou@adacore.com>
219
220         PR ada/39264
221         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do no
222         call make_packable_type on fat pointer types.
223         <E_Array_Subtype>: Likewise.
224         <E_Record_Subtype>: Call make_packable_type on all record types
225         except for fat pointer types.
226         (make_packable_type): Likewise.
227         (gnat_to_gnu_field): Likewise.
228
229 2009-02-28  Eric Botcazou  <ebotcazou@adacore.com>
230
231         * gcc-interface/Makefile.in (cygwin/mingw): Revert accidental
232         EH_MECHANISM change made on 2007-12-06.
233
234 2009-02-26  Andreas Schwab  <schwab@suse.de>
235
236         PR ada/39172
237         * Makefile.in (srcdir): Set to @top_srcdir@ instead of @srcdir@.
238         * gcc-interface/Makefile.in: Change all uses of $(srcdir),
239         $(fsrcdir) and $(fsrcpfx) to add ada subdir.
240         (AWK): Substitute.
241         (target_cpu_default): Substitute.
242
243 2009-02-25  Laurent GUERBY  <laurent@guerby.net>
244
245         PR ada/39221
246         * a-teioed.adb (Expand): Fix Result overflow.
247
248 2009-02-25  Laurent GUERBY <laurent@guerby.net>
249
250         * gcc-interface/Makefile.in: Fix multilib handling for
251         sparc64-linux.
252
253 2009-02-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
254
255         * s-oscons-tmplt.c [__osf__ && !_SS_MAXSIZE]: Undef AF_UNIX6.
256
257 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
258
259         * gcc-interface/misc.c (gnat_post_options): Turn off warn_psabi.
260
261 2009-02-16  Eric Botcazou  <ebotcazou@adacore.com>
262
263         * gcc-interface/deftarg.c: Remove.
264
265 2009-02-10  Olivier Hainque  <hainque@adacore.com>
266             Eric Botcazou  <ebotcazou@adacore.com>
267
268         * gcc-interface/decl.c (enum alias_set_op): New enumeration.
269         (copy_alias_set): Rename into...
270         (relate_alias_sets): ...this.  Add third parameter OP.  Retrieve the
271         underlying array of unconstrained arrays for the new type as well.
272         If the old and new alias sets don't conflict, make one a subset of
273         the other as per the OP parameter.
274         (gnat_to_gnu_entity): Adjust calls to copy_alias_set.
275         <E_Record_Type>: Do not copy the alias set for derived types.
276         For all types, make the alias set of derived types a superset of
277         that of their parent type.
278         (make_aligning_type): Adjust calls to copy_alias_set.
279         (make_packable_type): Likewise.
280         * gcc-interface/trans.c (gnat_to_gnu)<N_Validate_Unchecked_Conversion>:
281         Check for alias set conflict instead of strict equality to issue the
282         warning.
283
284 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
285
286         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
287         Set TYPE_NONALIASED_COMPONENT on the array type only if appropriate.
288         (copy_alias_set): Assert that arrays have the same aliasing settings.
289         (substitute_in_type) <ARRAY_TYPE>: Copy TYPE_NONALIASED_COMPONENT.
290
291 2009-02-08  Eric Botcazou  <ebotcazou@adacore.com>
292
293         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
294         Set TYPE_NONALIASED_COMPONENT on the array type.
295
296 2009-01-31  Laurent GUERBY  <laurent@guerby.net>
297
298         * gcc-interface/Makefile.in: Fix mipsel linux handling.
299
300 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
301
302         * gcc-interface/Makefile.in: Fix multilib handling for
303         powerpc64-linux.
304
305 2009-01-12  Eric Botcazou  <ebotcazou@adacore.com>
306
307         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Really strip
308         only useless conversions around renamed objects.
309
310 2009-01-11  Eric Botcazou  <ebotcazou@adacore.com>
311
312         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Put
313         the _Tag field before any discriminants in the field list.
314         (components_to_record): Remove obsolete comment.
315
316 2008-12-09  Jakub Jelinek  <jakub@redhat.com>
317
318         PR ada/38450
319         * gcc-interface/utils.c (finish_record_type): Use SET_TYPE_MODE.
320         * gcc-interface/decl.c (gnat_to_gnu_entity, make_aligning_type):
321         Likewise.
322
323 2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
324
325         PR bootstrap/38262
326         * gcc-interface/Make-lang.in (gnat1): Add BACKENDLIBS, remove GMPLIBS.
327
328 2008-11-29  Eric Botcazou  <ebotcazou@adacore.com>
329
330         PR ada/30827
331         * g-comver.adb (Ver_Len_Max): Fix inconsistency.
332
333 2008-11-27  Eric Botcazou  <ebotcazou@adacore.com>
334
335         * gcc-interface/decl.c: Fix various nits.
336
337 2008-11-20  Eric Botcazou  <ebotcazou@adacore.com>
338
339         * gcc-interface/utils.c (init_gigi_decls): Fix type mismatch.
340
341 2008-11-16  Eric Botcazou  <ebotcazou@adacore.com>
342
343         PR ada/38127
344         * gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Do not
345         special-case boolean types.  Propagate  the name.
346         * gcc-interface/targtyps.c: Tweak comment.
347
348 2008-11-15  Geert Bosch  <bosch@adacore.com>
349
350         * gcc-interface/trans.c (emit_check): Put back a final save_expr
351         to prevent exponential expansion during gimplification.
352
353 2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>
354
355         * gcc-interface/lang-specs.h: Expand -coverage and reorder switches.
356
357 2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>
358
359         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Force constants
360         initialized to a static constant to be statically allocated even if
361         they are of a padding type, provided the original type also has
362         constant size.
363
364 2008-11-15  Laurent Guerby  <laurent@guerby.net>
365
366         PR ada/37993
367         * gcc-interface/Makefile.in: Add multilib handling for x86_64
368         on darwin.
369         * system-darwin-x86_64.ads: New file.
370
371 2008-11-13  Olivier Hainque  <hainque@adacore.com>
372
373         * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>:
374         Turn Ada Pure on subprograms back into GCC CONST when eh constructs
375         are explicit to the middle-end.  Tidy.
376
377 2008-11-09  Eric Botcazou  <ebotcazou@adacore.com>
378
379         * gcc-interface/ada-tree.def (PLUS_NOMOD_EXPR): New tree code.
380         (MINUS_NOMOD_EXPR): Likewise.
381         * gcc-interface/utils2.c (build_binary_op) <PREINCREMENT_EXPR>: Make
382         unreachable.
383         <PLUS_NOMOD_EXPR>: New case.
384         <MINUS_NOMOD_EXPR>: Likewise.
385         * gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and-
386         assignment statement instead of using an increment operator.
387
388 2008-11-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
389
390         * system-irix-n64.ads: New file.
391         * gcc-interface/Makefile.in (mips-sgi-irix6*): Support O32 and N64
392         multilibs.
393
394 2008-11-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
395
396         PR ada/37681
397         * system-solaris-x86_64.ads: New file.
398         * gcc-interface/Makefile.in (*86-solaris2*): Support x86_64 multilib.
399
400 2008-11-07  Bechir Zalila  <bechir.zalila@gmail.com>
401             Eric Botcazou  <ebotcazou@adacore.com>
402
403         PR ada/34289
404         * lib.ads: (Enable_Switch_Storing): Declare.
405         * lib.adb: (Enable_Switch_Storing): New procedure.
406         * switch-c.adb (Scan_Front_End_Switches): Add support for -gnatea.
407         * make.adb: (Compile_Sources.Compile): Add -gnatea as first option.
408         (Display): Never display -gnatea
409         * gcc-interface/lang-specs.h: If -gnatea is present, pass -gnatez.
410
411 2008-11-07  Thomas Quinot  <quinot@adacore.com>
412
413         * gcc-interface/trans.c (Attribute_to_gnu, case Attr_Length): Check
414         for empty range in original base type, not converted result type.
415
416 2008-11-07  Geert Bosch  <bosch@adacore.com>
417
418         * gcc-interface/trans.c (build_binary_op_trapv): Convert arguments
419         and result for call to __gnat_mulv64.
420
421 2008-11-07  Eric Botcazou  <ebotcazou@adacore.com>
422
423         * gcc-interface/trans.c: Fix formatting nits.
424
425 2008-11-07  Geert Bosch  <bosch@adacore.com>
426
427         * gcc-interface/trans.c (build_binary_op_trapv): Avoid emitting
428         overflow check for constant result.
429
430 2008-11-07  Geert Bosch  <bosch@adacore.com>
431
432         * gcc-interface/trans.c (build_binary_op_trapv): Use more efficient
433         overflow check for addition/subtraction if neither operand is constant.
434
435 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
436
437         * gcc-interface/Makefile.in (SPARC/Solaris): Use a common set of
438         files for the target-dependent part of the runtime.
439         (SPARC/Linux): Likewise.
440
441 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
442
443         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Out_Parameter>: If not
444         optimizing, create a PARM_DECL pointing to the VAR_DECL for debugging
445         purposes.
446
447 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
448
449         * gcc-interface/misc.c (gnat_printable_name): Always return a copy
450         in GC memory.
451
452 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
453
454         PR ada/19419
455         * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>:
456         Generate a call to memmove for an assignment between overlapping
457         array slices.
458
459 2008-11-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
460
461         PR target/37977
462         * gcc-interface/Makefile.in: Add multilib handling for
463         s390-linux and s390x-linux.
464
465 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
466
467         * gcc-interface/Make-lang.in (check-ada-subtargets): Depend on
468         check-acats-subtargets and check-gnat-subtargets.
469         (check_acats_targets): New variable.
470         (check-acats-subtargets, check-acats%): New targets.
471         (check-acats): If -j is used and CHAPTERS is empty, run the testing
472         in multiple make goals, possibly parallel, and afterwards run
473         dg-extract-results.sh to merge the sum and log files.
474
475 2008-10-17  Geert Bosch  <bosch@adacore.com>
476
477         * gcc-interface/trans.c (gnat_to_gnu) <N_Slice>: Simplify expansion
478         to use only a single check instead of three, and avoid unnecessary
479         COMPOUND_EXPR.
480         (emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes
481         creating more opportunities for optimizations.
482
483 2008-10-13  Jakub Jelinek  <jakub@redhat.com>
484
485         PR middle-end/37601
486         * gcc-interface/utils.c (gnat_types_compatible_p): Handle
487         NULL TYPE_DOMAIN.
488
489 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
490
491         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Move code
492         dealing with volatileness to after code dealing with renaming.
493
494 2008-10-06  Eric Botcazou  <ebotcazou@adacore.com>
495
496         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Minor tweaks.
497         * gcc-interface/trans.c (Pragma_to_gnu): Likewise.
498
499 2008-10-06  Eric Botcazou  <ebotcazou@adacore.com>
500
501         * gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate.
502         (unchecked_convert): Use it to disable problematic folding with
503         VIEW_CONVERT_EXPR in the general case.  Always disable it for the
504         special VIEW_CONVERT_EXPR built for integral types and cope with
505         its addressability issues by preserving the first conversion.
506
507 2008-10-01  Andreas Schwab  <schwab@suse.de>
508
509         * system-linux-ppc64.ads: New file.
510         * gcc-interface/Makefile.in: Add multilib handling for
511         powerpc-linux.
512
513 2008-09-26  Eric Botcazou  <ebotcazou@adacore.com>
514
515         * decl.c (gnat_to_gnu_entity) <object>: Cap the alignment promotion
516         to that of ptr_mode instead of word_mode.
517
518 2008-09-26  Eric Botcazou  <ebotcazou@adacore.com>
519
520         PR ada/5911
521         * gcc-interface/Makefile.in (SPARC/Solaris): Add multilib support.
522
523 2008-09-25  Samuel Tardieu  <sam@rfc1149.net>
524
525         PR ada/37641
526         * adaint.c (__gnat_set_non_writable): Use FILE_WRITE_EA
527         instead of deprecated FILE_WRITE_PROPERTIES.
528
529 2008-09-22  Olivier Hainque  <hainque@adacore.com>
530
531         * gcc-interface/decl.c (gnat_to_gnu_entity): Even when they
532         are never assigned, volatile entities are not constant for code
533         generation purposes.
534
535 2008-09-21  Laurent Guerby  <laurent@guerby.net>
536
537         PR ada/5911
538         * gcc-interface/Makefile.in: Add multilib handling for x86_64
539         and sparc.
540         * system-linux-sparcv9.ads: New file.
541
542 2008-09-20  Eric Botcazou  <ebotcazou@adacore.com>
543
544         * exp_dbug.ads: Document new convention for the XVZ variable.
545         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Generate
546         debug info if necessary for the type padding the component type.
547         <E_Array_Subtype>: Likewise.
548         (maybe_pad_type): Emit the XVZ variable in units.
549         * gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits.
550         (Subprogram_Body_to_gnu): Set the source line of the subprogram's node
551         on statements generated to initialize the parameter attributes cache.
552         Set the source line of the end label of the body on the special return
553         statement built for a procedure with copy-in copy-out parameters.
554
555 2008-09-20  Eric Botcazou  <ebotcazou@adacore.com>
556
557         PR ada/37585
558         * gcc-interface/utils.c (create_subprog_decl): Disable inlining for
559         inlined external functions if they contain a nested function not
560         declared inline.
561
562 2008-09-18  Jan Hubicka  <jh@suse.cz>
563
564         * gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P.
565         (end_subprog_body): Do not set DECL_INLINE.
566
567 2008-09-17  Pascal Rigaux  <pixel@mandriva.com>
568
569         PR ada/21327
570         * gnat_ugn.texi: Use proper format in direntry.
571
572 2008-09-15  Eric Botcazou  <ebotcazou@adacore.com>
573
574         * gcc-interface/trans.c (gigi): Declare the name of the compilation
575         unit as the first global name.
576
577 2008-09-14  Jan Hubicka  <jh@suse.cz>
578
579         * gcc-interface/Make-lang.in (gnat1): Add CFLAGS.
580
581 2008-09-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
582
583         * a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads,
584         bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb,
585         exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
586         exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb,
587         exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads,
588         g-diopit.adb, g-socket.ads, gcc-interface/decl.c,
589         gcc-interface/gigi.h, gcc-interface/trans.c,
590         lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads,
591         opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads,
592         s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads,
593         s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb,
594         sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
595         sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
596         sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads,
597         sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in
598         comments.
599         * gnathtml.pl: Fix typos.
600
601 2008-09-10  Joel Sherrill <joel.sherrill@oarcorp.com>
602
603         * gcc-interface/Makefile.in: Switch RTEMS to s-interr-hwint.adb.
604         * s-osinte-rtems.ads: Add shared hardware interrupt adapter
605         layer. RTEMS binds to OS provided adapter routines so there are
606         no modifications to s-osinte-rtems.adb.
607
608 2008-09-09  Arnaud Charlet  <charlet@adacore.com>
609             Joel Sherrill  <joel.sherrill@oarcorp.com>
610
611        * gcc-interface/Makefile.in: Switch VxWorks to s-interr-hwint.adb.
612
613        * s-interr-vxworks.adb: Renamed to s-interr-hwint.adb
614
615        * s-interr-hwint.adb: New file.
616
617         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: Add new functions
618         needed by s-interr-hwint.adb.
619
620         * s-osinte-vxworks-kernel.adb: New file.
621
622 2008-09-05  Joel Sherrill <joel.sherrill@oarcorp.com>
623
624         * s-stchop-rtems.adb: Add file missed in early commit.  Already
625         referenced in gcc-interface/Makefile.in.
626
627 2008-08-30  Thomas Quinot  <quinot@adacore.com>
628
629         * gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to
630         be built even without a separate libada directory.
631
632 2008-08-22  Arnaud Charlet  <charlet@adacore.com>
633
634         * lib-xref.ads: Fix typo in subprogram reference definition.
635
636 2008-08-22  Robert Dewar  <dewar@adacore.com>
637
638         * s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-strops.adb: Minor code fix
639         to avoid warning.
640
641         * g-trasym.adb: Ditto
642
643         * s-utf_32.adb (Get_Category): Fix obvious typo
644
645         * s-wwdcha.adb: Minor code reorganization
646         Remove dead code
647
648 2008-08-22  Robert Dewar  <dewar@adacore.com>
649
650         * checks.adb (Determine_Range): Deal with values that might be invalid
651
652         * opt.adb, opt.ads (Assume_No_Invalid_Values[_Config]): New
653         configuration switches.
654
655         * par-prag.adb: Dummy entry for pragma Assume_No_Invalid_Values
656
657         * sem_prag.adb: Implement pragma Assume_No_Default_Values
658
659         * snames.adb, snames.ads, snames.h:
660         Add entries for pragma Assume_No_Invalid_Values
661
662         * switch-c.adb: Add processing for -gnatB switch
663
664         * usage.adb: Add entry for flag -gnatB (no bad invalid values)
665
666 2008-08-22  Javier Miranda  <miranda@adacore.com>
667
668         * exp_ch3.adb (Build_Init_Statements): Transfer to the body of the
669         init procedure all the expanded code associated with the spec of
670         task types and protected types.
671
672 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
673
674         * exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the
675         component expression copies rather than directly setting Etype and
676         Is_Static_Expression.
677
678 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
679
680         * sem_util.adb (Has_Preelaborable_Initialization): Revise checking of
681         private types to allow for types derived from a private type with
682         preelaborable initialization, but return False for a private extension
683         (unless it has the pragma).
684
685 2008-08-22  Robert Dewar  <dewar@adacore.com>
686
687         * opt.ads: Minor code reorganization (put entries in alpha order)
688
689 2008-08-22  Pascal Obry  <obry@adacore.com>
690
691         * initialize.c, adaint.c: Use Lock_Task and Unlock_Task for non-blocking
692         spawn.
693
694 2008-08-22  Geert Bosch  <bosch@adacore.com>
695
696         * gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN
697         (convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0
698
699 2008-08-22  Doug Rupp  <rupp@adacore.com>
700
701         * bindgen.adb [VMS] (Gen_Adainit_Ada, Gen_Adainit_C): Import and call
702         __gnat_set_features.
703
704         * init.c
705         (__gnat_set_features): New function.
706         (__gnat_features_set): New tracking variable.
707         (__gl_no_malloc_64): New feature global variable
708
709 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
710
711         * sem_ch8.adb (Use_One_Type): Do not emit warning message about redundant
712         use_type_clause in an instance.
713
714 2008-08-22  Bob Duff  <duff@adacore.com>
715
716         * exp_ch6.ads: Remove pragma Precondition, since it breaks some builds.
717
718 2008-08-22  Robert Dewar  <dewar@adacore.com>
719
720         * exp_ch6.adb: Minor reformatting
721
722         * exp_ch7.adb: Minor reformatting
723
724         * exp_ch7.ads: Put routines in proper alpha order
725
726         * exp_dist.adb: Minor reformatting
727
728 2008-08-22  Vincent Celier  <celier@adacore.com>
729
730         * prj.ads: Minor comment update
731
732 2008-08-22  Robert Dewar  <dewar@adacore.com>
733
734         * sem_ch5.adb (One_Bound): Fix latent bug involving secondary stack
735
736 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
737
738         * exp_tss.adb:
739         (Base_Init_Proc): For a protected subtype, use the base type of the
740         corresponding record to locate the propoer initialization procedure.
741
742 2008-08-22  Robert Dewar  <dewar@adacore.com>
743
744         * checks.adb:
745         (In_Subrange_Of): New calling sequence
746         (Determine_Range): Prepare for new processing using base type
747
748         * exp_ch4.adb:
749         (Compile_Time_Compare): Use new calling sequence
750
751         * exp_ch5.adb:
752         (Compile_Time_Compare): Use new calling sequence
753
754         * sem_eval.adb:
755         (Compile_Time_Compare): New calling sequence allows dealing with
756         invalid values.
757         (In_Subrange_Of): Ditto
758
759         * sem_eval.ads:
760         (Compile_Time_Compare): New calling sequence allows dealing with
761         invalid values.
762         (In_Subrange_Of): Ditto
763
764 2008-08-22  Pascal Obry  <obry@adacore.com>
765
766         * adaint.c: Fix possible race condition on win32_wait().
767
768 2008-08-22  Bob Duff  <duff@adacore.com>
769
770         * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb, freeze.adb,
771         exp_ch4.adb, exp_ch6.ads, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
772         exp_intr.adb, exp_ch3.adb: Rename:
773         Exp_Ch7.Controlled_Type => Needs_Finalization
774         Exp_Ch7.CW_Or_Controlled_Type => CW_Or_Has_Controlled_Part
775         Exp_Ch5.Expand_N_Extended_Return_Statement.Controlled_Type =>
776          Has_Controlled_Parts
777         (Has_Some_Controlled_Component): Fix bug in array case.
778
779 2008-08-22  Robert Dewar  <dewar@adacore.com>
780
781         * sem_ch8.adb: Minor reformatting
782
783 2008-08-22  Kevin Pouget  <pouget@adacore.com>
784
785         * s-shasto.ads, s-shasto.adb: Move Shared_Var_ROpen, Shared_Var_WOpen and
786         Shared_Var_Close procedure specifications from package spec to package body.
787
788         * rtsfind.ads: Remove RE_Shared_Var_Close, RE_Shared_Var_ROpen,
789         RE_Shared_Var_WOpen entries.
790
791         * exp_dist.adb: Update RE_Any_Content_Ptr to RE_Any_Container_Ptr in
792         Build_To_Any_Call, Build_TypeCode_Call and Build_From_Any_Call procedures.
793
794 2008-08-22  Eric Botcazou  <ebotcazou@adacore.com>
795
796         * init.c: adjust EH support code on Alpha/Tru64 as well.
797
798         * raise-gcc.c: Add back a couple of comments.
799
800 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
801
802         * exp_ch5.adb (Expand_Simple_Function_Return): If secondary stack is
803         involved and the return type is class-wide, use the type of the expression
804         for the generated access type. Suppress useless discriminant checks on the
805         allocator.
806
807 2008-08-22  Bob Duff  <duff@adacore.com>
808
809         * exp_ch7.adb: Minor comment fix
810
811         * exp_ch6.ads: Minor comment fix
812
813 2008-08-22  Thomas Quinot  <quinot@adacore.com>
814
815         * sem_ch8.adb: Minor reformatting
816         Minor code reorganization (introduce subprogram to factor duplicated
817         code).
818
819 2008-08-22  Sergey Rybin  <rybin@adacore.com>
820
821         * gnat_ugn.texi: Change the description of gnatcheck default rule
822         settings.
823
824 2008-08-22  Eric Botcazou  <ebotcazou@adacore.com>
825
826         * init.c (__gnat_adjust_context_for_raise): Delete for AIX, HP-UX,
827         Solaris, FreeBSD, VxWorks and PowerPC/Linux.  For x86{-64}/Linux,
828         do not adjust the PC anymore.
829         (__gnat_error_handler): Do not call __gnat_adjust_context_for_raise
830         on AIX, HP-UX, Solaris, FreeBSD and VxWorks.
831
832         * raise-gcc.c (get_call_site_action_for): Use _Unwind_GetIPInfo
833         instead of _Unwind_GetIP.
834
835 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
836
837         * exp_aggr.adb (Static_Array_Aggregate): When a static array aggregate
838         with a range is transformed into a positional aggregate, any copied
839         component literals should be marked Is_Static_Expression.
840
841         * sem_eval.adb (Compile_Time_Known_Value): Don't treat null literals as
842         not being known at at compile time when Configurable_Run_Time_Mode is
843         true.
844
845 2008-08-22  Robert Dewar  <dewar@adacore.com>
846
847         * exp_attr.adb:
848         (Expand_N_Attribute_Reference): No validity checking on OUT parameter of
849         Read or Input attribute.
850
851 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
852
853         * sem_ch8.adb (Use_One_Type): when checking which of two use_type
854         clauses in related units is redundant, if one of the units is a package
855         instantiation, use its instance_spec to determine which unit is the
856         ancestor of the other.
857
858 2008-08-22  Javier Miranda  <miranda@adacore.com>
859
860         * exp_attr.adb (Expand_N_Attribute_Reference): In case of access
861         attributes add missing support to handle designated types that come
862         from the limited view.
863
864         * exp_disp.adb (Expand_Interface_Conversion): Remove wrong assertion.
865
866 2008-08-22  Sergey Rybin  <rybin@adacore.com>
867
868         * vms_data.ads: Add entry for new gnatcheck -mNNN option
869
870         * gnat_ugn.texi: Add description for gnatcheck option '-m'
871
872 2008-08-22  Sergey Rybin  <rybin@adacore.com>
873
874         * gnat_ugn.texi: Update the gnatcheck subsection for metric rules
875         acoording to the latest changes in the metric rule interface
876
877 2008-08-22  Vincent Celier  <celier@adacore.com>
878
879         * make.adb (Check.File_Not_A_Source_Of): New Boolean function
880         (Check): Check if the file names registered in the ALI file for the
881         spec, the body and each of the subunits are the ones expected.
882
883 2008-08-22  Robert Dewar  <dewar@adacore.com>
884
885         * g-catiio.adb: Code cleanup.
886
887 2008-08-20  Vincent Celier  <celier@adacore.com>
888
889         * make.adb (Gnatmake): Remove extra space in version line
890
891         * ali.adb:
892         (Scan_ALI): Use Name_Find, not Name_Enter to get the name of a subunit,
893         as the name may already have been entered in the table by the Project
894         Manager.
895
896 2008-08-20  Jose Ruiz  <ruiz@adacore.com>
897
898         * errno.c (__get_errno, __set_errno for MaRTE): Transform then into
899         weak symbols so we use the version provided by MaRTE when available.
900
901 2008-08-20  Emmanuel Briot  <briot@adacore.com>
902
903         * g-catiio.ads, g-catiio.adb:
904         (Value): Avoid an unnecessary system call to Clock in most cases.
905         This call is only needed when only the time is provided in the string,
906         and ignored in all other cases. This is more efficient.
907
908 2008-08-20  Eric Botcazou  <ebotcazou@adacore.com>
909
910         * raise-gcc.c: Fix formatting nits.
911
912 2008-08-20  Robert Dewar  <dewar@adacore.com>
913
914         * sem_ch13.adb:
915         (Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for
916         non-existing component clause.
917
918         * exp_ch5.adb: Minor reformatting
919
920         * g-comlin.adb: Minor reformatting
921
922         * make.adb: Minor reformatting
923
924         * prj-proc.adb: Minor reformatting
925
926         * stylesw.ads: Minor reformatting
927
928 2008-08-20  Vincent Celier  <celier@adacore.com>
929
930         * make.adb (Gnatmake_Switch_Found): New Boolean global variable
931         (Switch_May_Be_Passed_To_The_Compiler): New Boolean global variable
932         (Add_Switches): New Boolean parameter Unknown_Switches_To_The_Compiler
933          defaulted to True. Fail when Unknown_Switches_To_The_Compiler is False
934         and a switch is not recognized by gnatmake.
935         (Gnatmake): Implement new scheme for gnatmake switches and global
936         compilation switches.
937         (Switches_Of): Try successively Switches (<file name>),
938         Switches ("Ada"), Switches (others) and Default_Switches ("Ada").
939
940 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
941
942         * styleg-c.ads, styleg-c.adb (Missing_Overriding): new procedure to
943         implement style check that overriding operations are explicitly marked
944         at such.
945
946         * style.ads (Missing_Overriding): new procedure that provides interface
947         to previous one.
948
949         * stylesw.ads, stylesw.adb: New style switch -gnatyO, to enable check
950         that the declaration or body of overriding operations carries an
951         explicit overriding indicator.
952
953         * sem_ch8.adb
954         (Analyze_Subprogram_Renaming): if operation is overriding, check whether
955         explicit indicator should be present.
956
957         * sem_ch6.adb (Verify_Overriding_Indicator,
958         Check_Overriding_Indicator): If operation is overriding, check whether
959         declaration and/or body of subprogram should be present
960
961 2008-08-20  Vincent Celier  <celier@adacore.com>
962
963         * prj-nmsc.adb (Check_Naming_Schemes): Accept source file names for
964         gprbuild when casing is MixedCase, whatever the casing of the letters
965         in the file name.
966
967 2008-08-20  Gary Dismukes  <dismukes@adacore.com>
968
969         * exp_ch3.adb (Build_Array_Init_Proc): Clarify comment related to
970         creating dummy init proc.
971         (Requires_Init_Proc): Return False in the case No_Default_Initialization
972         is in force and the type does not have associated default
973         initialization. Move test of Is_Public (with tests of restrictions
974         No_Initialize_Scalars and No_Default_Initialization) to end, past tests
975         for default initialization.
976
977 2008-08-20  Jerome Lambourg  <lambourg@adacore.com>
978
979         * g-comlin.adb (For_Each_Simple_Switch): Take care of switches not part
980         of any alias or prefix but having attached parameters (as \"-O2\").
981
982 2008-08-20  Robert Dewar  <dewar@adacore.com>
983
984         * s-fileio.adb: Minor reformatting
985
986 2008-08-20  Thomas Quinot  <quinot@adacore.com>
987
988         * exp_strm.adb (Build_Elementary_Input_Call,
989         Build_Elementary_Write_Call): Fix incorrect condition in circuitry that
990         selects the stream attribute routines for long float types.
991
992 2008-08-20  Vincent Celier  <celier@adacore.com>
993
994         * prj-proc.adb (Process_Declarative_Items): Add Location for Array_Data
995
996         * prj.ads (Array_Data): Add a component Location
997
998 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
999
1000         * sem_prag.adb:
1001         (Analyze_Pragma, case Obsolescent): Add entity information on the pragma
1002         argument for ASIS and navigation use.
1003
1004 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
1005
1006         * einfo.ads: Add comment.
1007
1008 2008-08-20  Bob Duff  <duff@adacore.com>
1009
1010         * sem_eval.ads: Minor comment fix.
1011
1012 2008-08-20  Bob Duff  <duff@adacore.com>
1013
1014         * exp_ch4.adb (Expand_N_And_Then, Expand_N_Or_Else): Improve constant
1015         folding. We were folding things like "False and then ...", but not
1016         "X and then ..." where X is a constant whose value is known at compile
1017         time.
1018
1019 2008-08-20  Hristian Kirtchev  <kirtchev@adacore.com>
1020
1021         * exp_ch5.adb (Controlled_Type): New routine.
1022         (Expand_N_Extended_Return_Statement): When generating a move of the
1023         final list in extended return statements, check the type of the
1024         function and in the case of double expanded return statements, the type
1025         of the returned object.
1026         (Expand_Simple_Function_Return): Perform an interface conversion when
1027         the type of the returned object is an interface and the context is an
1028         extended return statement.
1029
1030 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
1031
1032         * sem_util.adb (Set_Debug_Info_Needed): If the entity is a private type
1033         and the full view is visible, set flag on full view as well.
1034
1035 2008-08-20  Thomas Quinot  <quinot@adacore.com>
1036
1037         * g-comlin.adb: Minor reformatting
1038         Minor code reorganization.
1039
1040         * freeze.adb: Minor reformatting
1041
1042 2008-08-20  Vincent Celier  <celier@adacore.com>
1043
1044         * prj-nmsc.adb (Check_File): An excluded Ada source file may be a
1045         source of another project.
1046
1047 2008-08-20  Pascal Obry  <obry@adacore.com>
1048
1049         * s-os_lib.ads: Minor reformatting.
1050
1051 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
1052
1053         * gnatvsn.ads: Minor reformatting.
1054
1055 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
1056
1057         * a-crbtgk.adb, repinfo.adb, g-traceb.ads, repinfo.ads,
1058         system-linux-s390x.ads, s-fatflt.ads, s-parame-ae653.ads, g-spipat.adb,
1059         g-spipat.ads, g-tasloc.adb, g-debpoo.adb, g-except.ads, g-debpoo.ads,
1060         mdll-utl.adb, g-string.adb, g-soliop-solaris.ads, par-sync.adb,
1061         exp_ch6.ads, a-cihama.ads, g-curexc.ads, system-linux-sh4.ads,
1062         g-utf_32.adb, g-hesorg.adb, s-proinf-irix-athread.ads, s-parint.adb,
1063         s-parint.ads, exp_ch7.ads, system-linux-alpha.ads, g-dirope.adb,
1064         sinfo-cn.adb, par-labl.adb, a-ciorse.adb, g-calend.adb,
1065         s-parame-vms-alpha.ads, nlists.h, exp_imgv.adb, exp_fixd.ads,
1066         g-calend.ads, gnatcmd.ads, g-table.adb, s-memory-mingw.adb,
1067         g-alveop.ads, g-memdum.ads, g-altive.ads, initialize.c, g-regpat.adb,
1068         g-busorg.ads, g-regpat.ads, g-encstr.ads, g-regexp.adb, g-regexp.ads,
1069         live.ads, g-dyntab.adb, prj-nmsc.ads, par-ch12.adb, 9drpc.adb,
1070         g-alvevi.ads, s-memory.adb, math_lib.adb, s-parame.ads, s-memory.ads,
1071         s-regexp.adb, a-exexda.adb, i-cstrea-vms.adb, a-exexpr.adb,
1072         g-soliop-mingw.ads, s-imgrea.adb, namet.adb, system-vms.ads,
1073         s-inmaop-dummy.adb, s-finroo.ads, a-ngcefu.adb, s-hibaen.ads,
1074         g-soliop.ads, s-auxdec.adb, g-locfil.ads, gnatxref.adb, memroot.adb,
1075         osint-b.ads, memroot.ads, s-parame-hpux.ads, errutil.adb,
1076         system-linux-s390.ads, par-util.adb, osint-c.ads, exp_pakd.ads,
1077         i-pacdec.ads, par-endh.adb, mlib-tgt.ads, prj-strt.ads,
1078         s-osprim-vms.adb, s-proinf.ads, output.ads, g-moreex.ads,
1079         a-finali.ads, s-fatlfl.ads, namet.h, mdll.ads, g-dynhta.ads,
1080         s-imgenu.ads, par-tchk.adb, g-excact.ads, memtrack.adb, s-fatgen.adb,
1081         a-exexpr-gcc.adb, g-arrspl.adb, par-ch4.adb, g-cgideb.adb, freeze.ads,
1082         g-altcon.adb, s-fatllf.ads, gnatfind.adb, s-osinte-lynxos-3.adb,
1083         a-exextr.adb, g-htable.ads, a-calfor.adb, s-imgcha.adb, argv.c,
1084         a-chahan.ads, g-hesora.adb, system-vms_64.ads, par-ch5.adb, g-md5.adb,
1085         lib-xref.ads, g-md5.ads, g-casuti.ads, s-fatsfl.ads, exp_dbug.ads,
1086         s-htable.ads, a-ngcoar.adb, s-arit64.ads, a-ngelfu.adb, a-filico.ads,
1087         par-ch6.adb, s-inmaop.ads, s-parame-vxworks.ads, s-casuti.ads,
1088         a-numaux-darwin.adb, a-cohama.ads, system-linux-sparc.ads, g-os_lib.adb,
1089         system-vms-ia64.ads, s-parame-vms-restrict.ads, a-clrefi.ads,
1090         s-parame-vms-ia64.ads, a-strfix.adb, a-coorse.adb, a-comlin.ads,
1091         a-chtgke.adb, s-imgint.adb, g-expect.ads, exp_ch4.ads, s-finimp.adb,
1092         mingw32.h, g-heasor.adb, g-alleve.adb, a-ngrear.adb, s-mastop-irix.adb,
1093         s-poosiz.adb, link.c: Fix copyright notice.
1094
1095 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
1096
1097         * g-comlin.ads: Update comments.
1098
1099 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
1100
1101         * sem_ch8.adb (Analyze_Subprogram_Renaming): Inherit Is_Imported flag.
1102
1103 2008-08-20  Gary Dismukes  <dismukes@adacore.com>
1104
1105         * exp_ch11.adb:
1106         (Expand_Exception_Handlers): Call Make_Exception_Handler instead of
1107         Make_Implicit_Exception_Handler when rewriting an exception handler with
1108         a choice parameter, and pass the handler's Sloc instead of that of the
1109         handled sequence of statements. Make_Implicit_Exception_Handler sets the
1110         Sloc to No_Location (unless debugging generated code), which we don't
1111         want for the case of a user handler.
1112
1113 2008-08-20  Robert Dewar  <dewar@adacore.com>
1114
1115         * freeze.adb (Freeze_Record_Type): Improve msg for non-contiguous field
1116
1117         * sem_ch13.adb:
1118         (Adjust_Record_For_Reverse_Bit_Order): Messages about layout are
1119         now labeled as info msgs, not warnings.
1120
1121         * tbuild.ads: Clarify documentation of Make_Implicit_Exception_Handler
1122
1123         * usage.adb: Minor change to avoid overlong line for -gnatwz/Z
1124
1125         * a-textio.adb: Remove redundant test.
1126
1127         * a-witeio.adb: Minor code reorganization
1128         Remove redundant test found working on another issue
1129
1130         * a-ztexio.adb: Minor code reorganization
1131         Remove redundant test found working on another issue
1132
1133 2008-08-20  Thomas Quinot  <quinot@adacore.com>
1134
1135         * s-fileio.adb (Open) Use C helper function to determine whether a
1136         given errno value corresponds to a "file not found" error.
1137
1138         * sysdep.c (__gnat_is_file_not_found_error): New C helper function.
1139
1140 2008-08-20  Jose Ruiz  <ruiz@adacore.com>
1141
1142         * errno.c (__get_errno for MaRTE): Use the MaRTE function pthread_errno
1143         to get access to the per-task errno variable.
1144         (__set_errno for MaRTE): Do not redefine this function here since it is
1145         already defined in MaRTE.
1146
1147 2008-08-20  Tristan Gingold  <gingold@adacore.com>
1148
1149         * gnat_ugn.texi: Gcov is not supported on static library on AIX.
1150
1151 2008-08-20  Robert Dewar  <dewar@adacore.com>
1152
1153         * freeze.adb: Minor reformatting
1154
1155         * g-comlin.adb: Minor reformatting
1156
1157         * g-socket.adb: Minor reformatting
1158
1159         * g-socthi-mingw.adb: Minor reformatting
1160
1161         * g-stheme.adb: Minor reformatting
1162
1163 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
1164
1165         * sem_aggr.adb, sem_type.adb, exp_ch9.ads, einfo.ads,
1166         exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve
1167         confusion between partial and full views of an ancestor of the context
1168         type when the parent is a private extension declared in a parent unit,
1169         and full views are available for the context type.
1170
1171 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
1172             Robert Dewar  <dewar@adacore.com>
1173
1174         PR ada/30827
1175         * bindgen.adb (Gen_Output_File_Ada): Zero-terminate the
1176         version string.
1177         Move comment in the right place.
1178         * g-comver.adb (Version): Look for a zero-termination in
1179         addition to a closing parenthesis.
1180
1181 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
1182
1183         * exp_ch13.adb, exp_disp.adb, sem_cat.adb, sem_ch10.adb,
1184         * sem_ch12.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
1185         * sem_prag.adb, sem_util.adb, sem_warn.adb: Use
1186         Is_Package_Or_Generic_Package instead of hand-crafted tests.
1187
1188 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
1189
1190         PR ada/15808
1191         * sem_ch6.adb (Check_Private_Overriding): Check for generic packages
1192         as well.
1193
1194 2008-08-17  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1195
1196         * adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement.
1197
1198 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
1199
1200         * gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call
1201         for back-copy statements in lieu of that of the actual.
1202
1203 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
1204
1205         PR ada/20548
1206         * gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the
1207         setjmp test consistently.  Adjust for new behavior of flag_stack_check.
1208         * gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant
1209         test of flag_stack_check.  Adjust for new behavior of flag_stack_check.
1210
1211 2008-08-13  Samuel Tardieu  <sam@rfc1149.net>
1212
1213         PR ada/36777
1214         * sem_util.ads, sem_util.adb (Is_Protected_Self_Reference): New.
1215         * sem_attr.adb (Check_Type): The current instance of a protected
1216         object is not a type name.
1217         (Analyze_Access_Attribute): Accept instances of protected objects.
1218         (Analyze_Attribute, Attribute_Address clause): Ditto.
1219         * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite
1220         the prefix as being the current instance if needed.
1221
1222 2008-08-12  Danny Smith  <danyssmith@users.sourceforge.net>
1223
1224         * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]:
1225         Remove duplicate s-win32.o. Add s-winext.o.
1226
1227 2008-08-12  Danny Smith  <danyssmith@users.sourceforge.net>
1228
1229         * g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM
1230         with SOSC.SOCK__STREAM.
1231         * g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with
1232         SOSC.MSG_OOB.
1233
1234 2008-08-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
1235
1236         * s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it.
1237         * gsocket.h, socket.c: Update to support RTEMS.
1238         * gcc-interface/Make-lang.in: Include CFLAGS_FOR_TARGET when cross.
1239
1240 2008-08-10  Samuel Tardieu  <sam@rfc1149.net>
1241             Robert Dewar <dewar@adacore.com>
1242
1243         * exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of
1244         left argument even when right argument is 0.
1245         (Expand_N_Op_Mod): Ditto when right argument is 1.
1246         (Expand_N_Op_Multiply): Ditto when any argument is 0.
1247         (Expand_N_Op_Rem): Ditto when right argument is 1.
1248
1249 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1250
1251         * gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused
1252         by warn_unused.
1253
1254 2008-08-08  Ed Schonberg  <schonberg@adacore.com>
1255
1256         * freeze.adb (Generate_Prim_Op_References): New procedure, abstracted
1257         from Freeze_Entity. Used to generate cross-reference information for
1258         types declared in generic packages.
1259
1260 2008-08-08  Thomas Quinot  <quinot@adacore.com>
1261
1262         * gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a
1263         compatibility shim.
1264
1265 2008-08-08  Thomas Quinot  <quinot@adacore.com>
1266
1267         * gsocket.h:
1268         On Windows, include <errno.h> and redefine only selected errno values
1269         from their <winsock2.h> definitions.
1270
1271         * s-osinte-freebsd.ads: Minor reformatting
1272
1273         * s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting
1274
1275         * g-soccon.ads: New file.
1276
1277         * g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb,
1278         g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb,
1279         g-stsifd-sockets.adb, g-socket.adb, g-socket.ads,
1280         g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child
1281         unit, to allow building software that depends on this internal unit
1282         with both older and newer compilers.
1283
1284 2008-08-08  Robert Dewar  <dewar@adacore.com>
1285
1286         * s-strxdr.adb: Minor reformatting
1287
1288 2008-08-08  Bob Duff  <duff@adacore.com>
1289
1290         * gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow
1291         checking for integer operations (including division by zero)", which
1292         is wrong -- divide by zero is not part of overflow checking.
1293         Also added misc clarification about what check-suppression means.
1294
1295         * gnat_rm.texi: Clarify the meaning of pragma Suppress.
1296
1297 2008-08-08  Jerome Lambourg  <lambourg@adacore.com>
1298
1299         * g-comlin.adb (Add_Switch): Handle addition of switches at the
1300         begining of the command line.
1301         (Append, Add): Renaming of Append to Add as this now allows addition
1302         at the begining of the list.
1303
1304         * g-comlin.ads (Add_Switch): Handle addition of switches at the
1305         begining of the command line.
1306
1307 2008-08-08  Thomas Quinot  <quinot@adacore.com>
1308
1309         * g-sercom.ads:
1310         (Name): Document application scope (only legacy PC serial ports on
1311         Linux and Windows).
1312
1313 2008-08-08  Thomas Quinot  <quinot@adacore.com>
1314
1315         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert
1316         previous change, not needed after all.
1317
1318 2008-08-08  Ed Schonberg  <schonberg@adacore.com>
1319
1320         * exp_ch4.adb (Expand_Allocator_Expression): add check if null
1321         exclusion indicator is present
1322
1323 2008-08-08  Robert Dewar  <dewar@adacore.com>
1324
1325         * g-comlin.adb: Minor code reorganization
1326         Minor reformatting
1327
1328         * g-comlin.ads: Minor reformatting
1329
1330         * s-fileio.adb: Minor reformatting
1331
1332         * sem_attr.adb: Minor code reorganization (use Nkind_In)
1333         Minor reformatting
1334
1335 2008-08-06  Samuel Tardieu  <sam@rfc1149.net>
1336
1337         * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing
1338         with s-oscons-tmplt.i.
1339
1340 2008-08-06  Samuel Tardieu  <sam@rfc1149.net>
1341
1342         * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove.
1343
1344 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1345
1346         * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
1347         of incomplete type.
1348
1349         * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
1350         of a formal parameter of an incomplete type. Improve error message for
1351         other improper uses of incomplete types.
1352
1353 2008-08-06  Robert Dewar  <dewar@adacore.com>
1354
1355         * gnat_ugn.texi: Clarify -gnato documentation
1356
1357 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1358
1359         * gcc-interface/Makefile.in,
1360         g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb,
1361         g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads,
1362         g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads,
1363         g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads,
1364         g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads,
1365         g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads,
1366         g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads,
1367         g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads,
1368         g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads:
1369         Remove GNAT.Sockets.Constants. This internal package is replaced by
1370         System.OS_Constants.
1371
1372 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1373
1374         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in:
1375         Remove obsolete targets referencing gen-soccon
1376         When generating s-oscons.ads, use a file name that includes the
1377         THREAD_KIND, to ensure that the (potentially different) version from a
1378         previous build with a different threads flavour does not get reused.
1379
1380 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1381
1382         * sem_res.adb: Minor reformatting
1383
1384         * s-fileio.adb (Open): When file open operation fails, raise Name_Error
1385         only when the operating system reports a non-existing file or directory
1386         (ENOENT), otherwise raise Name_Error.
1387
1388         * exp_ch11.adb: Minor reformatting
1389
1390 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1391
1392         * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is
1393         incomplete, add the access_to_subprogram type to the list of private
1394         dependents only if the incomplete type will be completed in the current
1395         scope.
1396         (Build_Discriminant_Constraints): If the type of the discriminant is
1397         access_to_variable, reject a constraint that is access_to_constant.
1398
1399 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1400
1401         * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb,
1402         g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads,
1403         g-sttsne-dummy.ads: New files.
1404
1405         * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources
1406         with pragma Unimplemented_Unit for sockets packages on Nucleus.
1407
1408 2008-08-06  Pascal Obry  <obry@adacore.com>
1409
1410         * adaint.c: Another fix for ACL support on Windows.
1411
1412 2008-08-06  Javier Miranda  <miranda@adacore.com>
1413
1414         * exp_disp (Expand_Interface_Actuals): Adds missing support for
1415         expansion of calls to subprograms using selected components.
1416
1417 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1418
1419         * sem_res.adb (Resolve_Call): Use base type to determine whether a
1420         dereference is needed because a subtype of an access_to_subprogram is
1421         simply an access-subtype
1422
1423 2008-08-06  Jerome Lambourg  <lambourg@adacore.com>
1424
1425         * g-comlin.adb (Set_Command_Line): Now that aliases can contain
1426         parameters, always specify the expected separator.
1427
1428 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1429
1430         * xnmake.adb: Use new XUtil package for platform independent text
1431         output.
1432
1433 2008-08-06  Vincent Celier  <celier@adacore.com>
1434
1435         * gnat_ugn.texi: Document compiler switch -gnateG
1436
1437 2008-08-06  Quentin Ochem  <ochem@adacore.com>
1438
1439         * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark
1440         in the case of an empty pattern size.
1441         (Compute_Result): Do not do any computation in the case of an empty
1442         pattern size.
1443         (Report_Result): Fixed computation of the overflow guard.
1444
1445 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1446
1447         * g-awk.adb (Finalize): Do not use directly objects of the type in the
1448         finalization routine to prevent elaboration order anomalies in new
1449         finalization scheme.
1450
1451 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1452
1453         * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete
1454         declaration for the same type.
1455
1456 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1457
1458         * sem.adb: Minor rewording (comment)
1459
1460 2008-08-06  Jerome Lambourg  <lambourg@adacore.com>
1461
1462         * g-comlin.adb (Define_Switch, Get_Switches): New.
1463         (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when
1464         ungrouping switches.
1465         (For_Each_Simple_Switch): Allow more control over parameters handling.
1466         This generic method now allows ungrouping of switches with parameters
1467         and switches with more than one letter after the prefix.
1468         (Set_Command_Line): Take care of switches that are prefixed with a
1469         switch handling parameters without delimiter (-gnatya and -gnaty3 for
1470         example).
1471         (Add_Switch, Remove_Switch): Handle parameters possibly present inside
1472         a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of
1473         the operation.
1474         (Start, Alias_Switches, Group_Switches): Take care of parameters
1475         possibly present inside a group.
1476
1477         * g-comlin.ads (Define_Switch): New method used to define a list of
1478         expected switches, that are necessary for correctly ungrouping switches
1479         with more that one character after the prefix.
1480         (Get_Switches): Method that builds a getopt string from the list of
1481         switches as set previously by Define_Switch.
1482         (Add_Switch, Remove_Switch): New versions of the methods, reporting the
1483         status of the operation. Also allow the removal of switches with
1484         parameters only.
1485         (Command_Line_Configuration_Record): Maintain a list of expected
1486         switches.
1487
1488 2008-08-06  Doug Rupp  <rupp@adacore.com>
1489
1490         * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if
1491         TARGET_MALLOC64 clear.
1492
1493         * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc
1494         if TARGET_MALLOC64 clear.
1495
1496         * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c
1497         (TARGET_MALLC64): New macro. Default to clear.
1498
1499 2008-08-06  Doug Rupp  <rupp@adacore.com>
1500
1501         * gcc-interface/utils2.c (snames.h) Include
1502         (TARGET_ABI_OPEN_VMS): Initialize.
1503         (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap
1504         for Convention C.
1505
1506 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1507
1508         * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper
1509         null exclusion in a discriminant declaration
1510
1511         * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion
1512         indicators when type is not an access type.
1513
1514         * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion
1515         indicators when type is not an access type.
1516
1517 2008-08-06  Javier Miranda  <miranda@adacore.com>
1518
1519         * exp_disp (Expand_Interface_Conversion): Freeze the entity associated
1520         with the target interface before expanding the code of the interface
1521         conversion.
1522
1523 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1524
1525         * freeze.adb:
1526         (Freeze_Entity): A deferred constant does not violate the restriction
1527         No_Default_Initialization,
1528
1529         * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that
1530         can carry a null exclusion indicator, and on which an error may be
1531         posted if the indicator is redundant.
1532
1533         * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion
1534         does not apply to a subtype mark that already excludes null.
1535
1536         * sem_ch12.adb (Formal_Object_Declaration): Verify that a null
1537         exclusion does not apply to a subtype mark that already excludes null.
1538
1539 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1540
1541         * Makefile.rtl: Compile s-oscons.ads as part of the runtime library.
1542
1543 2008-08-05  Doug Rupp  <rupp@adacore.com>
1544
1545         * vms_data.ads: Translation for /POINTER_SIZE qualifier.
1546
1547 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1548
1549         * gsocket.h: Make this file includable in a Nucleus environment, which
1550         does not support sockets.
1551
1552         * socket.c: Remove Nucleus-specific hack.
1553
1554 2008-08-05  Pascal Obry  <obry@adacore.com>
1555
1556         * adaint.c: Remove support for readable attribute on vxworks and nucleus
1557
1558 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1559
1560         * sem_attr.adb:
1561         (Analyze_Attribute, case 'Result): handle properly the case where some
1562         operand of the expression in a post-condition generates a transient
1563         block.
1564
1565         * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to
1566         right-hand side when it is an anonymous access_to_subprogram, to force
1567         static accessibility check when needed.
1568
1569 2008-08-05  Sergey Rybin  <rybin@adacore.com>
1570
1571         * gnat_ugn.texi: Changing the description of the gnatcheck metrics
1572         rule according to the change in the rule option.
1573         Add documentation for -gnatw.b/-gnatw.B
1574
1575 2008-08-05  Robert Dewar  <dewar@adacore.com>
1576
1577         * ug_words: Add entries for -gnatw.b/-gnatw.B
1578
1579         * vms_data.ads: Add entries for -gnatw.b/-gnatw.B
1580
1581 2008-08-05  Vincent Celier  <celier@adacore.com>
1582
1583         * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put
1584         (File).
1585
1586         * a-ztdeio.adb: Ditto.
1587
1588 2008-08-05  Pascal Obry  <obry@adacore.com>
1589
1590         * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the
1591         readable attribute.
1592
1593 2008-08-05  Vincent Celier  <celier@adacore.com>
1594
1595         * s-wchwts.adb:
1596         (Wide_String_To_String): Returns a String with the same 'First as its
1597         parameter S.
1598         (Wide_Wide_String_To_String): Ditto
1599
1600         * s-wchwts.ads:
1601         (Wide_String_To_String): Document that the lowest index of the returned
1602         String is equal to S'First.
1603
1604 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1605
1606         * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files.
1607
1608         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate
1609         s-oscons.ads
1610
1611 2008-08-05  Robert Dewar  <dewar@adacore.com>
1612
1613         * opt.ads (Warn_On_Biased_Representation): New flag
1614
1615         * sem_ch13.adb:
1616         (Analyze_Attribute_Definition_Clause): Issue warning when biased
1617         representation is required.
1618         (Minimum_Size): Don't allow biasing if enum rep clause case
1619
1620         * sem_warn.adb:
1621         (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches
1622         (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws
1623
1624         * usage.adb: Add lines for -gnatw.b/B switches
1625
1626 2008-08-05  Pascal Obry  <obry@adacore.com>
1627
1628         * a-coinve.adb: Reorder the code to avoid uninitialized warning.
1629
1630         * adaint.c: In UNIX cases do not call __gnat_stat but stat directly.
1631
1632 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1633
1634         * socket.c: Minor reformatting.
1635
1636 2008-08-05  Robert Dewar  <dewar@adacore.com>
1637
1638         * sem_ch3.adb: Minor reformatting
1639
1640         * prj-nmsc.adb: Minor reformatting
1641
1642 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1643
1644         * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
1645         visibility check on the component type if the simple test fails.
1646
1647 2008-08-05  Jose Ruiz  <ruiz@adacore.com>
1648
1649         * init.c (__gnat_install_handler for linux): If we are building the
1650         Xenomai run time then we need to do two additional things: avoid
1651         memory swapping and transform the Linux environment task into a native
1652         Xenomai task.
1653
1654         * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run
1655         time): Use interface to Xenomai native skin and avoid linux-specific
1656         way of setting CPU affinity.
1657         (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism.
1658
1659 2008-08-05  Bob Duff  <duff@adacore.com>
1660
1661         * checks.ads: Minor comment fix
1662
1663 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1664
1665         * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb,
1666         g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and
1667         CS8.
1668
1669 2008-08-05  Robert Dewar  <dewar@adacore.com>
1670
1671         * mlib.adb: Minor code reorganization
1672         Minor reformatting
1673
1674         * make.adb: Minor reformatting
1675
1676         * prj-attr.ads: Minor reformatting
1677
1678         * s-os_lib.adb: Minor reformatting
1679
1680         * s-fileio.adb: Minor code reorganization
1681         Minor reformatting
1682
1683         * prj.ads: Minor reformatting
1684
1685 2008-08-05  Bob Duff  <duff@adacore.com>
1686
1687         * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in
1688         unresolved initial value of "null", because it causes implicitly
1689         generated "=" operators to be ambiguous, and because this type should
1690         not be passed to gigi.
1691
1692 2008-08-05  Vincent Celier  <celier@adacore.com>
1693
1694         * mlib.adb: Update comments.
1695
1696         * make.adb (Switches_Of): Check for Switches (others), before checking
1697         for Default_Switches ("Ada").
1698         (Gnatmake): Use Builder'Switches (others) in preference to
1699         Builder'Default_Switches ("Ada") if there are several mains.
1700
1701         * prj-attr-pm.adb:
1702         (Add_Attribute): Add component Others_Allowed in Attribute_Record
1703         aggregate.
1704
1705         * prj-attr.adb:
1706         Add markers to indicates that attributes Switches allow others as index
1707         (Others_Allowed_For): New Boolean function, returning True for
1708         attributes with the mark.
1709         (Initialize): Recognize optional letter 'O' as the marker for
1710         associative array attributes where others is allowed as the index.
1711
1712         * prj-attr.ads:
1713         (Others_Allowed_For): New Boolean function
1714         (Attribute_Record): New Boolean component Others_Allowed
1715
1716         * prj-dect.adb:
1717         (Parse_Attribute_Declaration): For associative array attribute where
1718         others is allowed as the index, allow others as an index.
1719
1720         * prj-nmsc.adb:
1721         (Process_Binder): Skip associative array attributes with index others
1722         (Process_Compiler): Ditto
1723
1724         * prj-util.adb:
1725         (Value_Of (Index, In_Array)): Make no attempt to put in lower case when
1726         index is All_Other_Names.
1727
1728         * prj.ads:
1729         (All_Other_Names): New constant
1730
1731         * prj-proc.adb:
1732         (Process_Declarative_Items): Skip associative array attribute when index
1733         is reserved word "others".
1734
1735 2008-08-05  Vasiliy Fofanov  <fofanov@adacore.com>
1736
1737         * gen-oscons.c: Adapt for VMS where termios.h is not available.
1738
1739 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1740
1741         * a-rttiev.adb: Minor reformatting (comments)
1742
1743         * gen-soccon.c: Rename to gen-oscons.c
1744
1745         * gen-oscons.c: New file. Now generate System.OS_Constants instead of
1746         GNAT.Sockets.Constants.
1747         Add new constants for GNAT.Serial_Communications and System.File_IO.
1748
1749 2008-08-05  Javier Miranda  <miranda@adacore.com>
1750
1751         * sem_util.adb (Collect_Interfaces_Info): Minor reformating.
1752         * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the
1753         implementation of this routine has been simplified.
1754
1755 2008-08-05  Pascal Obry  <obry@adacore.com>
1756
1757         * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the
1758         Set_Read_Only Win32 implementation.
1759
1760 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1761
1762         * exp_strm.adb: Minor reformatting (comments)
1763
1764         * sem_ch12.adb: Minor reformatting.
1765
1766 2008-08-05  Robert Dewar  <dewar@adacore.com>
1767
1768         * sem_ch3.adb: Minor reformatting
1769
1770         * checks.adb: Minor reformatting
1771
1772 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1773
1774         * tbuild.ads (New_External_Name): Update spec to reflect relaxed
1775         restriction on Prefix.
1776
1777 2008-08-05  Jerome Lambourg  <lambourg@adacore.com>
1778
1779         * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal
1780         methods needed to handle switch sections when building a command line.
1781         (Define_Section, Add_Switch, Remove_Switch, Is_New_Section,
1782         Current_Section): New public methods or methods modified to handle
1783         building command lines with sections.
1784         (Set_Command_Line): Take into account sections when analysing a switch
1785         string.
1786         (Start): Sort the switches by sections before iterating the command line
1787         elements.
1788
1789         * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch,
1790         Is_New_Section, Current_Section): New methods or methods modified to
1791         handle building command lines with sections.
1792
1793 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1794
1795         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access
1796         discriminants, indicate that the corresponding object declaration has
1797         no initialization, to prevent spurious warnings when the access type is
1798         null-excluding.
1799
1800 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1801
1802         * sem_res.adb (Resolve_Call): If this is a call to the predefined
1803         Abort_Task, warn if the call appears within a protected operation.
1804
1805 2008-08-04  Robert Dewar  <dewar@adacore.com>
1806
1807         * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances
1808
1809 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1810
1811         * sem_ch3.adb:
1812         (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an
1813         anonymous access to protected subprogram that is the return type of the
1814         specification of a subprogram body.
1815
1816         * sem_ch6.adb:
1817         (Analyze_Subprogram_Body): if the return type is an anonymous access to
1818         subprogram, freeze it now to prevent access anomalies in the back-end.
1819
1820         * exp_ch9.adb: Minor code cleanup.
1821         Make sure that new declarations are inserted into the tree before
1822         analysis (from code reading).
1823
1824 2008-08-04  Robert Dewar  <dewar@adacore.com>
1825
1826         * exp_ch5.adb:
1827         (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction
1828         at point of return.
1829
1830 2008-08-04  Thomas Quinot  <quinot@adacore.com>
1831
1832         * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting
1833
1834 2008-08-04  Vasiliy Fofanov  <fofanov@adacore.com>
1835
1836         * g-soccon-mingw.ads: Fix value for MSG_WAITALL
1837
1838 2008-08-04  Javier Miranda  <miranda@adacore.com>
1839
1840         * sem_prag.adb (Process_Convention): Add missing support for
1841          N_Private_Extension_Declaration nodes.
1842
1843 2008-08-04  Robert Dewar  <dewar@adacore.com>
1844
1845         * exp_ch4.adb: Minor reformatting
1846
1847 2008-08-04  Pascal Obry  <obry@adacore.com>
1848
1849         * adaint.h: Add missing prototype.
1850
1851         * adaint.c: Refine support for Windows file attributes.
1852
1853 2008-08-04  Robert Dewar  <dewar@adacore.com>
1854
1855         * sem_res.adb:
1856         (Valid_Conversion): Catch case of designated types having different
1857         sizes, even though they statically match.
1858
1859 2008-08-04  Javier Miranda  <miranda@adacore.com>
1860
1861         * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch
1862         added in previous patch to handle access to subprograms.
1863
1864 2008-08-04  Robert Dewar  <dewar@adacore.com>
1865
1866         * freeze.adb:
1867         (Freeze_Entity): Only check No_Default_Initialization restriction for
1868         constructs that come from source
1869
1870 2008-08-04  Thomas Quinot  <quinot@adacore.com>
1871
1872         * exp_ch6.adb: Minor comment fix.
1873
1874         * sem_ch4.adb: Minor reformatting.
1875
1876 2008-08-04  Robert Dewar  <dewar@adacore.com>
1877
1878         * sem_res.adb: (Large_Storage_Type): Improve previous change.
1879
1880 2008-08-04  Pascal Obry  <obry@adacore.com>
1881
1882         * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with
1883         file attributes.
1884
1885 2008-08-04  Javier Miranda  <miranda@adacore.com>
1886
1887         * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support
1888         for N_Formal_Object_Declaration nodes. Adding kludge required by
1889         First_Formal to provide its functionality with access to functions.
1890         (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support
1891         for anonymous access types returned by functions.
1892
1893         * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate
1894         conversion of null-excluding access types (required only once to force
1895         the generation of the required runtime check).
1896
1897         * sem_type.adb (Covers): minor reformating
1898
1899         * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors
1900         with internally generated nodes. Avoid generating the error inside init
1901         procs.
1902
1903         * sem_res.adb (Resolve_Membership_Test): Minor reformating.
1904         (Resolve_Null): Generate the null-excluding check in case of assignment
1905         to a null-excluding object.
1906         (Valid_Conversion): Add missing support for anonymous access to
1907         subprograms.
1908
1909         * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for
1910         anonymous access types whose designated type is an itype. This case
1911         occurs with anonymous access to protected subprograms types.
1912         (Analyze_Return_Type):  Add missing support for anonymous access to
1913         protected subprogram.
1914
1915         * sem_eval.adb (Subtypes_Statically_Match): In case of access to
1916         subprograms addition of missing check on matching convention. Required
1917         to properly handle access to protected subprogram types.
1918
1919         * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on
1920         null excluding access types.
1921
1922 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1923
1924         * sem_ch12.adb: Add comments
1925
1926         * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null
1927         access type and the allocator is not initialized, warn rather than
1928         reporting an error.
1929
1930 2008-08-04  Robert Dewar  <dewar@adacore.com>
1931
1932         * exp_ch4.adb: Minor reformatting
1933
1934         * exp_dist.adb: Minor reformatting
1935
1936         * g-comlin.adb: Minor reformatting
1937
1938 2008-08-04  Gary Dismukes  <dismukes@adacore.com>
1939
1940         * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
1941         target to the type of the aggregate in the case where the target object
1942         is class-wide.
1943
1944         * exp_ch5.adb (Expand_Simple_Function_Return): When the function's
1945         result type is class-wide and inherently limited, and the expression
1946         has a specific type, create a return object of the specific type, for
1947         more efficient handling of returns of build-in-place aggregates (avoids
1948         conversions of the class-wide return object to the specific type on
1949         component assignments).
1950
1951         * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
1952         about a type mismatch for a class-wide function with a return object
1953         having a specific type when the object declaration doesn't come from
1954         source. Such an object can result from the expansion of a simple return.
1955
1956 2008-08-04  Vasiliy Fofanov  <fofanov@adacore.com>
1957
1958         * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files.
1959
1960         * gcc-interface/Makefile.in: Use 64bit-specific system files when
1961         compiling for 64bit windows.
1962
1963 2008-08-04  Jerome Lambourg  <lambourg@adacore.com>
1964
1965         * g-comlin.adb (Group_Switches): Preserve the switch order when
1966         grouping and allow switch grouping of switches with more than one
1967         character extension (e.g. gnatw.x).
1968         (Args_From_Expanded): Remove this now obsolete method.
1969
1970 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1971
1972         * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for
1973         chain at once, to ensure that type is properly decorated for back-end,
1974         when allocator appears within a loop.
1975
1976 2008-08-04  Kevin Pouget  <pouget@adacore.com>
1977
1978         * snames.h, snames.adb, snames.ads:
1979         Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines.
1980
1981         * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call,
1982         Build_To_Any_Call and Build_TypeCode_Call procedures.
1983
1984         * exp_attr.adb, sem_attr.adb: Add corresponding cases.
1985
1986         * rtsfind.ads: Add corresponding names.
1987
1988         * tbuild.adb: Update prefix restrictions to allow '_' character.
1989
1990 2008-08-04  Doug Rupp  <rupp@adacore.com>
1991
1992         * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
1993         * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
1994         * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
1995         use it.  Calculate pointer range overflow using 64bit types.
1996
1997 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1998
1999         * sem_ch3.adb (Access_Definition): A formal object declaration is a
2000         legal context for an anonymous access to subprogram.
2001
2002         * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
2003         indirect call, report success to the caller to include possible
2004         interpretation.
2005
2006         * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
2007         check when the type
2008         of the extended return is an anonymous access_to_subprogram type.
2009
2010         * sem_res.adb:
2011         (Resolve_Call): Insert a dereference if the type of the subprogram is an
2012         access_to_subprogram and the context requires its return type, and a
2013         dereference has not been introduced previously.
2014
2015 2008-08-04  Arnaud Charlet  <charlet@adacore.com>
2016
2017         * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve
2018         gnatcheck support in GPS.
2019
2020 2008-08-04  Vincent Celier  <celier@adacore.com>
2021
2022         * mlib.adb (Create_Sym_Links): Create relative symbolic links when
2023         requested
2024
2025 2008-08-04  Vincent Celier  <celier@adacore.com>
2026
2027         * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
2028         variable, but don't check the resulting value as it has no impact on
2029         the processing.
2030
2031         * opt.ads:
2032         (Generate_Processed_File): New Boolean flag, set to True in the compiler
2033         when switch -gnateG is used.
2034
2035         * prep.adb:
2036         (Preprocess): new Boolean out parameter Source_Modified. Set it to True
2037         when the source is modified by the preprocessor and there is no
2038         preprocessing errors.
2039
2040         * prep.ads (Preprocess): new Boolean out parameter Source_Modified
2041
2042         * sinput-l.adb:
2043         (Load_File): Output the result of preprocessing if the source text was
2044         modified.
2045
2046         * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG
2047
2048         * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG
2049
2050         * ug_words: Add VMS equivalent for -gnateG
2051
2052         * vms_data.ads:
2053         Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG
2054
2055 2008-08-04  Doug Rupp  <rupp@adacore.com>
2056
2057         * gcc-interface/utils2.c:
2058         (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer
2059         in 32bit descriptor.
2060
2061 2008-08-04  Robert Dewar  <dewar@adacore.com>
2062
2063         * par-ch10.adb: Minor reformatting
2064
2065         * i-cobol.adb: Minor reformatting.
2066
2067 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
2068
2069         * sem_ch3.adb (Access_Definition): Create an itype reference for an
2070         anonymous access return type of a regular function that is not a
2071         compilation unit.
2072
2073 2008-08-04  Vincent Celier  <celier@adacore.com>
2074
2075         * prj-attr.adb: New Builder attribute Global_Compilation_Switches
2076
2077         * snames.adb: New standard name Global_Compilation_Switches
2078
2079         * snames.ads: New standard name Global_Compilation_Switches
2080
2081         * make.adb: Correct spelling error in comment
2082
2083 2008-08-04  Arnaud Charlet  <charlet@adacore.com>
2084
2085         * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI
2086         target.
2087
2088 2008-08-04  Thomas Quinot  <quinot@adacore.com>
2089
2090         * sem_ch10.adb: Minor comment fix.
2091
2092 2008-08-04  Robert Dewar  <dewar@adacore.com>
2093
2094         * restrict.adb: Improved messages for restriction warnings
2095
2096         * restrict.ads: Improved messages for restriction messages
2097
2098         * s-rident.ads (Profile_Name): Add No_Profile
2099
2100 2008-08-04  Robert Dewar  <dewar@adacore.com>
2101
2102         * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus
2103
2104 2008-08-04  Robert Dewar  <dewar@adacore.com>
2105
2106         * freeze.adb (Freeze_Entity): Check for size clause for boolean warning
2107
2108 2008-08-04  Vincent Celier  <celier@adacore.com>
2109
2110         * prj-proc.adb:
2111         (Copy_Package_Declarations): When inheriting package Naming from a
2112         project being extended, do not inherit source exception names.
2113
2114 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
2115
2116         * sem_prag.adb (Check_Precondition_Postcondition): When scanning the
2117         list of declaration to find previous subprogram, do not go to the
2118         original node of a generic unit.
2119
2120 2008-08-02  Eric Botcazou  <ebotcazou@adacore.com>
2121
2122         * gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>:
2123         New case.  Convert BOOLEAN_TYPE operation to the default integer type.
2124
2125 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>
2126
2127         * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
2128         * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
2129         and adjust for above renaming.
2130         * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
2131         gnu_expr_alt_type parameter.  Convert the expression to it instead
2132         of changing its type in place.
2133         (build_function_stub): Adjust call to above function.
2134
2135 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>
2136
2137         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
2138         code.  Do not get full definition of deferred constants with address
2139         clause for a use.  Do not ignore deferred constant definitions with
2140         address clause.  Ignore constant definitions already marked with the
2141         error node.
2142         <object>: Remove obsolete comment.  For a deferred constant with
2143         address clause, get the initializer from the full view.
2144         * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
2145         Rework and remove obsolete comment.
2146         <N_Object_Declaration>: For a deferred constant with address clause,
2147         mark the full view with the error node.
2148         * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
2149         formatting nits.
2150
2151 2008-08-01  Hristian Kirtchev  <kirtchev@adacore.com>
2152
2153         * rtsfind.ads: Add block IO versions of stream routines for Strings.
2154
2155         * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads,
2156         sem_prag.adb, snames.adb, snames.ads, snames.h,
2157         par-prag.adb: Undo previous stream related changes.
2158
2159         * s-rident.ads: Add new restriction No_Stream_Optimizations.
2160
2161         * s-ststop.ads, s-ststop.adb: Comment reformatting.
2162         Define enumeration type to designate different IO mechanisms.
2163         Enchance generic package Stream_Ops_Internal to include an
2164         implementation of Input and Output.
2165
2166         * exp_attr.adb (Find_Stream_Subprogram): If restriction
2167         No_Stream_Optimization is active, choose the default byte IO
2168         implementations of stream attributes for Strings.
2169         Otherwise use the corresponding block IO version.
2170
2171 2008-08-01  Olivier Hainque  <hainque@adacore.com>
2172
2173         * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: Do not
2174         turn Ada Pure into GCC const, now implicitely implying nothrow as well.
2175
2176 2008-08-01  Robert Dewar  <dewar@adacore.com>
2177
2178         * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to
2179         convert plain identifier into defining identifier.
2180
2181 2008-08-01  Robert Dewar  <dewar@adacore.com>
2182
2183         * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve
2184         warnings
2185
2186         * lib-xref.adb: Add error defense.
2187
2188 2008-08-01  Bob Duff  <duff@adacore.com>
2189
2190         * ioexcept.ads, sequenio.ads, directio.ads: Correct comment.
2191
2192 2008-08-01  Gary Dismukes  <dismukes@adacore.com>
2193
2194         * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
2195         correct accessibility levels. In the "when others" case, retrieve the
2196         access level of the Etype of Prev rather than Prev_Orig, because the
2197         original exression has not always been analyzed.
2198
2199 2008-08-01  Robert Dewar  <dewar@adacore.com>
2200
2201         * prj-nmsc.adb: Minor reformatting
2202
2203         * sem_ch4.adb: Minor reformatting
2204         Minor code reorganization
2205
2206         * prj.ads: Minor reformatting
2207
2208         * s-os_lib.adb: Minor reformatting
2209
2210         * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper
2211         half encodings
2212
2213         * scans.ads: Minor reformatting.
2214
2215         * sem_prag.adb (Analyze_Pragma): Put entries in alpha order
2216         (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma
2217
2218         * sem_res.adb:
2219         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
2220
2221         * sem_ch12.adb: Minor comment reformatting
2222
2223         * par-ch3.adb (P_Type_Declaration): Properly handle missing type
2224         keyword
2225
2226 2008-08-01  Robert Dewar  <dewar@adacore.com>
2227
2228         * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not
2229         generating code
2230
2231 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
2232
2233         * checks.adb (Apply_Float_Conversion_Check): If the expression to be
2234         converted is a real literal and the target type has static bounds,
2235         perform the conversion exactly to prevent floating-point anomalies on
2236         some targets.
2237
2238 2008-08-01  Vincent Celier  <celier@adacore.com>
2239
2240         * prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>)
2241
2242         * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax
2243
2244         * prj.adb (Object_Exist_For): Use Object_Generated, not
2245         Objects_Generated that is removed and was never modified anyway.
2246
2247         * prj.ads:
2248         (Path_Syntax_Kind): New enumeration type
2249         (Language_Config): New component Path_Syntax, defaulted to Host.
2250         Components PIC_Option and Objects_Generated removed, as they are not
2251         used.
2252
2253         * snames.adb: New standard name Path_Syntax
2254
2255         * snames.ads: New standard name Path_Syntax
2256
2257 2008-08-01  Vincent Celier  <celier@adacore.com>
2258
2259         * mlib-utl.adb:
2260         (Adalib_Path): New variable to store the path of the adalib directory
2261         when procedure Specify_Adalib_Dir is called.
2262         (Lib_Directory): If Adalib_Path is not null, return its value
2263         (Specify_Adalib_Dir): New procedure
2264
2265         * mlib-utl.ads (Specify_Adalib_Dir): New procedure
2266
2267 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
2268
2269         * sem_prag.adb:
2270         (Check_Precondition_Postcondition): If not generating code, analyze the
2271         expression in a postcondition that appears in a subprogram body, so that
2272         it is properly decorated for ASIS use.
2273
2274 2008-08-01  Gary Dismukes  <dismukes@adacore.com>
2275
2276         * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
2277         Orig_Prev to Prev in the case where the actual is N_Function_Call or
2278         N_Identifier. This was interfering with other cases that are rewritten
2279         as N_Identifier, such as allocators, resulting in passing of the wrong
2280         accessibility level, and based on testing this code is apparently no
2281         longer needed at all.
2282
2283 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
2284
2285         * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
2286         procedure call whose prefix
2287         is a parameterless function call that returns an access_to_procedure.
2288
2289 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
2290
2291         * adaint.c (__gnat_tmp_name): Refine the generation of temporary names
2292         for RTX. Adding a suffix that is incremented at each iteration.
2293
2294 2008-08-01  Robert Dewar  <dewar@adacore.com>
2295
2296         * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
2297         Raise_Exception
2298
2299 2008-08-01  Jerome Lambourg  <lambourg@adacore.com>
2300
2301         * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
2302         paths, which are authorized by Windows but can lead to errors when used
2303         elsewhere.
2304
2305 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
2306
2307         * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
2308         a pending instantiation for the body of a subprogram that is to be
2309         inlined.
2310
2311         * sem_ch12.adb:
2312         (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.
2313
2314         * sem_prag.adb (Make_Inline): If the pragma applies to an instance,
2315         create a pending instance for its body, so that calls to the subprogram
2316         can be inlined by the back-end.
2317
2318 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
2319
2320         * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and
2321         rts-rtx-w32).
2322
2323 2008-08-01  Robert Dewar  <dewar@adacore.com>
2324
2325         * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer
2326
2327 2008-08-01  Doug Rupp  <rupp@adacore.com>
2328
2329         * gnat_rm.texi: Document new mechanism Short_Descriptor.
2330
2331         * types.ads (Mechanism_Type): Modify range for new Short_Descriptor
2332         mechanism values.
2333
2334         * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
2335         mechanism and Short_Descriptor mechanism values.
2336
2337         * snames.adb (preset_names): Add short_descriptor entry.
2338
2339         * snames.ads: Add Name_Short_Descriptor.
2340
2341         * types.h: Add new By_Short_Descriptor mechanism values.
2342
2343         * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
2344         mechanism and Short_Descriptor mechanism values.
2345
2346         * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
2347         values.
2348         (Descriptor_Codes): Modify range for new mechanism values.
2349
2350         * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
2351         mechanism values.
2352
2353         * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
2354         (gnat_to_gnu_param): Handle By_Short_Descriptor.
2355
2356         * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
2357         (build_vms_descriptor32): New prototype.
2358         (fill_vms_descriptor): Remove unneeded gnat_actual parameter.
2359
2360         * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
2361         argument in call fill_vms_descriptor.
2362
2363         * gcc-interface/utils.c (build_vms_descriptor32): Renamed from
2364         build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
2365         (build_vms_descriptor): Renamed from build_vms_descriptor64.
2366         (convert_vms_descriptor32): New function.
2367         (convert_vms_descriptor64): New function.
2368         (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
2369         descriptors.
2370
2371         * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
2372         no longer needed.
2373
2374 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
2375
2376         * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
2377         nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
2378         name.
2379
2380 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
2381
2382         * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
2383         current directory so only fully qualified names are allowed.
2384
2385 2008-08-01  Robert Dewar  <dewar@adacore.com>
2386
2387         * gnat_ugn.texi:
2388         Minor editing, remove uncomfortable use of semicolon
2389
2390         * s-ststop.adb: Add some ??? comments
2391
2392         * sem_ch10.adb: Minor reformatting
2393
2394         * snames.ads:
2395         Minor comment fixes, some pragmas were not properly
2396         categorized in the comments, documentation change only
2397
2398         * xref_lib.adb: Minor reformatting
2399
2400         * sinput.adb: Minor reformatting
2401
2402         * gnatchop.adb: Minor reformatting
2403
2404         * sem_util.ads: Minor reformatting.
2405
2406         * opt.ads: Minor documentation fix
2407
2408         * scng.adb: Minor reformatting
2409
2410         * prj-part.adb: Update comments
2411
2412 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
2413
2414         * exp_disp.adb (Expand_Interface_Conversion): If the target type is a
2415         tagged synchronized type, use corresponding record type.
2416
2417 2008-08-01  Doug Rupp  <rupp@adacore.com>
2418
2419         * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
2420         dummy transfer address for debugging.
2421
2422         * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.
2423
2424         * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING
2425
2426 2008-07-31  Eric Botcazou  <ebotcazou@adacore.com>
2427
2428         * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
2429         * gcc-interface/utils.c (create_field_decl): Avoid superfluous work.
2430
2431 2008-07-31  Pascal Obry  <obry@adacore.com>
2432
2433         * prj-nmsc.adb: Keep Object and Exec directory casing.
2434
2435 2008-07-31  Jose Ruiz  <ruiz@adacore.com>
2436
2437         * system-rtx-rtss.ads
2438         Change the default stack size. It is important to set the commit part.
2439
2440         * s-taprop-rtx.adb
2441         (Initialize): Get the clock resolution.
2442         (RT_Resolution): Return the clock resolution that is indicated by the
2443         system.
2444
2445         * s-parame-vxworks.adb
2446         Document that this body is used for RTX in RTSS (kernel) mode.
2447
2448         * gcc-interface/Makefile.in
2449         (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
2450         s-parame-vxworks.adb body in order to have reasonable stack sizes in
2451         RTX RTSS kernel mode. Virtual memory is not used in that case, so we
2452         cannot ask for too big values.
2453
2454 2008-07-31  Robert Dewar  <dewar@adacore.com>
2455
2456         * exp_aggr.adb: Minor reformatting
2457
2458         * makeutl.adb: Minor reformatting
2459
2460         * prj-env.adb: Minor reformatting
2461
2462 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2463
2464         * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
2465         tagged type is completed by a concurrent type.
2466
2467 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
2468
2469         * sem_aggr.adb:
2470         (Resolve_Record_Aggregate): Bypass error that a type without
2471         components must have a "null record" aggregate when compiling for Ada
2472         2005, since it's legal to give an aggregate of form (others => <>)
2473         for such a type.
2474
2475 2008-07-31  Javier Miranda  <miranda@adacore.com>
2476
2477         * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
2478         handle synchronized types. Required to handle well the object.operation
2479         notation applied to synchronized types.
2480
2481 2008-07-31  Quentin Ochem  <ochem@adacore.com>
2482
2483         * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
2484         anymore - just used internally.
2485         Added handling of very small tasks - when the theoretical size is
2486         already full at the point of the call.
2487         (Report_Result): Fixed result computation, Stack_Used_When_Filling does
2488         not need to be added to the result.
2489
2490 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2491
2492         * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
2493         corresponding spec is a primitive wrapper. Update comment.
2494
2495 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2496
2497         * bindgen.adb Comment reformatting. Update the list of run-time globals.
2498         (Gen_Adainit_Ada): Add the declaration, import and value set for
2499         configuration flag Canonical_Streams.
2500         (Gen_Adainit_C): Add the declaration and initial value of external
2501         symbol __gl_canonical_streams.
2502
2503         * init.c: Update the list of global values computed by the binder.
2504
2505         * opt.ads: Add flag Canonical_Streams.
2506
2507         * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
2508         semantically handled pragmas.
2509
2510         * sem_prag.adb: Add an entry into enumeration type Sig_Flags.
2511         (Analyze_Pragma): Add case for pragma Canonical_Streams.
2512
2513         * snames.adb: Add character value for name Canonical_Streams.
2514
2515         * snames.ads:
2516         Add Name_Canonical_Streams to the list of configuration pragmas.
2517         Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
2518
2519         * snames.h: Add a definition for Pragma_Canonical_Streams.
2520
2521         * s-ststop.adb:
2522         Add a flag and import to seize the value of external symbol
2523         __gl_canonical_streams. Update comment and initial value of constant
2524         Use_Block_IO.
2525
2526         * gnat_rm.texi: Add section of pragma Canonical_Streams.
2527
2528         * gnat_ugn.texi:
2529         Add pragma Canonical_Streams to the list of configuration pragmas.
2530
2531 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2532
2533         * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
2534         has the form A.B.C and B is a unit renaming, analyze its compilation
2535         unit and add a with_clause on A.b to the context.
2536
2537 2008-07-31  Vincent Celier  <celier@adacore.com>
2538
2539         * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
2540         return the empty string, instead of raising Constraint_Error.
2541
2542 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
2543
2544         * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node.
2545
2546         * checks.adb (Apply_Accessibility_Check): Insert the check on
2547         Insert_Node.
2548
2549         * exp_attr.adb:
2550         (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
2551         to new parameter Insert_Node on call to Apply_Accessibility_Check.
2552         Necessary to distinguish the insertion node because the dereferenced
2553         formal may come from a rename, but the check must be inserted in
2554         front of the attribute.
2555
2556         * exp_ch4.adb:
2557         (Expand_N_Allocator): Pass actual for new Insert_Node parameter on
2558         call to Apply_Accessibility_Check.
2559         (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
2560         on call to Apply_Accessibility_Check.
2561         Minor reformatting
2562
2563 2008-07-31  Javier Miranda  <miranda@adacore.com>
2564
2565         * sem_type.adb (Has_Compatible_Type): Complete support for synchronized
2566         types when the candidate type is a synchronized type.
2567
2568         * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
2569         types, and complete management of synchronized types adding missing
2570         code to handle formal that is a synchronized type.
2571
2572         * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
2573         are not available and cause the compiler to blowup. Found compiling
2574         test with switch -gnatc
2575
2576         * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
2577         Has_Correct_Formal_Mode plus code cleanup.
2578
2579 2008-07-31  Bob Duff  <duff@adacore.com>
2580
2581         * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
2582         recognized as two end-of-lines, but it should be just one.
2583
2584 2008-07-31  Thomas Quinot  <quinot@adacore.com>
2585
2586         * exp_ch9.adb: Minor reformatting
2587
2588         * tbuild.ads: Fix several occurrences of incorrectly referring to
2589         Name_Find as Find_Name.
2590
2591 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2592
2593         * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
2594         and the context is an object declaration with non-static bounds, treat
2595         the aggregate as non-static.
2596
2597 2008-07-31  Vincent Celier  <celier@adacore.com>
2598
2599         * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb:
2600         Move back spec of Parse_Single_Project to body, as it is not called
2601         outside of package Prj.Part.
2602         (Project_Data): Remove components Linker_Name, Linker_Path and
2603         Minimum_Linker_Options as they are no longer set.
2604         Remove function There_Are_Ada_Sources from package Prj and move code
2605         in the only place it was used, in Prj.Env.Set_Ada_Paths.
2606
2607 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
2608
2609         * mlib-utl.ads: Fix typo.
2610
2611 2008-07-31  Robert Dewar  <dewar@adacore.com>
2612
2613         * sem_ch12.adb: Minor reformatting
2614
2615 2008-07-31  Sergey Rybin  <rybin@adacore.com>
2616
2617         * gnat_ugn.texi: Change the description of the
2618         Overly_Nested_Control_Structures: now the rule always requires a
2619         positive parameter for '+R' option
2620
2621 2008-07-31  Thomas Quinot  <quinot@adacore.com>
2622
2623         * g-pehage.adb: Minor reformatting
2624
2625 2008-07-31  Pascal Obry  <obry@adacore.com>
2626
2627         * s-finimp.ads: Minor reformatting.
2628
2629 2008-07-31  Vincent Celier  <celier@adacore.com>
2630
2631         * s-regexp.ads: Minor comment fix
2632
2633 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
2634
2635         * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
2636         so that we can compile this file successfully with -gnatc.
2637
2638 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2639
2640         * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
2641         of the type when looking for stream subprograms for type String,
2642         Wide_String and Wide_Wide_String.
2643
2644         * s-ststop.adb: Change the initialization expression of constant
2645         Use_Block_IO.
2646
2647 2008-07-31  Geert Bosch  <bosch@adacore.com>
2648
2649         * arit64.c:
2650         New file implementing __gnat_mulv64 signed integer multiplication with
2651         overflow checking
2652
2653         * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
2654
2655         * gcc-interface/gigi.h:
2656         (standard_types): Add ADT_mulv64_decl
2657         (mulv64_decl): Define subprogram declaration for __gnat_mulv64
2658
2659         * gcc-interface/utils.c:
2660         (init_gigi_decls): Add initialization of mulv64_decl
2661
2662         * gcc-interface/trans.c:
2663         (build_unary_op_trapv): New function
2664         (build_binary_op_trapv): New function
2665         (gnat_to_gnu): Use the above functions instead of
2666         build_{unary,binary}_op
2667
2668         * gcc-interface/Makefile.in
2669         (LIBGNAT_SRCS): Add arit64.c
2670         (LIBGNAT_OBJS): Add arit64.o
2671
2672 2008-07-31  Vincent Celier  <celier@adacore.com>
2673
2674         * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
2675         Linker'Default_Switches are declared. Warn if they are declared.
2676
2677 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2678
2679         * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
2680         Insert_Actions to place the pointer declaration in the code, rather
2681         than Insert_Before_And_Analyze, so that insertions of temporaries are
2682         kept in the proper order when transient scopes are present.
2683
2684
2685 2008-07-31  Robert Dewar  <dewar@adacore.com>
2686
2687         * einfo.adb (Spec_PPC): Now defined for generic subprograms
2688
2689         * einfo.ads (Spec_PPC): Now defined for generic subprograms
2690
2691         * sem_prag.adb (Check_Precondition_Postcondition): Handle generic
2692         subprogram case
2693
2694 2008-07-31  Vincent Celier  <celier@adacore.com>
2695
2696         * s-os_lib.adb: Minor comment fix
2697
2698 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2699
2700         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
2701         transfer pre/postconditions from generic copy to original tree, so that
2702         they will appear in each instance.
2703         (Process_PPCs): Do not transform postconditions into a procedure in a
2704         generic context, to prevent double expansion of check pragmas.
2705
2706         * sem_attr.adb: In an instance, the prefix of the 'result attribute
2707         can be the renaming of the
2708         current instance, so check validity of the name accordingly.
2709
2710 2008-07-31  Robert Dewar  <dewar@adacore.com>
2711
2712         * mlib-utl.ads: Minor reformatting
2713
2714 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2715
2716         sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
2717         from context. This attribute must be usable in Ada95 mode.
2718         The attribute can appear in the body of a function marked
2719         Inline_Always, but in this case the postocondition is not enforced.
2720
2721         sem_prag.adb (Check_Precondition_Postcondition): within the expansion
2722         of an inlined call pre- and postconditions are legal
2723
2724 2008-07-31  Vincent Celier  <celier@adacore.com>
2725
2726         * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that
2727         were for gprmake only
2728
2729 2008-07-31  Robert Dewar  <dewar@adacore.com>
2730
2731         * gnat_ugn.texi: Update -gnatN documentation.
2732
2733         * gnat_rm.texi: Add note about pre/postcondition
2734         pragmas not checked in conjunction with front-end inlining.
2735
2736 2008-07-31  Robert Dewar  <dewar@adacore.com>
2737
2738         * g-pehage.adb, g-pehage.ads: Minor reformatting
2739
2740 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
2741
2742         * mlib-utl.ads, prj-makr.ads: Add comments.
2743
2744 2008-07-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2745
2746         * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS)
2747         [WINDOWS]: Add s-winext.o.
2748
2749 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
2750
2751         PR ada/36554
2752         * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
2753         * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
2754         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
2755         Set precision to 1 for subtype of BOOLEAN_TYPE.
2756         (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
2757         (make_type_from_size): Deal with BOOLEAN_TYPE.
2758         * gcc-interface/misc.c (gnat_print_type): Likewise.
2759         * gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
2760         Set boolean_type_node as its translation in the table, as well
2761         as boolean_false_node for False and boolean_true_node for True.
2762         * gcc-interface/utils.c (gnat_init_decl_processing): Create custom
2763         8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
2764         (create_param_decl): Deal with BOOLEAN_TYPE.
2765         (build_vms_descriptor): Likewise.
2766         (build_vms_descriptor64): Likewise.
2767         (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
2768
2769 2008-07-30  Robert Dewar  <dewar@adacore.com>
2770
2771         * exp_ch9.adb: Minor reformatting
2772
2773         * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised
2774         if no primitive operation is found.
2775
2776         * exp_util.adb: (Find_Prim_Op): Add comments for previous change
2777
2778         * sem_ch8.adb: Minor reformatting
2779
2780 2008-07-30  Laurent Pautet  <pautet@adacore.com>
2781
2782         * g-pehage.adb:
2783         Remove a limitation on the length of the words handled by the minimal
2784         perfect hash function generator.
2785
2786         * g-pehage.ads:
2787         Detail the use of subprograms Insert, Initialize, Compute and Finalize.
2788         Fix some typos.
2789
2790 2008-07-30  Robert Dewar  <dewar@adacore.com>
2791
2792         * gnatlink.adb: Minor reformatting
2793
2794 2008-07-30  Thomas Quinot  <quinot@adacore.com>
2795
2796         * rtsfind.adb (Check_RPC): Check version consistency even when not
2797         generating RCI stubs. Provide more detailed error message in case of
2798         mismatch.
2799
2800 2008-07-30  Ed Schonberg  <schonberg@adacore.com>
2801
2802         * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
2803         as a actual in an instance, check for a missing attribute to prevent
2804         program_error on an illegal program.
2805
2806         * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
2807         error if primitive is not found, so that exception can be handled
2808         elsewhere on illegal programs.
2809
2810 2008-07-30  Robert Dewar  <dewar@adacore.com>
2811
2812         * uintp.adb (UI_GCD): Fix potential overflow
2813
2814 2008-07-30  Hristian Kirtchev  <kirtchev@adacore.com>
2815
2816         * einfo.adb: Flag245 is now used.
2817         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
2818         check to include functions.
2819         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2820         (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
2821         include functions.
2822         (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
2823         to the list of displayed flags.
2824
2825         * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and
2826         Wrapped_Entity. These two flags are now present in functions.
2827         New flag Is_Private_Primitive.
2828         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2829
2830         * exp_ch9.adb:
2831         (Build_Wrapper_Bodies): New subprogram.
2832         (Build_Wrapper_Body): The spec and body have been moved to in
2833         Build_Wrapper_ Bodies. Code cleanup.
2834         (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
2835         Wrappers are now generated for primitives declared between the private
2836         and full view of a concurrent type that implements an interface.
2837         (Build_Wrapper_Specs): New subprogram.
2838         (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
2839         creation mechanism with a call to Build_Wrapper_Bodies.
2840         (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
2841         wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
2842         (Expand_N_Task_Body): Replace the wrapper body creation
2843         mechanism with a call to Build_Wrapper_Bodies.
2844         (Expand_N_Task_Type_Declaration): Replace the wrapper spec
2845         creation mechanism with a call to Build_Wrapper_Specs.
2846         (Is_Private_Primitive_Subprogram): New subprogram.
2847         (Overriding_Possible): Code cleanup.
2848         (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.
2849
2850         * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.
2851
2852         * sem_ch3.adb: Add with and use clause for Exp_Ch9.
2853         (Process_Full_View): Build wrapper specs for all primitives
2854         that belong to a private view completed by a concurrent type
2855         implementing an interface.
2856
2857         * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
2858         is a primitive of a
2859         concurrent type with a private view that implements an interface, try to
2860         find the proper spec.
2861         (Analyze_Subprogram_Declaration): Mark a subprogram as a private
2862         primitive if the type of its first parameter is a non-generic tagged
2863         private type.
2864         (Analyze_Subprogram_Specification): Code reformatting.
2865         (Disambiguate_Spec): New routine.
2866         (Find_Corresponding_Spec): Add a flag to controll the output of errors.
2867         (Is_Private_Concurrent_Primitive): New routine.
2868
2869         * sem_ch6.ads:
2870         (Find_Corresponding_Spec): Add a formal to control the output of errors.
2871
2872 2008-07-30  Doug Rupp  <rupp@adacore.com>
2873
2874         * gigi.h (build_vms_descriptor64): New function prototype.
2875         (fill_vms_descriptor): Modified function prototype.
2876
2877         * utils.c (build_vms_descriptor64): New function.
2878
2879         * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
2880
2881         * trans.c (call_to_gnu): Call fill_vms_descriptor with new third
2882         argument.
2883
2884         * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
2885         64bit and 32bit descriptor and save the 64bit version as an alternate
2886         TREE_TYPE in the parameter.
2887         (make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
2888         thin pointer.
2889
2890         * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
2891
2892 2008-07-30  Robert Dewar  <dewar@adacore.com>
2893
2894         * make.adb: Minor reformatting
2895
2896         * mlib-utl.adb: Minor reformatting
2897
2898         * osint.ads: Minor reformatting
2899
2900 2008-07-30  Jose Ruiz  <ruiz@adacore.com>
2901
2902         * adaint.c
2903         (__gnat_file_exists): Do not use __gnat_stat for RTX.
2904         (__main for RTX in RTSS mode): Create this dummy procedure symbol to
2905         avoid the use of this symbol from libgcc.a in RTX kernel mode.
2906
2907         * cio.c
2908         (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
2909         the function RtPrintf for console output.
2910
2911         * argv.c Do not use the environ variable for RTX.
2912
2913         * gnatlink.adb (gnatlink): The part that handles the --RTS option has
2914         been moved before the call to Osint.Add_Default_Search_Dirs in order
2915         to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
2916         from the appropriate run time.
2917
2918         * targparm.ads
2919         (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
2920         target is a RTSS module for RTX.
2921
2922         * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
2923         RTX_RTSS_Kernel_Module
2924         (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.
2925
2926         * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
2927         exception handling mechanism for Windows and RTX in Win32 mode, but
2928         not for RTX in kernel mode (RTSS).
2929         (LIBGNAT_SRCS): Remove ada.h
2930
2931 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
2932
2933         * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and
2934         T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2935         (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
2936         * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS,
2937         X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS,
2938         ALL_ADA_CFLAGS): Remove.
2939         (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS,
2940         replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2941         (GCC_CFLAGS): Remove X_CFLAGS.
2942         (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS.
2943         (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS.
2944         (ADA_CFLAGS): Substitute.
2945
2946 2008-07-30  Laurent Guerby  <laurent@guerby.net>
2947
2948         PR ada/5911
2949         * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables.
2950         Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
2951         Replace stamp-gnatlib* by stamp-gnatlib*-rts.
2952         * gcc-interface/Make-lang.in: Replace stamp-gnatlib2
2953         by stamp-gnatlib2-rts.
2954
2955 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2956
2957         PR documentation/15479
2958         * gnat-style.texi: Remove AdaCore copyright statement and GPL
2959         statement for GNAT.  Add @copying stanza, use it.  Update to
2960         GFDL 1.2.  Do not list GFDL as Invariant Section, do not list
2961         title as Front-Cover Text.
2962         * gnat_rm.texi: Likewise.
2963         * gnat_ugn.texi: Likewise.
2964
2965 2008-07-29  Jan Hubicka  <jh@suse.cz>
2966
2967         * trans.c (process_inlined_subprograms): Remove tree_really_inline
2968         check.
2969
2970 2008-07-29  Arnaud Charlet  <charlet@adacore.com>
2971
2972         * gcc-interface: New directory.
2973
2974         * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
2975         utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
2976         config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
2977         to gcc-interface subdirectory.
2978
2979 2008-07-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2980
2981         * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.
2982
2983 2008-07-28  Jan Hubicka  <jh@suse.cz>
2984
2985         * misc.c (gnat_post_options): Do not set flag_no_inline.
2986
2987 2008-07-28  Richard Guenther  <rguenther@suse.de>
2988
2989         Merge from gimple-tuples-branch.
2990
2991         2008-07-22  Olivier Hainque  <hainque@adacore.com>
2992
2993         * gigi.h (end_subprog_body): New ELAB_P argument, saying if
2994         this is called for an elab proc to be discarded if empty.
2995         * utils.c (end_subprog_body): Honor ELAB_P.
2996         (build_function_stub): Adjust call to end_subprog_body.
2997         * trans.c (Subprogram_Body_to_gnu): Likewise.
2998         (gigi): Reorganize processing of elab procs to prevent
2999         gimplifying twice, using the new end_subprog_body argument.
3000
3001         2008-07-19  Richard Guenther  <rguenther@suse.de>
3002
3003         * Make-lang.in (trans.o): Add tree-iterator.h dependency.
3004         (utils.o): Likewise.
3005         * trans.c: Include tree-iterator.h.
3006         (gnat_gimplify_expr): Adjust prototype.  Fix typo.
3007         (gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
3008         (set_expr_location_from_node): Likewise.
3009         (gigi): Tuplify.
3010         * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
3011         of GENERIC_NEXT.
3012         * utils.c: Include tree-iterator.h.
3013         * gigi.h (gnat_gimplify_expr): Adjust prototype.
3014
3015         2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
3016
3017         * trans.c: Include gimple.h instead of tree-gimple.h.
3018         * utils.c: Same.
3019
3020         2008-07-14  Aldy Hernandez  <aldyh@redhat.com>
3021
3022         * trans.c (gnat_gimplify_expr): Use gimplify_assign.
3023
3024 2008-07-25  Jan Hubicka  <jh@suse.cz>
3025
3026         * utils.c (end_subprog_body): Remove inline trees check.
3027         * misc.c (gnat_post_options): Do not set flag_inline_trees.
3028
3029 2008-07-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3030
3031         * raise-gcc.c: Move tsystem.h before tm.h.
3032
3033 2008-07-20  Arnaud Charlet  <charlet@adacore.com>
3034
3035         * gnathtml.pl: New file.
3036
3037 2008-07-19  Olivier Hainque  <hainque@adacore.com>
3038
3039         * targtyps.c (get_target_default_allocator_alignment): Use
3040         MALLOC_ABI_ALIGNMENT.
3041
3042 2008-07-17  Olivier Hainque  <hainque@adacore.com>
3043
3044         * adaint.c (__MINGW32__ section): Include ctype.h and define
3045         a fallback ISALPHA if IN_RTS.
3046         (__gnat_is_absolute_path): Use ISALPHA instead of isalpha.
3047
3048 2008-07-17  Olivier Hainque  <hainque@adacore.com>
3049
3050         * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
3051         argument, to apply to references in addition to definitions.  Prevent
3052         setting TREE_STATIC on externals.
3053         (gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
3054
3055 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3056
3057         PR documentation/15479
3058         * gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
3059         Replace backets around optional parameters with @ovar
3060         where possible, use @r{[}, @r{]} otherwise.
3061         Replace some @r, @i, and @emph with @var where appropriate.
3062
3063 2008-07-02  Eric Botcazou  <ebotcazou@adacore.com>
3064
3065         * decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.
3066
3067 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3068
3069         * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix
3070         -Wc++-compat warnings.
3071         * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
3072         __gnat_locate_exec_on_path): Likewise.
3073         * decl.c (annotate_value): Likewise.
3074         * misc.c (gnat_handle_option): Likewise.
3075         * trans.c (gnat_to_gnu, extract_encoding, decode_name,
3076         post_error_ne_tree): Likewise.
3077
3078 2008-06-27  Eric Botcazou  <ebotcazou@adacore.com>
3079
3080         * utils.c (convert) <CONSTRUCTOR>: When converting it to a packable
3081         version of its type, attempt to first convert its elements.
3082
3083 2008-06-26  Chris Proctor  <chrisp_42@bigpond.com>
3084
3085         * Makefile.in: Fix *86 kfreebsd target specific pairs.
3086
3087 2008-06-25  Samuel Tardieu  <sam@rfc1149.net>
3088
3089         * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
3090
3091 2008-06-24  Eric Botcazou  <ebotcazou@adacore.com>
3092
3093         * utils2.c (known_alignment): Derive the alignment from pointed-to
3094         types only if it is otherwise unknown.
3095         <INTEGER_CST>: Tidy.
3096         <MULT_EXPR>: Likewise.
3097         <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
3098         that of the base.
3099
3100 2008-06-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3101
3102         PR ada/36573
3103         * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
3104
3105 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3106
3107         * gnat_rm.texi (Implementation Defined Characteristics)
3108         (Standard Library Routines): Use @smallexample for indented
3109         text.  Drop Indentation outside examples.
3110         * gnat_ugn.texi: Likewise.
3111
3112 2008-06-13  Olivier Hainque  <hainque@adacore.com>
3113
3114         * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
3115         if undefined.
3116         (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
3117         realignment with force_align_arg_pointer attribute on foreign
3118         convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
3119
3120 2008-06-13  Olivier Hainque  <hainque@adacore.com>
3121
3122         * utils.c (rest_of_record_type_compilation): When computing
3123         encodings for the components of a variable size type, early
3124         strip conversions on the current position expression to make
3125         sure it's shape is visible.  Use remove_conversions for this
3126         purpose.
3127
3128 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
3129
3130         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
3131         constrained subtype of a discriminated type, discard the fields that
3132         are beyond its limits according to its size.
3133
3134 2008-06-10  Olivier Hainque  <hainque@adacore.com>
3135
3136         * utils.c (create_subprog_decl): If this is for the 'main' entry
3137         point according to the asm name, redirect main_identifier_node.
3138
3139 2008-06-09  Eric Botcazou  <ebotcazou@adacore.com>
3140
3141         * decl.c (components_to_record): Adjust the packedness for the
3142         qualified union as well.
3143
3144 2008-06-09  Arnaud Charlet  <charlet@adacore.com>
3145
3146         * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
3147         checks non fatal.
3148
3149 2008-06-07  Samuel Tardieu  <sam@rfc1149.net>
3150
3151         * sem_res.adb (Large_Storage_Type): A type is large if it
3152         requires as many bits as Positive to store its values and its
3153         bounds are known at compile time.
3154         * sem_ch13.adb (Minimum_Size): Note that this function returns
3155         0 if the size is not known at compile time.
3156
3157 2008-06-06  Nicolas Setton  <setton@adacore.com>
3158             Olivier Hainque  <hainque@adacore.com>
3159
3160         * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
3161         attribute, parallel descriptive type attached to another
3162         type for debug info generation purposes.
3163         * utils.c (add_parallel_type): New function, register
3164         parallel type to be attached to a type.
3165         (get_parallel_type): New function, fetch a registered
3166         parallel type, if any.
3167         (rest_of_record_type_compilation): Register the parallel
3168         type we make for variable size records.
3169         * gigi.h (add_parallel_type, get_parallel_type): Declare.
3170         * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
3171         parallel debug types we make.
3172         * trans.c (extract_encoding, decode_name): New functions.
3173         (gigi): If the DWARF attribute extensions are available, setup
3174         to use them.
3175         * lang.opt: Register language specific processing request
3176         for -gdwarf+.
3177         * misc.c (gnat_dwarf_extensions): New global variable. How much
3178         do we want of our DWARF extensions. 0 by default.
3179         (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
3180         (gnat_post_options): Map gnat_dwarf_extensions to the
3181         commonuse_gnu_debug_info_extensions for later processing.
3182
3183 2008-06-04  Samuel Tardieu  <sam@rfc1149.net>
3184
3185         * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
3186
3187 2008-06-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3188
3189         * Makefile.in (common_tools): Fix typos in $(exeext) extension.
3190         * gnat_ugn.texi (Style Checking)
3191         (Adding the Results of Compiler Checks to gnatcheck Output)
3192         (Example of Binder Output File): Fix typos.
3193         * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
3194         exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
3195         s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
3196         s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
3197         sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
3198         sinfo.ads, utils.c: Fix typos in comments.
3199         * sem_ch6.adb, vms_data.ads: Fix typos in strings.
3200
3201 2008-05-29  Thomas Quinot  <quinot@adacore.com>
3202
3203         * sem_eval.adb: Minor reformatting
3204
3205 2008-05-29  Ed Schonberg  <schonberg@adacore.com>
3206
3207         * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
3208         is abstract, do not apply abstractness check on subprogram if this is
3209         a renaming declaration.
3210
3211 2008-05-29  Arnaud Charlet  <charlet@adacore.com>
3212
3213         PR ada/864
3214         * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
3215         allow recognition of program suffix in addition to prefix.
3216
3217         * gnatchop.adb (Locate_Executable): Add support for prefix.
3218
3219         * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
3220         mlib-utl.adb: Adjust calls to Program_Name.
3221
3222 2008-05-29  Robert Dewar  <dewar@adacore.com>
3223
3224         * sem_ch3.adb: Minor reformatting
3225         * sem_prag.adb: Minor reformatting
3226         * sem_res.adb: Minor reformatting
3227         * sinput-p.ads: Minor reformatting
3228
3229 2008-05-29  Javier Miranda  <miranda@adacore.com>
3230
3231         * sem_util.adb:
3232         (Abstract_Interface_List): Add missing support for full type-declaration
3233         associated with synchronized types.
3234
3235 2008-05-29  Robert Dewar  <dewar@adacore.com>
3236
3237         * sem_eval.adb (Is_Same_Value): Take care of several more cases
3238
3239 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
3240
3241         * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
3242         access type, wrap the expression in a conversion to force an
3243         accessibility check.
3244
3245         * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
3246         accessibility checks even when expansion is disabled in order to
3247         generate messages in the presence of previous errors or in
3248         semantics-only mode.
3249
3250 2008-05-28  Eric Botcazou  <ebotcazou@adacore.com>
3251
3252         * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
3253         * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
3254
3255 2008-05-28  Vincent Celier  <celier@adacore.com>
3256
3257         PR ada/34446
3258         * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
3259         preprocessing expressions
3260
3261 2008-05-28  Vincent Celier  <celier@adacore.com>
3262
3263         * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
3264         for preprocessing
3265
3266         * sinput-p.ads: Minor comment update and reformatting
3267
3268 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
3269
3270         * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
3271         type has a deeper level than any master only when it is the type of an
3272         access parameter.
3273
3274 2008-05-28  Javier Miranda  <miranda@adacore.com>
3275
3276         * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
3277
3278 2008-05-28  Javier Miranda  <miranda@adacore.com>
3279
3280         * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
3281         * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
3282         * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
3283         Add code that was previously located in
3284         Find_Overridden_Synchronized_Primitive because it is only used here.
3285
3286 2008-05-28  Sergey Rybin  <rybin@adacore.com>
3287
3288         * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
3289         Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
3290
3291 2008-05-28  Robert Dewar  <dewar@adacore.com>
3292
3293         * restrict.ads:
3294         Add missing restrictions, and properly label all GNAT defined ones
3295
3296         * rtsfind.ads:
3297         Add entry for Ada_Real_Time.Timing_Events.Timing_Event
3298         Add entry for Ada.Task_Termination.Set_Specific_Handler
3299         Add entry for Ada.Task_Termination.Specific_Handler
3300
3301         * s-rident.ads:
3302         Add missing restrictions and properly mark all gnat defined ones
3303
3304         * sem_ch3.adb:
3305         (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
3306
3307         * sem_res.adb:
3308         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
3309
3310         * gnat_rm.texi: Add missing restrictions, and properly label all
3311         GNAT defined ones
3312
3313 2008-05-28  Robert Dewar  <dewar@adacore.com>
3314
3315         * restrict.adb:
3316         (Check_Restriction): violation of restriction No_Finalization is
3317         treated as a serious error to stop expansion
3318
3319 2008-05-28  Robert Dewar  <dewar@adacore.com>
3320
3321         * exp_util.adb: Minor reformatting
3322         * exp_util.ads: Minor reformatting.
3323
3324 2008-05-28  Arnaud Charlet  <charlet@adacore.com>
3325
3326         * Make-lang.in: Remove gprmake.
3327
3328         * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
3329
3330 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
3331
3332         * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
3333         improper progenitor names, and avoid cascaded errors.
3334
3335 2008-05-28  Robert Dewar  <dewar@adacore.com>
3336
3337         * gnat_rm.texi: Add note on Old giving warning when applied to constant
3338
3339         * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
3340         a constant
3341
3342 2008-05-28  Robert Dewar  <dewar@adacore.com>
3343
3344         * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
3345         size
3346
3347 2008-05-28  Robert Dewar  <dewar@adacore.com>
3348
3349         * exp_ch5.adb:
3350         (Expand_Simple_Function_Return): Copy unaligned result into temporary
3351
3352 2008-05-28  Javier Miranda  <miranda@adacore.com>
3353
3354         * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
3355         for user-defined predefined primitives.
3356
3357         * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
3358         (Find_Overridden_Synchronized_Primitive): Ditto.
3359
3360         * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
3361
3362 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
3363
3364         * a-ststio.adb, s-direio.adb:
3365         Further code clean up of previous change.
3366         Update comments.
3367
3368 2008-05-27  Vincent Celier  <celier@adacore.com>
3369
3370         * prj-nmsc.adb: Minor reformatting
3371
3372 2008-05-27  Bob Duff  <duff@adacore.com>
3373
3374         * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
3375         untagged private type with a tagged full type, where the full type has
3376         a self reference, create the corresponding class-wide type early, in
3377         case the self reference is "access T'Class".
3378
3379 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3380
3381         * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
3382         tasks and context is an object declaration. create master entity before
3383         expansion.
3384
3385 2008-05-27  Robert Dewar  <dewar@adacore.com>
3386
3387         * mlib-prj.adb: Minor reformatting
3388
3389         * prj-part.adb: Minor reformatting
3390
3391         * prj.ads: Minor reformatting
3392
3393         * exp_ch3.adb: Minor reformatting.
3394
3395         * sem_ch3.ads: Minor reformatting
3396
3397         * sem_eval.adb: Minor reformatting
3398
3399 2008-05-27  Vincent Celier  <celier@adacore.com>
3400
3401         * gnatcmd.adb:
3402         <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
3403
3404 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3405
3406         * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
3407         tasks, create an activation chain now, before the expansion into
3408         assignments and build-in-place calls that require the presence of an
3409         activation chain.
3410         (Backend_Processing_Possible): If the component type is inherently
3411         limited, the aggregate must be expanded into individual built-in-place
3412         assignments.
3413
3414         * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
3415         determine whether an allocation extra parameter must be built, to
3416         handle case of a private type whose full type is a discriminated type
3417         with defaults.
3418
3419 2008-05-27  Bob Duff  <duff@adacore.com>
3420
3421         * gnat_rm.texi:
3422         Document the new behavior regarding trampolines.
3423
3424 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
3425
3426         * a-direio.adb, a-sequio.adb: Replace address clause by
3427         unrestricted_access, simpler and compatible with .NET.
3428
3429 2008-05-27  Vincent Celier  <celier@adacore.com>
3430
3431         * prj-part.adb:
3432         (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
3433         a project file, so that symbolic links are not resolved.
3434
3435 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
3436
3437         * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
3438         Replace heavy address clause by 'Unrestricted_Access, cleaner and more
3439         portable across GNAT targets, since this kind of address clause is not
3440         supported by VM back-ends (.NET/JGNAT).
3441
3442 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
3443
3444         * bindgen.adb: Update comments.
3445
3446         * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
3447
3448 2008-05-27  Vincent Celier  <celier@adacore.com>
3449
3450         * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
3451         prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
3452         mlib-tgt.adb, prj-env.adb, prj-env.ads:
3453         (Path_Information): New record type
3454         Use component of type Path_Information when there are two paths, one in
3455         canonical format and one in display format.
3456         Update the project manager to these new components.
3457
3458 2008-05-27  Robert Dewar  <dewar@adacore.com>
3459
3460         * makeutl.adb: Minor reformatting
3461         * prj-nmsc.adb: Minor reformatting
3462         * s-stausa.adb: Minor reformatting
3463         * s-stausa.ads: Minor reformatting
3464         * sem_ch6.adb: Minor reformatting
3465
3466 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3467
3468         * sem_res.adb: Minor comment fixes
3469
3470 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3471
3472         * makeutl.adb: Minor code reorganization
3473
3474         * exp_aggr.adb: Add ??? comment
3475         Fix typo
3476
3477         * exp_ch6.adb: Minor reformatting
3478
3479 2008-05-27  Quentin Ochem  <ochem@adacore.com>
3480
3481         * s-stausa.adb (Initialize): Updated result initialization, and
3482         initialization of environment stack.
3483         (Fill_Stack): Improved computation of the pattern zone, taking into
3484         account already filled at the calling point.
3485         (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
3486         Measure and Overflow_Guard.
3487         (Report_Result): Fixed computation of the result using new fields of
3488         Stack_Analyzer.
3489
3490         * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
3491         params by more explicit Stack_Size / Max_Pattern_Size params.
3492         (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
3493         Added Stack_Used_When_Filling field.
3494         (Task_Result): Replaced Measure / Overflow_Guard by more explicit
3495         Min_Measure and Max_Measure fields.
3496
3497         * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
3498
3499 2008-05-27  Vincent Celier  <celier@adacore.com>
3500
3501         * prj-nmsc.adb:
3502         (Check_File): Make sure that a unit that replaces the same unit in a
3503          project being extended is properly processed.
3504
3505 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3506
3507         * sem_ch3.adb:
3508         (Get_Discr_Value): Remove obsolete code that failed to find the value
3509         of a discriminant for an inherited task component appearing in a type
3510         extension.
3511
3512 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3513
3514         (System.File_IO.{Close, Delete, Reset}):
3515         Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
3516
3517         (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
3518         Pass File parameter by reference.
3519
3520 2008-05-27  Vincent Celier  <celier@adacore.com>
3521
3522         * prj-nmsc.adb:
3523         (Process_Sources_In_Multi_Language_Mode): Check that there are not two
3524         sources of the same project that have the same object file name.
3525         (Find_Explicit_Sources): Always remove a source exception that was not
3526         found.
3527
3528 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3529
3530         * sem_ch3.adb: Minor reformatting
3531
3532 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3533
3534         * sem_ch6.adb:
3535         (Is_Interface_Conformant): Handle properly a primitive operation that
3536         overrides an interface function with a controlling access result.
3537         (Type_Conformance): If Skip_Controlling_Formals is true, when matching
3538         inherited and overriding operations, omit as well the conformance check
3539         on result types, to prevent spurious errors.
3540
3541 2008-05-27  Vincent Celier  <celier@adacore.com>
3542
3543         * makeutl.ads, makeutl.adb:
3544         (Set_Location): New procedure
3545         (Get_Location): New function
3546         (Update_Main): New procedure
3547
3548 2008-05-27  Vincent Celier  <celier@adacore.com>
3549
3550         * prj-nmsc.adb:
3551         (Check_Library): Allow standard project to be extended as a static
3552         library project.
3553         (Get_Mains): Do not inherit attribute Main in an extending library
3554         project.
3555
3556 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
3557
3558         * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
3559         * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
3560         * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
3561         * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
3562         * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
3563         * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
3564         * system-mingw.ads (Always_Compatible_Rep): Likewise.
3565         * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
3566         * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
3567         * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
3568
3569 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3570
3571         * sem_attr.adb: add guard to previous patch.
3572
3573 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3574
3575         * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
3576         a synchronized tagged type, do not attempt to build dispatch table for
3577         full view. The table is built for the corresponding record type, which
3578         has its own declaration.
3579
3580 2008-05-27  Gary Dismukes  <dismukes@adacore.com>
3581
3582         * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
3583         to the known type entity E, rather than setting it to Any_Type. Fixes
3584         possible blowup in function Base_Init_Proc, as called from Freeze_Entity
3585         for objects whose type had an illegal constraint.
3586
3587 2008-05-27  Vincent Celier  <celier@adacore.com>
3588
3589         * gnat_ugn.texi:
3590         Add succinct documentation for attribute Excluded_Source_List_File
3591
3592 2008-05-27  Vincent Celier  <celier@adacore.com>
3593
3594         * prj-attr.adb: Add new project level attribute Map_File_Option
3595
3596         * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
3597
3598         * prj.ads: Minor reformatting and comment update
3599         (Project_Configuration): New component Map_File_Option
3600
3601         * snames.adb: New standard name Map_File_Option
3602
3603         * snames.ads: New standard name Map_File_Option
3604
3605 2008-05-27  Vincent Celier  <celier@adacore.com>
3606
3607         * xsnames.adb: Remove unused variable Oname
3608
3609 2008-05-27  Doug Rupp  <rupp@adacore.com>
3610
3611         * exp_ch6.adb:
3612         (Expand_N_Function_Call): Fix comments. Minor reformatting.
3613
3614         * exp_vfpt.ads:
3615         (Expand_Vax_Foreign_Return): Fix comments.
3616
3617 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3618
3619         * exp_dist.adb: Minor reformating
3620
3621 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
3622
3623         * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
3624         No_Default_Initialization, which is now delayed until the freeze point
3625         of the object. Add a comment about deferral of the check.
3626
3627         * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
3628         on objects is moved here.
3629
3630 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3631
3632         * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
3633         (Compare_Array_S16): Adjust for above change.
3634         * s-casi32.adb (Uword): Likewise.
3635         (Compare_Array_S32): Likewise.
3636         * s-casi64.adb (Uword): Likewise.
3637         (Compare_Array_S64): Likewise.
3638         * s-caun16.adb (Uhalf): Likewise.
3639         (Compare_Array_U16): Likewise.
3640         * s-caun32.adb (Uword): Likewise.
3641         (Compare_Array_U32): Likewise.
3642         * s-caun64.adb (Uword): Likewise.
3643         (Compare_Array_U64): Likewise.
3644
3645 2008-05-26  Robert Dewar  <dewar@adacore.com>
3646
3647         * exp_ch6.adb: Add ??? comment for previous change
3648
3649         * exp_vfpt.adb: Minor reformatting
3650
3651         * exp_vfpt.ads: Add ??? comment for last change
3652
3653         * sem_attr.adb: Add some ??? comments for previous change
3654
3655         * s-vaflop.ads: Add comments for previous change
3656
3657 2008-05-26  Doug Rupp  <rupp@adacore.com>
3658
3659         * s-vaflop-vms-alpha.adb:
3660         Remove System.IO use clause, to prevent spurious ambiguities when
3661         package is access through rtsfind.
3662
3663 2008-05-26  Sergey Rybin  <rybin@adacore.com>
3664
3665         * tree_io.ads (ASIS_Version_Number): Update because of the changes
3666         made in front-end
3667
3668 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3669
3670         * sem_attr.adb:
3671         (Resolve_Attribute, case 'address):  S (A .. B)' address can be safely
3672         converted to S (A)'address only if A .. B is known to be a non-null
3673         range.
3674
3675 2008-05-26  Doug Rupp  <rupp@adacore.com>
3676
3677         * s-vaflop.adb:
3678         (Return_D, Return_F, Return_G): New functions.
3679
3680         * s-vaflop.ads:
3681         (Return_D, Return_F, Return_G): New functions.
3682
3683         * exp_vfpt.adb:
3684         (Expand_Vax_Foreign_Return): New procedure
3685
3686         * exp_vfpt.ads:
3687         (Expand_Vax_Foreign_Return): New procedure
3688
3689         * rtsfind.ads:
3690         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
3691         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
3692
3693         * exp_ch6.adb:
3694         Import Exp_Vfpt
3695         (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
3696
3697         * s-vaflop-vms-alpha.adb:
3698         (Return_D, Return_F, Return_G): New functions.
3699
3700 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
3701
3702         * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
3703         init proc entity when there is actual default initialization associated
3704         with the component type, to avoid spurious errors on objects of scalar
3705         array types that are marked Is_Public when No_Default_Initialization
3706         applies.
3707
3708 2008-05-26  Thomas Quinot  <quinot@adacore.com>
3709
3710         * rtsfind.ads, rtsfind.adb:
3711         (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
3712         (Check_RPC): Support per-PCS-kind API versioning.
3713
3714         exp_dist.ads, exp_dist.adb:
3715         (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
3716         (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
3717          library function Get_RACW.
3718         (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
3719         library function Get_Reference.
3720         (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
3721         through an intermediate Any.
3722         (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
3723         going through an intermediate Any.
3724
3725         * sem_dist.adb: Minor reformatting.
3726
3727 2008-05-26  Javier Miranda  <miranda@adacore.com>
3728
3729         * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
3730         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3731         (Is_Internal): Adding documentation on internal entities that have
3732         attribute Interface_Alias (old attribute Abstract_Interface_Alias)
3733
3734         * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
3735         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3736         Added assertion to force entities with this attribute to have
3737         attribute Is_Internal set to True.
3738         (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
3739
3740         * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
3741         renamed as Derive_Progenitor_Subprograms. In addition, its code is
3742         a new implementation.
3743         (Add_Interface_Tag_Components): Remove special management of
3744         synchronized interfaces.
3745         (Analyze_Interface_Declaration): Minor reformating
3746         (Build_Derived_Record_Type): Minor reformating
3747         (Check_Abstract_Overriding): Avoid reporting error in case of abstract
3748         predefined primitive inherited from interface type because the body of
3749         internally generated predefined primitives of tagged types are generated
3750         later by Freeze_Type
3751         (Derive_Subprogram): Avoid generating an internal name if the parent
3752         subprogram overrides an interface primitive.
3753         (Derive_Subprograms): New implementation that keeps separate the
3754         management of tagged types not implementing interfaces, from tagged
3755         types that implement interfaces.
3756         (Is_Progenitor): New implementation.
3757         (Process_Full_View): Add documentation
3758         (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
3759         by call to Derive_Progenitor_Subprograms.
3760
3761         * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
3762         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3763         Skip_Controlling_Formals.
3764
3765         * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
3766         (Check_Conventions): New implementation. Remove local subprogram
3767         Skip_Check. Remove formal Search_From of routine Check_Convention.
3768         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3769         Skip_Controlling_Formals.
3770         (New_Overloaded_Entity): Enable addition of predefined dispatching
3771         operations.
3772
3773         * sem_disp.ads
3774         (Find_Primitive_Covering_Interface): New subprogram.
3775
3776         * sem_disp.adb (Check_Dispatching_Operation): Disable registering
3777         the task body procedure as a primitive of the corresponding tagged
3778         type.
3779         (Check_Operation_From_Private_Type): Avoid adding twice an entity
3780         to the list of primitives.
3781         (Find_Primitive_Covering_Interface): New subprogram.
3782         (Override_Dispatching_Operation): Add documentation.
3783
3784         * sem_type.adb (Covers): Minor reformatings
3785
3786         * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
3787         Collect_Interfaces.
3788         Rename formal.
3789         (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
3790         (Implements_Interface): New subprogram.
3791         (Is_Parent): Removed.
3792         (Primitive_Names_Match): New subprogram.
3793         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3794         (Ultimate_Alias): New subprogram.
3795
3796         * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
3797         Collect_Interfaces.
3798         Remove special management for synchronized types. Rename formal. Remove
3799         internal subprograms Interface_Present_In_Parent and Add_Interface.
3800         (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
3801         on non-record types by code to return false in such case.
3802         (Implements_Interface): New subprogram.
3803         (Is_Parent): Removed. No special management is now required for
3804         synchronized types covering interfaces.
3805         (Primitive_Names_Match): New subprogram.
3806         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3807         (Ultimate_Alias): New subprogram.
3808
3809         * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
3810         Add internal entities associated with secondary dispatch tables to
3811         the list of tagged type primitives that are not interfaces.
3812         (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
3813         (Make_Predefined_Primitive_Specs): Code reorganization to improve
3814         the management of predefined equality operator. In addition, if
3815         the type has an equality function corresponding with a primitive
3816         defined in an interface type, the inherited equality is abstract
3817         as well, and no body can be created for it.
3818
3819         * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
3820         exp_util to exp_disp.
3821         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
3822         an entity corresponds with one of the predefined primitives required
3823         to implement interfaces.
3824         Update copyright notice.
3825
3826         * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
3827         final check on abstract subprograms all the primitives associated with
3828         interface primitives because they must be visible in the public and
3829         private part.
3830         (Write_DT): Use Find_Dispatching_Type to locate the name of the
3831         interface type. This allows the use of this routine, for debugging
3832         purposes, when the tagged type is not fully decorated.
3833         (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
3834         Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
3835         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
3836         entity corresponds with one of the predefined primitives required to
3837         implement interfaces.
3838
3839         * exp_util.adb (Find_Interface_ADT): New implementation
3840         (Find_Interface): Removed.
3841
3842         * sprint.adb (Sprint_Node_Actual): Generate missing output for the
3843         list of interfaces associated with nodes
3844         N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
3845
3846 2008-05-26  Thomas Quinot  <quinot@adacore.com>
3847
3848         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
3849         condition for assignment to temporary.
3850
3851 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3852
3853         * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
3854         checks on the upper bound if the index type is a modular type, to
3855         prevent wrap-around computations when size is close to upper bound of
3856         type.
3857
3858 2008-05-26  Robert Dewar  <dewar@adacore.com>
3859
3860         * sem_ch3.adb: Minor reformatting
3861
3862 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3863
3864         * sem_ch12.adb (Remove_Parent): Use specification of instance
3865         to retrieve generic parent,
3866         to handle properly the case where the instance is a child unit.
3867         Add guard to handle properly wrapper packages.
3868         Minor reformatting
3869
3870 2008-05-26  Thomas Quinot  <quinot@adacore.com>
3871
3872         * sinfo.ads: Minor reformatting
3873
3874 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
3875
3876         * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
3877         Generate a tag check when the result subtype of a function, defined by
3878         an access definition, designates a specific tagged type.
3879         (Make_Tag_Check): New routine.
3880
3881 2008-05-26  Arnaud Charlet  <charlet@adacore.com>
3882
3883         * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
3884
3885 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3886
3887         * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
3888         (builtin_decl_for): Likewise.
3889         * trans.c (gigi): Likewise.
3890         * utils.c (def_builtin_1): Fix formatting.
3891
3892 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
3893
3894         * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
3895         Create the statements which map a string name to protected or task
3896         entry indix.
3897
3898         * exp_ch9.adb: Add with and use clause for Stringt.
3899         Minor code reformatting.
3900         (Build_Entry_Names): New routine.
3901         (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
3902         for flag Build_Entry_Names which controls the allocation of the data
3903         structure for the string names of entries.
3904
3905         * exp_ch9.ads (Build_Entry_Names): New subprogram.
3906
3907         * exp_util.adb (Entry_Names_OK): New function.
3908
3909         * exp_util.ads (Entry_Names_OK): New function.
3910
3911         * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
3912         enumerations RE_Id and RE_Unit_Table.
3913
3914         * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
3915         (Free_Entry_Names_Array): New routine.
3916
3917         * s-taskin.ads: Comment reformatting.
3918         Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
3919         Add component Entry_Names to record Ada_Task_Control_Block.
3920         (Free_Entry_Names_Array): New routine.
3921
3922         * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
3923         dynamically allocate an array
3924         of string pointers. This structure holds string entry names.
3925         (Free_Entry_Names): New routine.
3926         (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
3927         (Set_Entry_Names): New routine.
3928
3929         * s-tassta.ads:
3930         (Create_Task): Add formal Build_Entry_Names. The flag is used to
3931         control the allocation of the data structure which stores entry names.
3932         (Set_Entry_Name): New routine.
3933
3934         * s-tpoben.adb:
3935         Add with and use clause for Ada.Unchecked_Conversion.
3936         (Finalize): Deallocate the entry names array.
3937         (Free_Entry_Names): New routine.
3938         (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
3939         create an array of string pointers to hold the entry names.
3940         (Set_Entry_Name): New routine.
3941
3942         * s-tpoben.ads:
3943         Add field Entry_Names to record Protection_Entries.
3944         (Initialize_Protection_Entries): Add formal Build_Entry_Names.
3945         (Set_Entry_Name): New routine.
3946
3947 2008-05-26  Vincent Celier  <celier@adacore.com>
3948
3949         * prj-nmsc.adb:
3950         (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
3951
3952         * prj.ads:
3953         (Project_Configuration): New component Shared_Lib_Driver
3954
3955 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3956
3957         * inline.adb:
3958         (Cleanup_Scopes): For a protected operation, transfer finalization list
3959         to protected body subprogram, to force cleanup actions when needed.
3960
3961 2008-05-26  Robert Dewar  <dewar@adacore.com>
3962
3963         * sem_cat.adb: Minor reformatting
3964
3965         * gnatname.adb: Minor reformatting
3966
3967         * osint.ads: Minor reformatting
3968
3969         * s-carun8.ads: Minor reformatting
3970
3971         * g-heasor.ads: Minor comment fix (unit is now pure)
3972
3973 2008-05-26  Robert Dewar  <dewar@adacore.com>
3974
3975         * exp_ch2.adb:
3976         (Expand_Current_Value): Properly type generated integer literal
3977
3978 2008-05-26  Sergey Rybin  <rybin@adacore.com>
3979
3980         * gnat_ugn.texi: Add description for the new gnatcheck rule -
3981         Separate_Numeric_Error_Handlers.
3982
3983 2008-05-26  Pascal Obry  <obry@adacore.com>
3984
3985         * sem_aggr.adb: Minor reformatting.
3986
3987 2008-05-26  Jose Ruiz  <ruiz@adacore.com>
3988
3989         * s-osinte-aix.adb:
3990         (To_Target_Priority): Setting the time slice value to 0 or greater sets
3991         the scheduling policy to FIFO within priorities or round-robin
3992         respectively.
3993         Hence, the priority must be set in this case to the one selected by the
3994         user.
3995
3996 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3997
3998         * sem_ch12.adb:
3999         (Remove_Parent): If the enclosing scope is an instance whose generic
4000         parent is declared within some parent scope of the just completed
4001         instance, make full views of the entities in that parent visible, when
4002         applicable.
4003
4004 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
4005
4006         * mingw32.h (STD_MINGW): Set to true for target w64.
4007
4008 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
4009
4010         * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
4011         instead of TREE_STATIC on the ADDR_EXPR.
4012
4013 2008-05-24  Eric Botcazou  <ebotcazou@adacore.com>
4014
4015         * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
4016         (Sloc_to_locus): Do not overwrite known GCC locations when translating
4017         GNAT standard locations.
4018
4019 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
4020
4021         * gigi.h (mark_visited): Declare.
4022         * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
4023         only the topmost node of expressions.
4024         (elaborate_expression_1): Look deeper for read-only variables.
4025         * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
4026         (mark_visited): Move logic to mark_visited_r.  Invoke walk_tree.
4027         (mark_visited_r): New function.
4028
4029 2008-05-23  Vincent Celier  <celier@adacore.com>
4030
4031         * snames.adb: New standard name Excluded_Source_List_File.
4032
4033         * snames.ads: New standard name Excluded_Source_List_File.
4034
4035         * prj-attr.adb: New project level attribute Excluded_Source_List_File.
4036
4037         * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
4038         Get excluded sources from
4039         file indicated by attribute Excluded_Source_List_File, when present and
4040         neither Excluded_Source_Files nor Locally_Removed_Files are declared.
4041
4042 2008-05-23  Robert Dewar  <dewar@adacore.com>
4043
4044         * exp_dist.adb: Minor reformatting
4045
4046 2008-05-23  Ed Schonberg  <schonberg@adacore.com>
4047
4048         * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
4049         slice, convert it to an indexed component, which is equivalent, more
4050         efficient, and usable even if the slice itself is not addressable.
4051
4052 2008-05-23  Olivier Hainque  <hainque@adacore.com>
4053
4054         * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
4055         convention also allows access to named compiler built-in subprograms
4056         such as the GCC __builtin family.
4057
4058 2008-05-23  Vincent Celier  <celier@adacore.com>
4059
4060         * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
4061         sep. If there are several possibilities, choose the one with the
4062         longer prefix.
4063
4064 2008-05-23  Vincent Celier  <celier@adacore.com>
4065
4066         * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
4067         back end switches when executable specified with --GCC= is same as
4068         default, even if there are additional options.
4069
4070         * gnat_ugn.texi:
4071         Document when the back end switches from the ALI file are taken into
4072         account when gnatlink is invoked with --GCC=
4073
4074 2008-05-23  Thomas Quinot  <quinot@adacore.com>
4075
4076         * s-os_lib.adb:
4077         (copy_File): Do not open destination file if source file is unreadable.
4078
4079 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
4080
4081         * utils.c (handle_type_generic_attribute): Adjust to accept
4082         fixed arguments before an elipsis.
4083
4084 2008-05-21  Thomas Quinot  <quinot@adacore.com>
4085
4086         * g-sothco.ads, g-sothco.adb: New files.
4087
4088 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4089
4090         * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
4091
4092         * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
4093         Add missing "with" of Ada.Unchecked_Conversion
4094
4095         * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads,
4096         g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads,
4097         g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
4098         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
4099         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
4100         g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads:
4101         Move common code out of GNAT.Sockets.Thin implementations and into
4102         Thin_Common.
4103         New constant SIZEOF_fd_set
4104         New flag Has_Sockaddr_Len
4105         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
4106
4107         * g-stsifd-sockets.adb
4108         (Create): Remove call to Set_Length; use Set_Family to set the family
4109         and (on appropriate platforms) length fields in struct sockaddr.
4110
4111         * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb,
4112         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb,
4113         g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
4114         Move common code out of GNAT.Sockets.Thin implementations and into
4115         Thin_Common.
4116
4117         * g-socket.ads, g-socket.adb:
4118         Move common code out of GNAT.Sockets.Thin implementations and into
4119         Thin_Common.
4120         (Connect_Socket, Accept_Socket): Provide new versions of these two
4121         routines that operate with a user specified timeout.
4122         (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
4123         this is now handled automatically by Set_Family on platforms that
4124         require it.
4125
4126         * gen-soccon.c:
4127         Move common code out of GNAT.Sockets.Thin implementations and into
4128         Thin_Common.
4129         (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
4130         this constant to 0 (not -1) because we use it to initialize an
4131         unsigned_char value.
4132         Align values for numeric constants only.
4133         Handle the case of systems that do not support AF_INET6.
4134         New constant SIZEOF_fd_set
4135         New flag Has_Sockaddr_Len
4136         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
4137
4138         * gsocket.h: New flag Has_Sockaddr_Len
4139         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
4140
4141 2008-05-20  Santiago Uruena  <uruena@adacore.com>
4142
4143         * i-cobol.ads: Interfaces.COBOL should be preelaborate.
4144
4145 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
4146
4147         * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
4148         the underlying issue with malloc/free has been fixed. Remove associated
4149         comments.
4150         Minor reformatting.
4151         Related to PR ada/24533
4152
4153 2008-05-20  Robert Dewar  <dewar@adacore.com>
4154
4155         * ali.adb: Correct casing of ASCII.NUL
4156
4157         * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
4158         properly.
4159
4160 2008-05-20  Robert Dewar  <dewar@adacore.com>
4161             Gary Dismukes  <dismukes@adacore.com>
4162
4163         * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
4164         overflow if result converted to wider integer type.
4165         (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
4166         discriminated types when discriminant checks are suppressed.
4167
4168 2008-05-20  Vincent Celier  <celier@adacore.com>
4169
4170         * cstand.adb (Print_Standard): Issue the correct Size clause for type
4171         Wide_Wide_Character.
4172
4173 2008-05-20  Tristan Gingold  <gingold@adacore.com>
4174
4175         * decl.c: Do not emit a variable for a object that has an address
4176         representation clause whose value is known at compile time.
4177         When a variable has an address clause whose value is known at compile
4178         time, refer to this variable by using directly the address instead of
4179         dereferencing a pointer.
4180
4181 2008-05-20  Robert Dewar  <dewar@adacore.com>
4182
4183         PR ada/30740
4184         * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
4185         subtypes, always False for non-modular types.
4186         Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
4187         entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
4188         for Shared_Storage package.
4189         (Is_RACW_Stub_Type): New entity flag.
4190
4191         * exp_ch4.adb
4192         (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
4193         case where we have a modular type with a non-binary modules.
4194         Comments reformattings.
4195
4196         * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
4197         all types.
4198
4199 2008-05-20  Javier Miranda  <miranda@adacore.com>
4200
4201         * exp_aggr.adb
4202         (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
4203         tests did not covered the case in which the type of the aggregate has
4204         no progenitors but some its parents has progenitors.
4205
4206 2008-05-20  Gary Dismukes  <dismukes@adacore.com>
4207             Hristian Kirtchev  <kirtchev@adacore.com>
4208
4209         * exp_ch3.adb
4210         (Expand_N_Object_Declaration): Correct the condition which triggers the
4211         generation of a call to Displace when initializing a class-wide object.
4212         (Build_Dcheck_Functions): Build discriminant-checking for null variants
4213         when Frontend_Layout_On_Target is true to ensure that they're available
4214         for calling when a record variant size function is built in Layout.
4215
4216 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4217
4218         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
4219         procedure for a derived type retrieve the discriminant values from the
4220         parent using the corresponding discriminant.
4221         (Expand_N_Assignment_Statement): Skip generation of implicit
4222         if-statement associated with controlled types if we are
4223         compiling with restriction No_Finalization.
4224
4225 2008-05-20  Vincent Celier  <celier@adacore.com>
4226
4227         * prj.adb (Hash (Project_Id)): New function
4228         (Project_Empty): Add new component Interfaces_Defined
4229
4230         * prj.ads (Source_Data): New component Object_Linked
4231         (Language_Config): New components Object_Generated and Objects_Linked
4232         (Hash (Project_Id)): New function
4233         (Source_Data): New Boolean components In_Interfaces and
4234         Declared_In_Interfaces.
4235         (Project_Data): New Boolean component Interfaces_Defined
4236
4237         * prj-attr.adb:
4238         New project level attribute Object_Generated and Objects_Linked
4239         Add new project level attribute Interfaces
4240
4241         * prj-dect.adb: Use functions Present and No throughout
4242         (Parse_Variable_Declaration): If a string type is specified as a simple
4243         name and is not found in the current project, look for it also in the
4244         ancestors of the project.
4245
4246         * prj-makr.adb:
4247         Replace procedure Make with procedures Initialize, Process and Finalize
4248         to implement H414-023: process different directories with different
4249         patterns.
4250         Use functions Present and No throughout
4251
4252         * prj-makr.ads:
4253         Replace procedure Make with procedures Initialize, Process and Finalize
4254
4255         * prj-nmsc.adb
4256         (Add_Source): Set component Object_Exists and Object_Linked accordnig to
4257         the language configuration.
4258         (Process_Project_Level_Array_Attributes): Process new attributes
4259         Object_Generated and Object_Linked.
4260         (Report_No_Sources): New Boolean parameter Continuation, defaulted to
4261         False, to indicate that the erreor/warning is a continuation.
4262         (Check): Call Report_No_Sources with Contnuation = True after the first
4263         call.
4264         (Error_Msg): Process successively contnuation character and warning
4265         character.
4266         (Find_Explicit_Sources): Check that all declared sources have been found
4267         (Check_File): Indicate in hash table Source_Names when a declared source
4268         is found.
4269         (Check_File): Set Other_Part when found
4270         (Find_Explicit_Sources): In multi language mode, check if all exceptions
4271         to the naming scheme have been found. For Ada, report an error if an
4272         exception has not been found. Otherwise, disregard the exception.
4273         (Check_Interfaces): New procedure
4274         (Add_Source): When Other_Part is defined, set mutual pointers in spec
4275         and body.
4276         (Check): In multi-language mode, call Check_Interfaces
4277         (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
4278         for an excluded source.
4279         (Remove_Source): A source replacing a source in the interfaces is also
4280         in the interfaces.
4281
4282         * prj-pars.adb: Use function Present
4283
4284         * prj-part.adb: Use functions Present and No throughout
4285         (Parse_Single_Project): Set the parent project for child projects
4286         (Create_Virtual_Extending_Project): Register project with no qualifier
4287         (Parse_Single_Project): Allow an abstract project to be extend several
4288         times. Do not allow an abstract project to extend a non abstract
4289         project.
4290
4291         * prj-pp.adb: Use functions Present and No throughout
4292         (Print): Take into account the full associative array attribute
4293         declarations.
4294
4295         * prj-proc.adb: Use functions Present and No throughout
4296         (Expression): Call itself with the same From_Project_Node for the
4297         default value of an external reference.
4298
4299         * prj-strt.adb: Use functions Present and No throughout
4300         (Parse_Variable_Reference): If a variable is specified as a simple name
4301         and is not found in the current project, look for it also in the
4302         ancestors of the project.
4303
4304         * prj-tree.ads, prj-tree.adb (Present): New function
4305         (No): New function
4306         Use functions Present and No throughout
4307         (Parent_Project_Of): New function
4308         (Set_Parent_Project_Of): New procedure
4309
4310         * snames.ads, snames.adb:
4311         Add new standard names Object_Generated and Objects_Linked
4312
4313 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
4314
4315         * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
4316         and the derived type are of the same kind.
4317         (Expand_Call): Generate type conversions for actuals of
4318         record or array types when the parent and the derived types differ in
4319         size and/or packed status.
4320
4321 2008-05-20  Javier Miranda  <miranda@adacore.com>
4322             Ed Schonberg  <schonberg@adacore.com>
4323
4324         * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
4325         generating dispatch tables of locally defined tagged types statically.
4326         Remove implicit if-statement that is no longer required.
4327         (Expand_Dispatching_Call): If this is a call to an instance of the
4328         generic dispatching constructor, the type of the first argument may be
4329         a subtype of Tag, so always use the base type to recognize this case.
4330
4331 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4332
4333         * exp_dist.adb
4334         (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
4335         and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
4336         assigning NULL into the result, to avoid a spurious warning.
4337         (Add_RACW_Features, case Same_Scope): Add assertion that designated type
4338         is not frozen.
4339         (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
4340         type.
4341         (Build_From_Any_Function, Build_To_Any_Function,
4342         Build_TypeCode_Function): For a type that has user-specified stream
4343         attributes, use an opaque sequence of octets as the representation.
4344
4345 2008-05-20  Kevin Pouget  <pouget@adacore.com>
4346
4347         * exp_smem.ads, exp_smem.adb: Construction of access and assign
4348         routines has been replaced by an instantiation of
4349         System.Shared_Storage.Shared_Var_Procs generic package, while expanding
4350         shared variable declaration.
4351         Calls to access and assign routines have been replaced by calls to
4352         Read/Write routines of System.Shared_Storage.Shared_Var_Procs
4353         instantiated package.
4354
4355         * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
4356         It identifies the new generic package added in s-shasto.
4357
4358         * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
4359         is instantiated for each shared passive variable. It provides
4360         supporting procedures called upon each read or write access by the
4361         expanded code.
4362
4363         * sem_attr.adb:
4364         For this runtime unit (always compiled in GNAT mode), we allow
4365         stream attributes references for limited types for the case where
4366         shared passive objects are implemented using stream attributes,
4367         which is the default in GNAT's persistent storage implementation.
4368
4369 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4370
4371         * freeze.adb
4372         (Freeze_Enumeration_Type): For a subtype that inherits a foreign
4373         convention from its base type, do not set the type to that of integer,
4374         because it may inherit a size clause.
4375         Warn on a size clause with a size different
4376         from that of Integer, if the type has convention C.
4377
4378 2008-05-20  Vincent Celier  <celier@adacore.com>
4379
4380         * gnatname.adb
4381         (Scan_Args): Rewrite to take into account new switch --and to separate
4382         arguments into sections.
4383         (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
4384         section, then Finalize.
4385
4386 2008-05-20  Tristan Gingold  <gingold@adacore.com>
4387
4388         * init.c: Enable stack probing on ppc-linux.
4389
4390         * tracebak.c: Add symbolic traceback for ppc-linux.
4391
4392         * system-linux-ppc.ads: Enable stack probing on ppc-linux.
4393
4394 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
4395
4396         * Makefile.in
4397         (common-tools): New rule, to avoid parallel build failure on gnat tools.
4398         Reenable parallel builds on this Makefile.
4399
4400         * Make-lang.in: Update dependencies.
4401
4402 2008-05-20  Robert Dewar  <dewar@adacore.com>
4403
4404         * opt.ads (Treat_Restrictions_As_Warnings): New switch
4405
4406         * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
4407         Treat_Restrictions_As_Warnings.
4408
4409         * switch-c.adb: Recognize new switch -gnatr
4410
4411         * usage.adb: Add line for -gnatr
4412
4413 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
4414
4415         * par-ch3.adb
4416         (P_Access_Definition): Change the error message when parsing "access
4417         all" in Ada 95 mode. The message no longer forces the user to recompile
4418         in 05 mode only to discover that anonymous access types are not allowed
4419         to have "all".
4420
4421 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
4422
4423         * par-ch9.adb
4424         (P_Protected): Update the error message on missing "-gnat05" switch when
4425         using interfaces in conjunction with protected types. Remove the
4426         incorrect error message associated with the presence of "private" after
4427         a "with".
4428
4429 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4430
4431         * sem_aggr.adb: Update comments.
4432         Improve previous change for PR ada/17985
4433
4434 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4435
4436         * sem_cat.adb
4437         (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
4438         the visible part of the spec of a remote types unit.
4439         (Validate_Remote_Access_Object_Type_Declaration):
4440         New local subprogram Is_Valid_Remote_Object_Type, replaces
4441         Is_Recursively_Limited_Private.
4442         (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
4443         non-controlling formals (and the return type, even though this is not
4444         explicit in the standard) must support external streaming.
4445         (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
4446         as above for of RAS types and RCI subprograms. (The return type is not
4447         checked yet).
4448         Update comments related to RACWs designating limited interfaces per
4449         ARG ruling on AI05-060.
4450
4451         * sem_util.ads, sem_util.adb
4452         (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
4453         Is_Remote_Call_Interface to identify RACW types in a stable and
4454         consistent way. We used to rely in this predicate on the privateness of
4455         the designated type and its ancestors, but depending on the currently
4456         visible private parts, this caused false negatives. We now uniformly
4457         rely on checks made at the point where the RACW type is declared.
4458         (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
4459
4460 2008-05-20  Javier Miranda  <miranda@adacore.com>
4461             Ed Schonberg  <schonberg@adacore.com>
4462             Hristian Kirtchev  <kirtchev@adacore.com>
4463
4464         * sem_ch3.adb
4465         (Analyze_Object_Declaration): Fix over-conservative condition
4466         restricting use of predefined assignment with tagged types that have
4467         convention CPP.
4468         (Analyze_Object_Declaration): Relax the check regarding deferred
4469         constants declared in scopes other than packages since they can be
4470         completed with pragma Import.
4471         Add missing escaping of all-caps word 'CPP' in error messages.
4472         (Build_Discriminated_Subtype): Do not inherit representation clauses
4473         from parent type if subtype already carries them, because they are
4474         inherited earlier during derivation and already include those that may
4475         come from a partial view.
4476
4477         * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
4478         Check the declarations of a subprogram body for proper deferred
4479         constant completion.
4480
4481         * sem_ch7.ads, sem_ch7.adb
4482         (Inspect_Deferred_Constant_Completion): Moved to sem_util.
4483
4484 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4485             Thomas Quinot  <quinot@adacore.com>
4486
4487         * sem_ch4.adb
4488         (Try_Indexed_Call): Handle properly a construct of the form F(S) where
4489         F is a parameterless function that returns an array, and S is a subtype
4490         mark.
4491         (Analyze_Call): Insert dereference when the prefix is a parameterless
4492         function that returns an access to subprogram and the call has
4493         parameters.
4494         Reject a non-overloaded call whose name resolves to denote
4495         a primitive operation of the stub type generated to support a remote
4496         access-to-class-wide type.
4497
4498 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4499
4500         * sem_ch8.adb
4501         (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
4502         when there is a use clause for the same entity in the context.
4503         (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
4504         created for a stream attribute of an abstract type or interface type.
4505
4506 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4507
4508         * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
4509         subprogram.
4510
4511         * sem_type.adb
4512         (Add_One_Interp): Ignore any interpretation that is a primitive
4513         operation of an RACW stub type (these primitives are only executed
4514         through dispatching, never through static calls).
4515         (Collect_Interps): When only one interpretation has been found, set N's
4516         Entity and Etype to that interpretation, otherwise Entity and Etype may
4517         still refer to an interpretation that was ignored by Add_One_Interp,
4518         in which case would end up with being marked as not overloaded but with
4519         an Entity attribute not pointing to its (unique) correct interpretation.
4520
4521 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4522
4523         * sem_eval.adb
4524         (Eval_Slice): Warn when a slice whose discrete range is a subtype name
4525         denotes the whole array of its prefix.
4526
4527 2008-05-20  Robert Dewar  <dewar@adacore.com>
4528
4529         * sem_res.adb (Resolve_Op_Not): Warn on double negation
4530
4531 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4532
4533         * sprint.adb
4534         (Print_Itype): Do not modify the sloc of the component type of a
4535         (packed) array itype, because it is an unrelated type whose source
4536         location is independent of the point of creation of the itype itself.
4537
4538 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4539
4540         * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
4541         Append.
4542
4543 2008-05-20  Robert Dewar  <dewar@adacore.com>
4544             Vincent Celier  <celier@adacore.com>
4545
4546         * vms_data.ads: Add entry for -gnatr
4547         Put GNAT SYNC section in proper alpha order
4548         Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
4549
4550         * gnat_ugn.texi: Add documentation for new gnatname switch --and
4551         Update the style checks section
4552         Add documentation of -gnatr
4553         Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
4554         subsection the explanation how compiler checks should be disabled for
4555         gnatcheck.
4556         Update the list of Ada 95 reserved words used by in the project language
4557         Add documentation for project qualifiers.
4558         Document that abstract projects may be extended by different projects in
4559         the same project tree.
4560         Add documentation for gnatmake switch -d
4561
4562         * ug_words: Add -gnatyy VMS equivalence string.
4563         Add entry for -gnatr
4564
4565 2008-05-20  Bob Duff  <duff@adacore.com>
4566
4567         * a-rttiev.adb
4568         (Set_Handler): Remove code from both of these that implements
4569         RM-D.15(15/2), because it causes a race condition and potential
4570         deadlock.
4571         (Process_Queued_Events): Add comment explaining "exception when others
4572         => null". Add clarifying ".all", even though implicit .all is legal
4573         here.
4574
4575 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
4576
4577         * s-winext.ads: Replace representation clause by pragma Pack. Gives
4578         equivalent representation, but has the advantage of allowing
4579         compilation of this file under 64 bits platforms.
4580
4581         * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
4582
4583         * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.
4584
4585         * adaint.c:
4586         Don't define dummy implementation of convert_addresses on ppc-linux.
4587
4588 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4589
4590         * exp_ch7.adb
4591         (Expand_Ctrl_Function_Call): Do not attach result to finalization list
4592         if expression is aggregate component.
4593
4594 2008-05-20  Robert Dewar  <dewar@adacore.com>
4595
4596         * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
4597         sem_ch12.adb: Update comments. Minor reformatting.
4598
4599         * exp_ch2.adb: Typo
4600
4601         * s-unstyp.ads: Fixed some typos in comments.
4602
4603 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
4604
4605         * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
4606         type/constant.
4607
4608         * g-socthi-vxworks.ads: Update to latest socket changes.
4609
4610         * a-caldel-vms.adb: Resync with a-caldel spec.
4611
4612         * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
4613         Update comments.
4614
4615 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
4616
4617         * trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
4618         for dummy types pointed to by the converted pointer types.
4619
4620 2008-05-15  Eric Botcazou  <ebotcazou@adacore.com>
4621
4622         * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
4623         of records and unions.
4624         (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.
4625
4626 2008-05-14  Samuel Tardieu  <sam@rfc1149.net>
4627             Robert Dewar <dewar@adacore.com>
4628
4629         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
4630         restrictions to the prefix of 'Old.
4631         * sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
4632         * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
4633         variables.
4634
4635 2008-05-13  Eric Botcazou  <ebotcazou@adacore.com>
4636
4637         PR ada/24880
4638         PR ada/26635
4639         * utils.c (convert) <INTEGER_TYPE>: When converting an additive
4640         expression to an integral type with lower precision, use NOP_EXPR
4641         directly in a couple of special cases.
4642
4643 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
4644             Ed Schonberg <schonberg@adacore.com>
4645
4646         * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
4647         constraint expressions.
4648
4649 2008-05-12  Tomas Bily  <tbily@suse.cz>
4650
4651         * utils2.c (known_alignment, contains_save_expr_p)
4652         (gnat_mark_addressable): Use CASE_CONVERT.
4653         * decl.c (annotate_value): Likewise.
4654         * trans.c (maybe_stabilize_reference): Likewise.
4655         * utils2.c (build_binary_op): Use CONVERT_EXPR_P.
4656         * utils.c (rest_of_record_type_compilation): Likewise.
4657         * trans.c (protect_multiple_eval, Attribute_to_gnu)
4658         (protect_multiple_eval): Likewise.
4659
4660 2008-05-08  Andreas Schwab  <schwab@suse.de>
4661
4662         * utils.c (handle_pure_attribute, init_gigi_decls): Rename
4663         DECL_IS_PURE to DECL_PURE_P.
4664
4665 2008-05-05  Eric Botcazou  <ebotcazou@adacore.com>
4666
4667         * decl.c (maybe_pad_type): Add ??? comment.
4668
4669 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
4670
4671         * decl.c (components_to_record): Zero the alignment of the qualified
4672         union built for the variant part upon creating it.
4673
4674 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
4675
4676         * decl.c (maybe_pad_type): Try to get a form of the type with integral
4677         mode even if the alignment is not a factor of the original size.  But
4678         make sure to create the inner field with the original size.  Reorder.
4679         * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
4680         record as always addressable.
4681         * utils.c (convert): Deal specially with conversions between original
4682         and packable versions of a record type.
4683         * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
4684         recognizing an assignment between padded objects.
4685
4686 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
4687
4688         * decl.c (make_packable_type): Resize the last component to its RM size
4689         only if it is of an aggregate type.
4690         * trans.c (call_to_gnu): Fix nit in comment.
4691         (gnat_to_gnu): Likewise.
4692
4693 2008-04-30  Samuel Tardieu  <sam@rfc1149.net>
4694
4695         * Makefile.in: Adapt sh4-linux target.
4696
4697 2008-04-29  Ed Schonberg  <schonberg@adacore.com>
4698
4699         PR ada/35792
4700         * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
4701         tagged type by an untagged protected or task type.
4702
4703 2008-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4704             Tristan Gingold  <gingold@adacore.com>
4705
4706         PR ada/36007
4707         * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment
4708         of aliased objects with an unconstrained nominal subtype.
4709         Cap the promotion to the effective alignment of the word mode.
4710
4711 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4712
4713         * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
4714         (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
4715         Use '&&' instead of ';'.
4716
4717 2008-04-24  Olivier Hainque  <hainque@adacore.com>
4718
4719         * trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation
4720         doesn't require signed arithmetic anymore.
4721
4722 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
4723
4724         * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
4725         (call_to_gnu): Don't set TREE_INVARIANT.
4726         * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
4727
4728 2008-04-22  Joel Sherrill <joel.sherrill@oarcorp.com>
4729
4730         * s-osinte-rtems.adb: Add sigalstack function.
4731         * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
4732         function. Add Alternate_Stack and Alternate_Stack_Size.
4733         Add missing process_shared field to pthread_condattr_t
4734         and change ss_low_priority to int from timespec.
4735
4736 2008-04-22  Samuel Tardieu  <sam@rfc1149.net>
4737
4738         * i-forbla.adb: Link against -llapack and -lblas by default
4739         instead of the private -lgnalasup.
4740
4741 2008-04-21  Olivier Hainque  <hainque@adacore.com>
4742
4743         Access to most C builtins from Ada
4744         * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
4745         (handle_pure_attribute, handle_novops_attribute,
4746         handle_nonnull_attribute, handle_sentinel_attribute,
4747         handle_noreturn_attribute, handle_malloc_attribute,
4748         handle_type_generic_attribute): New attribute handlers, from C fe.
4749         (gnat_internal_attribute_table): Map the new handlers.
4750         (gnat_init_decl_processing): Move call to gnat_install_builtins to ...
4751         (init_gigi_decls): ... here.
4752         (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for):
4753         Move to a section dedicated to builtins processing.
4754         (build_void_list_node, builtin_type_for_size): New functions.
4755         (def_fn_type, get_nonnull_operand): Likewise.
4756         (install_builtin_elementary_type, install_builtin_function_types,
4757         install_builtin_attributes): Likewise.
4758         (fake_attribute_handler): Fake handler for attributes we don't
4759         support in Ada.
4760         (def_builtin_1): New function, worker for DEF_BUILTIN.
4761         (install_builtin_functions): New function.
4762         (gnat_install_builtins): Move to the builtins processing section.
4763         Now calling the newly introduced installers.
4764
4765 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
4766
4767         * decl.c (gnat_to_gnu_entity) <object>: Also promote the alignment of
4768         constant objects, but not exceptions.
4769         * trans.c (add_decl_expr): Use gnat_types_compatible_p for type
4770         compatibility test.
4771         * utils.c (create_var_decl_1): Likewise.
4772         * utils2.c (build_binary_op) <MODIFY_EXPR>: Also use the padded view of
4773         the type when copying to padded object and the source is a constructor.
4774
4775 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4776
4777         * decl.c (gnat_to_gnu_entity) <object>: When trying to promote the
4778         alignment, reset it to zero if it would end up not being greater
4779         than that of the type.
4780
4781 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4782
4783         * decl.c (maybe_pad_type): Only generate the XVS parallel type if
4784         the padded type has a variable size.
4785
4786 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4787
4788         * decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by
4789         target pointer mechanism as soon as the size is not constant.
4790
4791 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4792
4793         * gigi.h (create_var_decl_1): Declare.
4794         (create_var_decl): Turn into a macro invoking create_var_decl_1.
4795         (create_true_var_decl): Likewise.
4796         * utils.c (create_var_decl_1): Make global and reorder parameters.
4797         (create_var_decl): Delete.
4798         (create_true_var_decl): Likewise.
4799
4800 2008-04-17  Eric Botcazou  <ebotcazou@adacore.com>
4801
4802         * decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of
4803         objects by default.
4804         * fe.h (Debug_Flag_Dot_A): Delete.
4805         * debug.adb (-gnatd.a): Update documentation.
4806
4807 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
4808
4809         * g-socket.ads, g-socket.adb (Get_Address): Make Stream a
4810         "not null" parameter.
4811
4812 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
4813
4814         * g-socket.adb: Add a message "IPv6 not supported" to the
4815         Socket_Error exception.
4816
4817 2008-04-16  Samuel Tardieu  <sam@rfc1149.net>
4818
4819         PR ada/29015
4820         * sem_ch12.adb (Instantiate_Type): Check whether the full view of
4821         the type is known instead of the underlying type.
4822
4823 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
4824
4825         PR ada/22387
4826         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
4827         procedure for a derived type retrieve the discriminant values from
4828         the parent using the corresponding discriminant.
4829
4830 2008-04-15  Samuel Tardieu  <sam@rfc1149.net>
4831             Gary Dismukes  <dismukes@adacore.com>
4832
4833         PR ada/28733
4834         * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something
4835         which is not an entity (and hence not a package).
4836         (End_Use_Package): Ditto.
4837
4838 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
4839
4840         PR ada/16086
4841         * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any
4842         protected operation that matches the signature, not only an entry, a
4843         regular subprogram or a literal.
4844
4845 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4846
4847         * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3.
4848         * decl.c (gnat_to_gnu_entity) <object>: Call maybe_pad_type only
4849         if a size or alignment is specified.  Do not take into account
4850         alignment promotions for the computation of the object's size.
4851         <type>: Call maybe_pad_type only if a size or alignment is specified.
4852         (maybe_pad_type): Really reuse the RM_Size of the original type if
4853         requested.
4854         * trans.c (Attribute_to_gnu): Fix a couple of nits.
4855         * utils2.c (build_binary_op) <MODIFY_EXPR>: Merge related conditional
4856         statements.  Use the padded view of the type when copying between
4857         padded objects of the same underlying type.
4858
4859 2008-04-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4860
4861         * vms_data.ads: Fix typo in constant.
4862         * gen-soccon.c: Fix typo in error string.
4863         * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition):
4864         Fix typos.
4865         * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads,
4866         bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb,
4867         erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb,
4868         exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb,
4869         exp_util.adb, fmap.adb, g-soccon-linux-mips.ads,
4870         g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads,
4871         mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb,
4872         s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads,
4873         s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads,
4874         sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads,
4875         sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
4876         sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads,
4877         sinfo.ads: Fix typos in comments.
4878
4879 2008-04-14  Robert Dewar  <dewar@adacore.com>
4880
4881         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
4882         to every non-object and change error message.
4883
4884 2008-04-14  Robert Dewar  <dewar@adacore.com>
4885
4886         * sem_util.ads, sem_util.adb (In_Subprogram): Remove.
4887         * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram
4888         directly.
4889
4890 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
4891
4892         PR ada/18680
4893         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to
4894         apply pragma Linker_Section on type.
4895
4896 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
4897
4898         PR ada/16098
4899         * sem_prag.adb (Error_Pragma_Ref): New.
4900         (Process_Convention): Specialized message for non-local
4901         subprogram renaming. Detect the problem in homonyms as well.
4902
4903 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
4904
4905         PR ada/15915
4906         * sem_util.ads, sem_util.adb (Denotes_Variable): New function.
4907         * sem_ch12.adb (Instantiate_Object): Use it.
4908         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that
4909         storage pool denotes a variable as per RM 13.11(15).
4910
4911 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
4912
4913         * sem_util.ads, sem_util.adb (In_Subprogram): New function.
4914         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it.
4915
4916 2008-04-14  Rolf Ebert  <rolf.ebert.gcc@gmx.de>
4917
4918         PR ada/20822
4919         * xgnatugn.adb (Put_Line): New procedure, ensuring Unix
4920         line endings even on non-Unix platforms.
4921
4922 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
4923
4924         PR ada/35050
4925         * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
4926         renaming information.
4927
4928 2008-04-13  Samuel Tardieu  <sam@rfc1149.net>
4929
4930         PR ada/17985
4931         * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
4932         itself.
4933
4934 2008-04-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4935
4936         * sfn_scan.adb, sfn_scan.ads, sinfo.ads,
4937         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
4938         snames.ads, sprint.adb, stand.ads, stringt.ads,
4939         styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
4940         switch.ads, sysdep.c, table.adb, table.ads,
4941         targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
4942         trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
4943         uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
4944         vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
4945         widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
4946         xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
4947         Fix comment typos.
4948
4949         * sem_ch10.adb, sem_ch10.ads,
4950         sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
4951         sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
4952         sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
4953         sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
4954         sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
4955         sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
4956         sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
4957         sem_warn.ads: Fix comment typos.
4958
4959         * s-secsta.adb, s-sequio.ads, s-shasto.ads,
4960         s-soflin.ads, s-stalib.ads, s-stausa.adb,
4961         s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
4962         s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
4963         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
4964         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
4965         s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
4966         s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
4967         s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
4968         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
4969         s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
4970         s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
4971         s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
4972         s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
4973         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
4974         scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
4975         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
4976         sem_cat.adb, sem_cat.ads: Fix comment typos.
4977
4978 2008-04-12  Joel Sherrill  <joel@oarcorp.com>
4979
4980         PR ada/35825
4981         * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.
4982
4983 2008-04-12  Arnaud Charlet  <charlet@adacore.com>
4984
4985         * s-linux-hppa.ads: Fix syntax errors.
4986
4987 2008-04-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4988
4989         * gnat_ugn.texi: Fix typos.
4990         * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
4991         restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
4992         s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
4993         s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
4994         s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
4995         s-finimp.adb, s-finroo.ads, s-fishfl.ads,
4996         s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
4997         s-hibaen.ads, s-htable.ads, s-imgcha.adb,
4998         s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
4999         s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
5000         s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
5001         s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
5002         s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
5003         s-osinte-darwin.ads, s-osinte-freebsd.ads,
5004         s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
5005         s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
5006         s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
5007         s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
5008         s-parame-hpux.ads, s-parame-vms-alpha.ads,
5009         s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
5010         s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
5011         s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
5012         s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
5013         s-rident.ads: Fix comment typos.
5014
5015 2008-04-09  Samuel Tardieu  <sam@rfc1149.net>
5016
5017         PR ada/28305
5018         * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
5019         environment if generic instance is a top-level one.
5020
5021 2008-04-09  Doug Rupp  <rupp@adacore.com>
5022
5023         * decl.c (validate_size): Set minimum size for fat pointers same as
5024         access types. Code clean ups.
5025
5026         * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
5027         (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
5028
5029         * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
5030
5031         * s-crtl.ads (malloc32) New function, alias for malloc
5032         (realloc32) New function, alias for realloc
5033
5034         * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
5035
5036         * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
5037         allocator size is 32 and default pointer size is 64.
5038         (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
5039         lhs type if smaller, whatever the modes.
5040
5041         * gigi.h (malloc32_decl): New macro definition
5042
5043         * utils.c (init_gigi_decls): New malloc32_decl
5044         Various code clean ups.
5045
5046         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
5047         Task_Address vice System.Address.
5048
5049         * s-taspri-vms.ads: Import System.Aux_DEC
5050         (Task_Address): New subtype of System.Aux_DEC.Short_Address
5051         (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
5052
5053         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
5054         Task_Address vice System.Address.
5055
5056         * s-inmaop-vms.adb: Import System.Task_Primitives
5057         (To_Address): Unchecked convert to Task_Address vice System.Address
5058
5059         * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
5060         expires now.
5061         (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
5062         (To_Address) Unchecked convert to Task_Address vice System.Address
5063
5064         * s-tpopde-vms.adb: Remove unnecessary warning pragmas
5065
5066         * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
5067
5068 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5069
5070         * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
5071         (fdesc_type_node): Define.
5072         (null_fdesc_node): Likewise.
5073         * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
5074         uses descriptors for vtables and the type comes from a dispatch table,
5075         return the descriptor type.
5076         * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
5077         uses descriptors for vtables and the type comes from a dispatch table,
5078         build a descriptor in the static case and copy the existing one in the
5079         non-static case.
5080         (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
5081         the type is a pointer-to-subprogram coming from a dispatch table,
5082         return the null descriptor.
5083         <N_Unchecked_Type_Conversion>: If the target uses descriptors for
5084         vtables, the source type is the descriptor type and the target type
5085         is a pointer type, first build the pointer.
5086         * utils.c (init_gigi_decls): If the target uses descriptors for vtables
5087         build the descriptor type and the null descriptor.
5088
5089 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5090
5091         * decl.c (prepend_attributes): Fix typo.
5092         * trans.c (Pragma_to_gnu): Likewise.
5093         * utils.c (gnat_genericize): Likewise.
5094
5095 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5096             Richard Kenner  <kenner@adacore.com>
5097
5098         * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
5099         * decl.c (gnat_to_gnu_entity): Adjust for above change.
5100         <E_Record_Type>: Try to get a better form of the component for
5101         packing, even if it has an integral mode.
5102         <E_Record_Subtype>: Likewise.
5103         * trans.c (gnat_to_gnu): Do not require BLKmode for the special
5104         exception suppressing the final conversion between record types.
5105
5106 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5107
5108         * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
5109         alignment for space, promote the alignment of non-scalar variables with
5110         no size and alignment.
5111         * gigi.h (gnat_types_compatible_p): Declare.
5112         * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
5113         * trans.c (gnat_to_gnu): Revert revision 129339 change.  Minor cleanup.
5114         * utils.c (gnat_types_compatible_p) : New predicate.
5115         (convert): Use it throughout to test for cases where a mere view
5116         conversion is sufficient.
5117         * utils2.c (build_binary_op): Minor tweaks.
5118         (build_unary_op): Likewise.
5119
5120 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5121
5122         * decl.c (adjust_packed): Expand comment.
5123
5124 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
5125
5126         * s-tasuti.ads: Use Task_Address instead of System.Address.
5127
5128         * makeutl.adb (Path_Or_File_Name): New function
5129
5130         * nlists.ads, itypes.ads: Update comments.
5131
5132         * s-crtl.ads (malloc32, realloc32): New functions.
5133
5134         * s-auxdec.ads (Short_Address_Size): New constant.
5135
5136         * a-taside.adb, s-tasdeb.adb: Use Task_Address.
5137
5138         * s-ststop.ads, s-ststop.adb: New file.
5139
5140         * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
5141         Minor reformatting.
5142
5143 2008-04-08  Pascal Obry  <obry@adacore.com>
5144
5145         * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
5146         (Stop_Bits_Number): New type.
5147         (Parity_Check): Likewise.
5148         (Set): Add parameter to set the number of stop bits and
5149         the parity. Parameter timeout is now a duration instead
5150         of a plain integer.
5151
5152         * g-sercom-linux.adb:
5153         Implement the stop bits and parity support for GNU/Linux.
5154         Fix handling of timeout, it must be given in tenth of seconds.
5155
5156         * g-sercom-mingw.adb:
5157         Implement the stop bits and parity support for Windows.
5158         Use new s-win32.ads unit instead of declaring Win32 services
5159         directly into this body.
5160         Update handling of timeout as now a duration.
5161
5162         * s-win32.ads, s-winext.ads: New files.
5163
5164 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5165             Arnaud Charlet  <charlet@adacore.com>
5166
5167         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
5168
5169         s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
5170         s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
5171
5172         * s-osinte-lynxos-3.ads,
5173         (Alternate_Stack): Remove when not needed. Simplify declaration
5174         otherwise.
5175         (Alternate_Stack_Size): New constant.
5176
5177         s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
5178         'Unrestricted_Access.
5179
5180         * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
5181         s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
5182         s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
5183         s-osinte-solaris.ads, s-osinte-vms.ads
5184         (SA_ONSTACK): New constant.
5185         (stack_t): New record type.
5186         (sigaltstack): New imported function.
5187         (Alternate_Stack): New imported variable.
5188         (Alternate_Stack_Size): New constant.
5189
5190         * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
5191
5192         * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
5193         s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
5194         s-taspri-vms.ads (Task_Address): New subtype of System.Address
5195         (Task_Address_Size): New constant size of System.Address
5196         (Alternate_Stack_Size): New constant.
5197
5198         * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
5199         (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
5200         Establish the alternate stack if the platform makes use of n alternate
5201         signal stack for stack overflows.
5202         (Create_Task): Take into account the alternate stack in the stack size.
5203         (Initialize): Save the address of the alternate stack into the ATCB for
5204         the environment task.
5205         (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
5206
5207         * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
5208
5209         * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
5210
5211         * s-intman-posix.adb:
5212         (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
5213         alternate signal stack for stack overflows.
5214
5215         * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
5216         x86-64, adjust the saved value of the stack pointer if the signal was
5217         raised by a stack checking probe.
5218         (HP-UX section): Use global __gnat_alternate_stack as signal handler
5219         stack and only for SIGSEGV.
5220         (Linux section): Likewise on x86 and x86-64.
5221         [VxWorks section]
5222         (__gnat_map_signal): Now static.
5223         (__gnat_error_handler): Not static any more.
5224         (__gnat_adjust_context_for_raise): New function. Signal context
5225         adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
5226         propagation circuitry.
5227         (__gnat_error_handler): Second argument of a sigaction handler is a
5228         pointer, not an int, and is unused.
5229         Adjust signal context before mapping to exception.
5230         Install signal handlers for LynxOS case.
5231
5232         * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
5233         (Task_Id): Set size to Task_Address_Size
5234         (To_Task_id): Unchecked convert from Task_Address vice System.Address
5235         (To_Address): Unchecked convert to Task_Address vice System.Address
5236
5237         * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
5238         address into the ATCB if the platform makes use of an alternate signal
5239         stack for stack overflows.
5240         (Free_Task): Add call to Finalize_Attributes_Link.
5241         Add argument Relative_Deadline to pass the value specified for
5242         the task. This is not yet used for any target.
5243
5244         * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
5245         the value specified for the task.
5246
5247 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
5248
5249         (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
5250         (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
5251         s-vxwext-rtp.adb): New files.
5252
5253         * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb:
5254         Minor updates to accomodate changes above.
5255
5256 2008-04-08  Pascal Obry  <obry@adacore.com>
5257
5258         * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
5259         s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
5260         Use new s-win32.ads unit instead of declaration
5261         from s-osinte-mingw.ads.
5262
5263         * s-osinte-mingw.ads:
5264         Move all non tasking based interface to s-win32.ads.
5265
5266         * s-osprim-mingw.adb:
5267         Remove duplicated declarations and use s-win32.ads
5268         unit instead.
5269
5270 2008-04-08  Vincent Celier  <celier@adacore.com>
5271             Arnaud Charlet  <charlet@adacore.com>
5272
5273         * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
5274         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
5275         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
5276         mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
5277         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
5278
5279         * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
5280         mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
5281         mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
5282         mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
5283         mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
5284         mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
5285         mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
5286         mlib-tgt-specific-mingw.adb: New names.
5287
5288         * Makefile.in:
5289         On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
5290         Get rid of gnatbl.
5291         (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
5292         Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
5293         Minor updates for VMS
5294
5295         * gnatbl.c: Removed.
5296
5297 2008-04-08  Thomas Quinot  <quinot@adacore.com>
5298
5299         * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
5300         g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
5301         gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
5302         a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
5303         s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
5304         ASCII.NUL throughout.
5305
5306 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
5307             Matthew Heaney  <heaney@adacore.com>
5308
5309         * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
5310         renaming.
5311
5312         * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,
5313         a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
5314         to convention for non-RM specs.
5315         Add descriptive header, and documented each operation
5316         document each operation
5317
5318 2008-04-08  Robert Dewar  <dewar@adacore.com>
5319             Bob Duff  <duff@adacore.com>
5320             Gary Dismukes  <dismukes@adacore.com>
5321             Ed Schonberg  <schonberg@adacore.com>
5322
5323         * alloc.ads: Add entries for Obsolescent_Warnings table
5324
5325         * einfo.ads, einfo.adb: Minor reformatting.
5326         (Is_Discriminal): New subprogram.
5327         (Is_Prival): New subprogram.
5328         (Is_Protected_Component): New subprogram.
5329         (Is_Protected_Private): Removed.
5330         (Object_Ref, Set_Object_Ref): Removed.
5331         (Prival, Set_Prival): Change assertion.
5332         (Privals_Chain, Set_Privals_Chain): Removed.
5333         (Prival_Link, Set_Prival_Link): New subprogram.
5334         (Protected_Operation, Set_Protected_Operation): Removed.
5335         (Protection_Object, Set_Protection_Object): New subprogram.
5336         (Write_Field17_Name): Remove case for Object_Ref.
5337         (Write_Field20_Name): Add case for Prival_Link.
5338         (Write_Field22_Name): Remove case for Protected_Operation,
5339         Privals_Chain.
5340         Add case for Protection_Object.
5341         (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
5342         so clients
5343         (Overlays_Constant): New flag
5344         (Is_Constant_Object): New predicate
5345         (Is_Standard_Character_Type): New predicate
5346         (Optimize_Alignment_Space): New flag
5347         (Optimize_Alignment_Time): New flag
5348         (Has_Postconditions): New flag
5349         (Obsolescent_Warrning): Field removed
5350         (Spec_PPC_List): New field
5351         (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
5352         subprograms to get and set the relative deadline associated to a task.
5353
5354         * exp_attr.adb (May_Be_External_Call): Account for the case where the
5355         Access attribute is part of a named parameter association.
5356         (Expand_Access_To_Protected_Op): Test for the attribute occurring
5357         within an init proc and use that directly as the scope rather than
5358         traversing up to the protected operation's enclosing scope. Only apply
5359         assertion on Is_Open_Scopes in the case the scope traversal is done.
5360         For the init proc case use the address of the first formal (_init) as
5361         the protected object reference.
5362         Implement Invalid_Value attribute
5363         (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
5364         contents of the dispatch table there is no need to duplicate the
5365         itypes associated with record types (i.e. the implicit full view
5366         of private types).
5367         Implement Enum_Val attribute
5368         (Expand_N_Attribute_Reference, case Old): Properly handle appearence
5369         within _Postconditions procedure
5370         (Expand_N_Attribute_Reference, case Result): Implement new attribute
5371
5372         * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
5373         a return statement calls a function that is not available in
5374         configurable runtime.
5375         (Analyze_If_Statement): don't optimize simple True/False cases in -O0
5376         (Expand_Non_Function_Return): Generate call to _Postconditions proc
5377         (Expand_Simple_Function_Return): Ditto
5378
5379         * frontend.adb: Add call to Sem_Aux.Initialize
5380
5381         * sem_aux.ads, sem_aux.adb: New file.
5382
5383         * par-prag.adb: Add entries for pragmas Precondition/Postcondition
5384         Add new Pragma_Relative_Deadline.
5385         Add support for pragmas Check and Check_Policy
5386
5387         * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
5388         (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
5389         (Analyze_Attribute): In case of attributes 'Alignment and 'size add
5390         missing check because they are not allowed in CPP tagged types.
5391         Add Sure parameter to Note_Possible_Modification calls
5392         Add implementation of Invalid_Value attribute
5393         Implement new attribute Has_Tagged_Values
5394         Implement Enum_Val attribute
5395         (Analyze_Attribute, case Range): Set Name_Req True for prefix of
5396         generated attributes.
5397         (Analyze_Attribute, case Result): If prefix of the attribute is
5398         overloaded, it always resolves to the enclosing function.
5399         (Analyze_Attribute, case Result): Properly deal with analysis when
5400         Postconditions are not active.
5401         (Resolve_Attribute, case Result): Properly deal with appearence during
5402         preanalysis in spec.
5403         Add processing for attribute Result
5404
5405         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
5406         for operators.
5407         (Analyze_Subprogram_Body): Install private_with_clauses when the body
5408         acts as a spec.
5409         (Check_Inline_Pragma): recognize an inline pragma that appears within
5410         the subprogram body to which it applies.
5411         (Analyze_Function_Return): Check that type of the expression of a return
5412         statement in a function with a class-wide result is not declared at a
5413         deeper level than the function.
5414         (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
5415         (Verify_Overriding_Indicator): Handle properly subprogram bodies for
5416         user- defined operators.
5417         (Install_Formals): Moved to spec to allow use from Sem_Prag for
5418         analysis of precondition/postcondition pragmas.
5419         (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
5420         Last_Formal, along with lots of comments on what this is about
5421         (Analyze_Subprogram_Body): Fix case where we move entities from the
5422         spec to the body when there are no body entities (now possible with
5423         precondition and postcondition pragmas).
5424         (Process_PPCs): New procedure
5425         (Analyze_Subprogram_Body): Add call to Process_PPCs
5426
5427         * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
5428         clause.
5429         (Pop_Scope): Restore Check_Policy_List on scope exit
5430         (Push_Scope): Save Check_Policy_List on scope entry
5431         Change name In_Default_Expression      => In_Spec_Expression
5432         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5433         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5434         (Analyze_Object_Renaming): Allow 'Reference as object
5435         (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
5436         (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
5437         of restriction identifier.
5438         Add Sure parameter to Note_Possible_Modication calls
5439
5440         * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
5441         Don't check for primitive operations when calling Rep_Item_Too_Late.
5442         (Process_Import_Or_Interface): Do not place flag on formal
5443         subprograms.
5444         (Analyze_Pragma, case Export): If the entity is a deferred constant,
5445         propagate information to full view, which is the one elaborated by the
5446         back-end.
5447         (Make_Inline): the pragma is effective if it applies to an internally
5448         generated subprogram declaration for a body that carries the pragma.
5449         (Analyze_Pragma, case Optimize_Alignment): Set new flag
5450         Optimize_Alignment_Local.
5451         (Analyze_PPC_In_Decl_Part): New procedure
5452         (Get_Pragma_Arg): Moved to outer level
5453         (Check_Precondition_Postcondition): Change to allow new visibility
5454         rules for package spec
5455         (Analyze_Pragma, case Check_Policy): Change placement rules to be
5456         same as pragma Suppress/Unsuppress.
5457         Change name In_Default_Expression      => In_Spec_Expression
5458         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5459         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5460         (Check_Precondition_Postcondition): Do proper visibility preanalysis
5461         for the case of these pragmas appearing in the spec.
5462         (Check_Enabled): New function
5463         (Initialize): New procedure
5464         (Tree_Read): New procedure
5465         (Tree_Write): New procedure
5466         (Check_Precondition_Postcondition): New procedure
5467         Implement pragmas Check and Check_Policy
5468         Merge Assert processing with Check
5469
5470         * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
5471         New warning flag -gnatw.e
5472
5473         * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
5474         returning whether a task (or main procedure) has a pragma
5475         Relative_Deadline.
5476         (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
5477         (or main procedure) has a pragma Relative_Deadline.
5478         Add Next_Pragma field to N_Pragma node
5479         (PPC_Enabled): New flag
5480         (Next_Pragma): Now used for Pre/Postcondition processing
5481
5482         * snames.h, snames.ads, snames.adb: New standard name
5483         Inherit_Source_Path
5484         Add entry for 'Invalid_Value attribute
5485         Add entry for new attribute Has_Tagged_Values
5486         Add entry for Enum_Val attribute
5487         Add new standard names Aggregate, Configuration and Library.
5488         Add _Postconditions
5489         Add _Result
5490         Add Pragma_Precondition
5491         Add Pragma_Postcondition
5492         Add Attribute_Result
5493         New standard name Archive_Builder_Append_Option
5494         (Preset_Names): Add _relative_deadline and relative_deadline definitions
5495         There was also a missing non_preemptive_within_priorities.
5496         (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
5497         Relative_Deadline.
5498         Add support for pragmas Check and Check_Policy
5499
5500         * tree_gen.adb: Call Sem_Aux.Tree_Write
5501
5502         * tree_in.adb: Call Sem_Aux.Tree_Read
5503
5504         * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
5505         sequence
5506
5507         * exp_intr.adb (Expand_Source_Info): New Build_Location calling
5508         sequence
5509
5510         * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
5511         (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
5512         Relative_Deadline.
5513         (Expand_Pragma_Check): New procedure
5514
5515         * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
5516         buffer.
5517
5518         * sinfo.adb (PPC_Enabled): New flag
5519
5520 2008-04-08  Robert Dewar  <dewar@adacore.com>
5521             Gary Dismukes  <dismukes@adacore.com>
5522             Javier Miranda  <miranda@adacore.com>
5523             Ed Schonberg  <schonberg@adacore.com>
5524
5525         * fe.h: Remove global Optimize_Alignment flag, no longer used
5526
5527         * layout.adb: Test Optimize_Alignment flags rather than global switch
5528
5529         * lib.ads, lib.adb: New OA_Setting field in library record
5530
5531         * lib-load.adb: New OA_Setting field in library record
5532
5533         * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
5534         units mentioned in limited_with_ clauses in the ali file, with an
5535         'Y' marker.
5536         New Ox fields in U line
5537
5538         * opt.adb: New flag Optimize_Alignment_Local
5539         (Check_Policy_List[_Config]): New flags
5540
5541         * opt.ads (Invalid_Value_Used): New flag
5542         New switch Optimize_Alignment_Local
5543         (Warn_On_Parameter_Order): New flag
5544         (Check_Policy_List[_Config]): New flags
5545
5546         * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
5547         limited_with clauses.
5548         New data structures for Optimize_Alignment
5549
5550         * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
5551         New procedure
5552         (Check_Consistent_Optimize_Alignment): Rework for new structure
5553         (Check_Consistent_Restrictions): Fix incorrect error message
5554
5555         sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
5556         created class-wide type (to the Parent field of the specific type).
5557         (Install_Siblings): Handle properly private_with_clauses on subprogram
5558         bodies and on generic units.
5559         (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
5560         illegal limited_with_clause that names a non-existent package.
5561         (Check_Body_Required): Determine whether a unit named a limited_with
5562         clause needs a body.
5563         (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
5564         Capture Optimize_Alignment settings to set new OA_Setting field in
5565         library record.
5566         (Build_Limited_Views): Include task and protected type declarations.
5567
5568         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
5569         case of a possible constant redeclaration where the current object is
5570         an entry index constant.
5571         (Analyze_Object_Declaration): Generate an error in case of CPP
5572         class-wide object initialization.
5573         (Analyze_Object_Declaration): Add extra information on warnings for
5574         declaration of unconstrained objects.
5575         (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
5576         conflicts with the setting of Stored_Constraint in the case where the
5577         access type entity has already been created as an E_Incomplete_Type due
5578         to a limited with clause.
5579         Use new Is_Standard_Character_Type predicate
5580         (Analyze_Object_Declaration): Apply access_constant check only after
5581         expression has been resolved, given that it may be overloaded with
5582         several access types.
5583         (Constant_Redeclaration): Additional legality checks for deferred
5584         constant declarations tha involve anonymous access types and/or null
5585         exclusion indicators.
5586         (Analyze_Type_Declaration): Set Optimize_Alignment flags
5587         (Analyze_Subtype_Declaration): Ditto
5588         (Analyze_Object_Declaration): Ditto
5589         (Analyze_Object_Declaration): Don't count tasks in generics
5590         Change name In_Default_Expression      => In_Spec_Expression
5591         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5592         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5593         (Process_Discriminants): Additional check for illegal use of default
5594         expressions in access discriminant specifications in a type that is not
5595         explicitly limited.
5596         (Check_Abstract_Overriding): If an inherited function dispaches on an
5597         access result, it must be overridden, even if the type is a null
5598         extension.
5599         (Derive_Subprogram): The formals of the derived subprogram have the
5600         names and defaults of the parent subprogram, even if the type is
5601         obtained from the actual subprogram.
5602         (Derive_Subprogram): In the presence of interfaces, a formal of an
5603         inherited operation has the derived type not only if it descends from
5604         the type of the formal of the parent operation, but also if it
5605         implements it. This is relevant for the renamings created for the
5606         primitive operations of the actual for a formal derived type.
5607         (Is_Progenitor): New predicate, to determine whether the type of a
5608         formal in the parent operation must be replaced by the derived type.
5609
5610         * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
5611         predicate recursive to handle components that have a user-defined
5612         Initialize procedure. Handle controlled derived types whose ancestor
5613         has a user-defined Initialize procedured.
5614         (Note_Possible_Modification): Add Sure parameter, generate warning if
5615         sure modification of constant
5616         Use new Is_Standard_Character_Type predicate
5617         (Find_Parameter_Type): when determining whether a protected operation
5618         implements an interface operation, retrieve the type of the formal from
5619         the entity when the formal is an access parameter or an
5620         anonymous-access-to-subprogram.
5621         Move Copy_Parameter_List to sem_util, for use when building stubbed
5622         subprogram bodies.
5623         (Has_Access_Values): Tagged types now return False
5624         (Within_HSS_Or_If): New procedure
5625         (Set_Optimize_Alignment_Flags): New procedure
5626         Change name In_Default_Expression      => In_Spec_Expression
5627         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5628         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5629
5630 2008-04-08  Tristan Gingold  <gingold@adacore.com>
5631
5632         * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
5633
5634 2008-04-08  Tristan Gingold  <gingold@adacore.com>
5635
5636 PR ada/10768
5637
5638         * cuintp.c: Fix 16 bits issue for AVR.
5639         On AVR, integer is 16 bits, so it can't be used to do math with
5640         Base (=32768).
5641         So use long_integer instead.
5642
5643 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
5644
5645         * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
5646         System.OS_Primitives.
5647         Change type of various constants, parameters and local variables from
5648         Time to representation type OS_Time.
5649         (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
5650         Remove the declaration of constant Mili_F from several routines. New
5651         body for internal package Conversions_Operations.
5652         (Time_Of): Add default parameters for several formals.
5653
5654         * a-caldel.adb: Minor reformatting
5655
5656         * a-calend.ads, a-calend.adb: New body for internal package
5657         Conversions_Operations.
5658         (Time_Of): Add default parameters for several formals.
5659
5660         * Makefile.rtl: Add a-ststop
5661         Add Ada.Calendar.Conversions to the list of runtime files.
5662         Add g-timsta
5663
5664         * a-calcon.adb, a-calcon.ads: New files.
5665
5666 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
5667             Tristan Gingold  <gingold@adacore.com>
5668
5669         * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
5670         (Install_Restricted_Handlers): New procedure
5671         which is a simplified version of Install_Handlers that does not store
5672         previously installed.
5673
5674         * s-interr-vxworks.adb: Fix ACATS cxc3001
5675         On VxWorks interrupts can't be detached.
5676         (Install_Restricted_Handlers): New procedure.
5677
5678         * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
5679         procedure.
5680
5681 2008-04-08  Olivier Hainque  <hainque@adacore.com>
5682
5683         * s-intman-vxworks.ads, s-intman-vxworks.adb
5684         (Map_And_Raise_Exception): Remove. Was an import of only part of the
5685         required services already implemented elsewhere.
5686         (Notify_Exception): Delete body, import __gnat_error_handler instead.
5687         (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
5688         argument passed to the handler, which we need for ZCX propagation
5689         purposes.
5690
5691 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
5692
5693         * adaint.h, adaint.c (__gnat_current_time_string): New routine.
5694
5695         * g-timsta.adb, g-timsta.ads: New files.
5696
5697 2008-04-08  Robert Dewar  <dewar@adacore.com>
5698
5699         * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
5700         (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
5701         (Raise_Exception_Always): Fix documentation accordingly
5702
5703 2008-04-08  Robert Dewar  <dewar@adacore.com>
5704
5705         * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
5706         Stream_Convert)
5707
5708         * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
5709         FOnly
5710
5711 2008-04-08  Javier Miranda  <miranda@adacore.com>
5712             Robert Dewar  <dewar@adacore.com>
5713             Ed Schonberg  <schonberg@adacore.com>
5714
5715         * a-tags.adb (Register_Interface_Offset): New subprogram.
5716         (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
5717         (To_Predef_Prims_Table_Ptr): Removed.
5718         (Acc_Size): Removed.
5719         (To_Acc_Size): Removed.
5720         (Parent_Size): Modified to the call the subprogram returning the size of
5721         the parent by means of the new TSD component Size_Func.
5722
5723         * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
5724         (DT_Offset_To_Top_Offset): New constant value that is used to generate
5725         code referencing the Offset_To_Top component of the dispatch table's
5726         prologue.
5727         (Prim_Ptr): New declaration of access to procedure. Used to avoid the
5728         use of 'address to initialize dispatch table slots.
5729         (Size_Func): New component of the TSD. Used by the run-time to call the
5730         size primitive of the tagged type.
5731
5732         * checks.adb (Apply_Access_Check): Avoid check when accessing the
5733         Offset_To_Top component of a dispatch table.
5734         (Null_Exclusion_Static_Checks): If the non-null access type appears in a
5735         deferred constant declaration. do not add a null expression, to prevent
5736         spurious errors when full declaration is analyzed.
5737         (Apply_Discriminant_Check): If both discriminant constraints share a
5738         node which is not static but has no side effects, do not generate a
5739         check for that discriminant.
5740         (Generate_Index_Checks): Set Name_Req to true in call to duplicate
5741         subexpr, since the prefix of an attribute is a name.
5742
5743         * checks.ads: Fix nit in comment.
5744
5745         * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
5746         and body of predefined primitives in case of CPP tagged type
5747         derivations.
5748         (Freeze_Type): Deal properly with no storage pool case
5749         (Make_Predefined_Primitive_Specs): Generate specification of abstract
5750         primitive Deep_Adjust if a nonlimited interface is derived from a
5751         limited interface.
5752         (Build_Dcheck_Functions): Create discriminant-checking functions only
5753         for variants that have some component(s).
5754         (Build_Slice_Assignment): In expanded code for slice assignment, handle
5755         properly the case where the slice bounds extend to the last value of the
5756         underlying representation.
5757         (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
5758         (Is_Variable_Size_Record): An array component has a static size if
5759         index bounds are enumeration literals.
5760
5761         * exp_disp.adb (Make_DT): Use the first subtype to determine whether
5762         an external tag has been specified for the type.
5763         (Building_Static_DT): Add missing support for private types.
5764         (Make_DT): Add declaration of Parent_Typ to ensure consistent access
5765         to the entity associated with the parent of Typ. This is done to
5766         avoid wrong access when the parent is a private type.
5767         (Expand_Interface_Conversion): Improve error message when the
5768         configurable runtime has no support for dynamic interface conversion.
5769         (Expand_Interface_Thunk): Add missing support to interface types in
5770         configurable runtime.
5771         (Expand_Dispatching_Call): remove obsolete code.
5772         (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
5773         ensure that all subtypes and aggregates associated with dispatch
5774         tables have the attribute Is_Dispatch_Table_Entity set to true.
5775         (Register_Primitive): Rename one variable to improve code reading.
5776         Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
5777         of the pointer to the 'size primitive in the TSD.
5778
5779         * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
5780         (RE_Offset_To_Top_Ptr): New entity.
5781         (RE_Register_Interface_Offset): New entity.
5782         (RE_Set_Dynamic_Offset_To_Top): New entity.
5783         (RE_Set_Offset_To_Top): Removed entity.
5784         (RE_Prim_Ptr): New entity
5785         (RE_Size_Func): New entity
5786         (RE_Size_Ptr): New entity
5787         (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
5788         (Ada_Dispatching_Child): Define this new subrange.
5789         (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
5790          RE_Time_Span, and RE_Time_Span_Zero).
5791         (RE_Unit_Table): Add new required run-time calls
5792
5793         * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
5794         children.
5795
5796         * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
5797         (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
5798          initializes the Offset_To_Top component of a dispatch table.
5799         (Build_Predef_Prims): Removed.
5800         (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
5801          its actual code.
5802         (Build_Set_Size_Function): New subprogram.
5803
5804         * exp_ch13.adb: Do not generate storage variable for storage_size zero
5805         (Expand): Handle setting/restoring flag Inside_Freezing_Actions
5806
5807 2008-04-08  Robert Dewar  <dewar@adacore.com>
5808
5809         * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
5810         computing Fore when Exp > 0
5811
5812 2008-04-08  Robert Dewar  <dewar@adacore.com>
5813
5814         * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
5815
5816         * errout.adb: Remove Big_String_Ptr declarations (now in Types)
5817         Change name Is_Style_Msg to Is_Style_Or_Info_Msg
5818
5819         * fmap.adb: Remove Big_String declarations (now in Types)
5820         (No_Mapping_File): New Boolean global variable
5821         (Initialize): When mapping file cannot be read, set No_Mapping_File to
5822         False.
5823         (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
5824         tables were empty before adding entries, open the mapping file
5825         with Truncate = True, instead of delete/re-create.
5826
5827         * fname-sf.adb: Remove Big_String declarations (now in Types)
5828
5829         * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
5830         s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
5831         big pointer types
5832
5833         * table.ads: Add for Table_Ptr'Storage_Size use 0
5834
5835         * types.ads: Add Big_String declarations
5836         Add Size_Clause of zero for big pointer types
5837
5838 2008-04-08  Vincent Celier  <celier@adacore.com>
5839
5840         * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
5841         (Usage): Add line for switch --subdirs=
5842         Add new switch -eL, to follow symbolic links when processing project
5843         files.
5844
5845         * gnatcmd.adb: Process switches -eL and --subdirs=
5846         (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
5847         Program_Name to get proper tool names when AAMP_On_Target is set.
5848         (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
5849         AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
5850         Osint.Program_Name).
5851
5852         * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
5853         (Usage): Add lines for switches -eL and --subdirs=
5854
5855         * makeusg.adb: Add line for switch --subdirs=
5856
5857         * prj.ads:
5858         (Source_Data): New Boolean component Compiled, defaulted to True
5859         (Empty_File_Name: New global variable in private part, initialized in
5860         procedure Initialize.
5861         (Subdirs_Option): New constant string
5862         (Subdirs): New String_Ptr global variable
5863         (Language_Config): New component Include_Compatible_Languages
5864         (Project_Qualifier): New type for project qualifiers
5865         (Project_Data): New component Qualifier
5866         (Project_Configuration): New component Archive_Builder_Append_Option
5867
5868         * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
5869         another imported project indicate the name of this imported project.
5870         (Check_File): When a unit is in two project files, indicate the project
5871         names and the paths of the source files for each project.
5872         (Add_Source): Set Compiled to False if compiler driver is empty. Only
5873         set object, dependency and switches file names if Compiled is True.
5874         (Process_Compiler): Allow the empty string for value of attribute Driver
5875         (Get_Directories): When Subdirs is not null and Object_Dir is not
5876          specified, locate and create if necessary the actual object dir.
5877         (Locate_Directory): When Subdirs is not empty and Create is not the
5878         empty string, locate and create if necessary the actual directory
5879         as a subdirectory of directory Name.
5880         (Check_Library_Attributes.Check_Library): Allow a project where the only
5881         "sources" are header files of file based languages to be imported by
5882         library projects, in multi-language mode (gprbuild).
5883         (Check_Library_Attributes.Check_Library): In multi-language mode
5884         (gprbuild), allow a library project to import a project with no
5885         sources, even when this is not declared explicitly.
5886         (Check_If_Externally_Built): A virtual project extending an externally
5887         built project is also externally built.
5888         (Check_Library_Attributes): For a virtual project extending a library
5889         project, inherit the library directory.
5890         (Process_Project_Level_Array_Attributes): Process new attribute
5891         Inherit_Source_Path.
5892         For projects with specified qualifiers "standard", "library" or
5893         "abstract", check that the project conforms to the qualifier.
5894         (Process_Project_Level_Simple_Attributes): Process new attribute
5895          Archive_Builder_Append_Option.
5896
5897         * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
5898         (Normalize_Compiler_Switches): Only keep compiler switches that are
5899         passed to gnat1 by the gcc driver and that are stored in the ALI file
5900         by gnat1.
5901         Do not take into account switc -save-temps
5902
5903         * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
5904         gprmake is called with -eL.
5905         (Scan_Arg): Recognize switch -eL
5906         (Usage): Add line for switch -eL
5907
5908         * prj.adb (Initialize): Initialize Empty_File_Name
5909         (Project_Empty): New component Qualifier
5910
5911         * prj-attr.ads, prj-attr.adb: New project level attribute
5912         Inherit_Source_Path.
5913         New project level attribute Archive_Builder_Append_Option
5914
5915         * prj-dect.adb: Replace System.Strings by GNAT.Strings.
5916
5917         * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
5918         <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
5919         upward compatibility.
5920
5921         * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
5922         each Trying ..." on different lines.
5923         (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
5924         is "configuration" when not in configuration. Fail when in configuration
5925         when a specified qualifier is other than "configuration".
5926
5927         * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
5928         full associative array together.
5929         (Recursive_Process): Put the project qualifier in the project data
5930
5931         * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
5932         (Set_Project_Qualifier_Of): New procedure
5933
5934 2008-04-08  Robert Dewar  <dewar@adacore.com>
5935
5936         * errout.ads: Update comments for new handling of info: messages
5937
5938         * erroutc.adb (Matches): New procedure
5939         (Warning_Specifically_Suppressed): Modified to handle multiple * chars
5940         (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
5941          info messages as well as style messages.
5942
5943         * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
5944
5945         * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
5946         subprograms.
5947         (Check_A_Call): Special "info: " warnings now have ? in the text
5948         (Elab_Warning): Use info message in static case
5949
5950 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
5951
5952         * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
5953         whether an array aggregate with static bounds and scalar components
5954         should be expanded into a static constant.
5955
5956 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
5957             Ed Schonberg  <schonberg@adacore.com>
5958             Robert Dewar  <dewar@adacore.com>
5959
5960         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
5961         Has_Stream_Attribute_ Definition when checking for available stream
5962         attributes on parameters of a limited type in Ada 2005. Necessary for
5963         proper recognition of visible stream attribute clauses.
5964         (Has_Stream_Attribute_Definition): If the type is derived from a
5965         private type, then use the derived type's underlying type for checking
5966         whether it has stream attributes.
5967         (Validate_Object_Declaration): The check for a user-defined Initialize
5968         procedure applies also to types with controlled components or a
5969         controlled ancestor.
5970         Reject an object declaration in a preelaborated unit if the type is a
5971         controlled type with an overriding Initialize procedure.
5972         (Validate_Remote_Access_To_Class_Wide_Type): Return without further
5973         checking when the parent of a dereference is a selected component and
5974         the name has not been analyzed.
5975
5976         * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
5977         prefixes that are invalid explicit dereferences of remote
5978         access-to-class-wide values, first checking whether the selected
5979         component is a prefixed form of call to a tagged operation.
5980         (Analyze_Call): Remove code that issues an error for limited function
5981         calls in illegal contexts, as we now support all of the contexts that
5982         were forbidden here.
5983         Allow a function call that returns a task.and appears as the
5984         prefix of a selected component.
5985         (Analyze_Reference): Give error message if we try to make a 'Reference
5986         for an object that is atomic/aliased without its type having the
5987         corresponding attribute.
5988         (Analyze_Call): Remove condition checking for attributes to allow
5989         calls to functions with inherently limited results as prefixes of
5990         attributes. Remove related comment about Class attributes.
5991         (Analyze_Selected_Component): If the prefix is a remote type, check
5992         whether this is a prefixed call before reporting an error.
5993         (Complete_Object_Operation): If the controlling formal is an access to
5994         variable reject an actual that is a constant or an access to one.
5995         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
5996         primitive operations from base type.
5997
5998         * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
5999         build-in-place
6000         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
6001         (Expand_N_Selected_Component): Test for prefix that is a build-in-place
6002         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
6003         (Expand_N_Slice): Test for prefix that is a build-in-place function call
6004         and call Make_Build_In_Place_Call_In_Anonymous_Context.
6005         (Analyze_Call): Remove code that issues an error for limited function
6006         calls in illegal contexts, as we now support all of the contexts that
6007         were forbidden here.
6008         New calling sequence for Get_Simple_Init_Val
6009         (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
6010         (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
6011
6012 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
6013             Ed Schonberg  <schonberg@adacore.com>
6014             Robert Dewar  <dewar@adacore.com>
6015
6016         * exp_ch2.adb: Minor reformatting.
6017         (Expand_Entry_Index_Parameter): Set the type of the identifier.
6018         (Expand_Entry_Reference): Add call to Expand_Protected_Component.
6019         (Expand_Protected_Component): New routine.
6020         (Expand_Protected_Private): Removed.
6021         Add Sure parameter to Note_Possible_Modification calls
6022
6023         * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
6024         generated subprogram declaration must inherit the overriding indicator
6025         from the instantiation node.
6026         (Validate_Access_Type_Instance): If the designated type of the actual is
6027         a limited view, use the available view in all cases, not only if the
6028         type is an incomplete type.
6029         (Instantiate_Object):  Actual is illegal if the formal is null-excluding
6030         and the actual subtype does not exclude null.
6031         (Process_Default): Handle properly abstract formal subprograms.
6032         (Check_Formal_Package_Instance): Handle properly defaulted formal
6033         subprograms in a partially parameterized formal package.
6034         Add Sure parameter to Note_Possible_Modification calls
6035         (Validate_Derived_Type_Instance): if the formal is non-limited, the
6036         actual cannot be limited.
6037         (Collect_Previous_Instances): Generate instance bodies for subprograms
6038         as well.
6039
6040         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
6041         try to set RM_Size.
6042         Add Sure parameter to Note_Possible_Modification calls
6043         (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
6044         (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
6045         constant overlaid by variable and issue warning.
6046         Use new Is_Standard_Character_Type predicate
6047         (Analyze_Record_Representation_Clause): Check that the specified
6048         Last_Bit is not less than First_Bit - 1.
6049         (Analyze_Attribute_Definition_Clause, case Address): Check for
6050         self-referential address clause
6051
6052         * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
6053         detection mechanism when the lhs is a prival.
6054         (Analyze_Assignment): Call Check_Unprotected_Access to detect
6055         assignment of a pointer to protected data, to an object declared
6056         outside of the protected object.
6057         (Analyze_Loop_Statement): Check for unreachable code after loop
6058         Add Sure parameter to Note_Possible_Modication calls
6059         Protect analysis from previous syntax error such as a scope mismatch
6060         or a missing begin.
6061         (Analyze_Assignment_Statement): The assignment is illegal if the
6062         left-hand is an interface.
6063
6064         * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
6065         violation of restriction No_Implicit_Conditionals
6066         Add Sure parameter to Note_Possible_Modication calls
6067         Use new Is_Standard_Character_Type predicate
6068         (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
6069         call as operator. Fixes problems (e.g. validity checking) which
6070         come from the result looking as though it does not come from source).
6071         (Resolve_Call): Check case of name in named parameter if style checks
6072         are enabled.
6073         (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
6074         from the checking that such calls should not occur from an entry body.
6075         (Resolve_Call): If the return type of an Inline_Always function
6076         requires the secondary stack, create a transient scope for the call
6077         if the body of the function is not available for inlining.
6078         (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
6079         that are actuals for in-out formals.
6080         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
6081         primitive operations from base type.
6082         (Analyze_Selected_Component): If the context is a call to a protected
6083         operation the parent may be an indexed component prior to expansion.
6084         (Resolve_Actuals): If an actual is of a protected subtype, use its
6085         base type to determine whether a conversion to the corresponding record
6086         is needed.
6087         (Resolve_Short_Circuit): Handle pragma Check
6088
6089         * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
6090         Use new Is_Standard_Character_Type predicate
6091         (Eval_Relational_Op): Catch more cases of string comparison
6092
6093 2008-04-08  Robert Dewar  <dewar@adacore.com>
6094             Gary Dismukes  <dismukes@adacore.com>
6095
6096         * s-rident.ads: Add No_Default_Initialization restriction
6097
6098         * exp_tss.adb:
6099         (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
6100         (Set_TSS): Handle No_Default_Initialization case
6101
6102         * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
6103         No_Default_Initialization
6104         (Expand_N_Subprogram_Body): Remove redundant initialization of out
6105         parameters when Normalize_Scalars is active.
6106         (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
6107         Fix casing error in formal parameter name in call
6108         (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
6109         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
6110         dispatching call on VM targets.
6111
6112 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
6113             Thomas Quinot  <quinot@adacore.com>
6114
6115         * exp_ch7.adb (Find_Final_List): Change the test for generating a
6116         selected component from an access type's Associated_Final_Chain to
6117         check for the presence of that field, rather than assuming it exists
6118         for all named access types.
6119         (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
6120         procedure to call at the end of the generated cleanup procedure.
6121         (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
6122         and an At_End_Proc already exists in the handled sequence of statements
6123         for which cleanup actions are being expanded, the original cleanup
6124         action must be preserved.
6125
6126 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
6127             Ed Schonberg  <schonberg@adacore.com>
6128             Robert Dewar  <dewar@adacore.com>
6129             Gary Dismukes  <dismukes@adacore.com>
6130
6131         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
6132         Build_Unprotected_Subprogram_Body): Generate debug info for
6133         declarations related to the handling of private data in task and
6134         protected types.
6135         (Debug_Private_Data_Declarations): New subprogram.
6136         (Install_Private_Data_Declarations): Remove all debug info flagging.
6137         This is now done by Debug_Private_Data_Declarations at the correct
6138         stage of expansion.
6139         (Build_Simple_Entry_Call): If the task name is a function call, expand
6140         the prefix into an object declaration, and make the surrounding block a
6141         task master.
6142         (Build_Master_Entity): An internal block is a master if it wraps a call.
6143         Code reformatting, update comments. Code clean up.
6144         (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
6145         (Replicate_Entry_Formals): If the formal is an access parameter or
6146         anonymous access to subprogram, copy the original tree to create new
6147         entities for the formals of the subprogram.
6148         (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
6149         for tasks to store the value passed using pragma Relative_Deadline.
6150         (Make_Task_Create_Call): Add the Relative_Deadline argument to the
6151         run-time call to create a task.
6152         (Build_Wrapper_Spec): If the controlling argument of the interface
6153         operation is an access parameter with a non-null indicator, use the
6154         non-null indicator on the wrapper.
6155
6156         * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
6157         present, which it may not be in the case where the type entity is an
6158         incomplete view brought in by a limited with.
6159         (Analyze_Task_Type): Only retrieve the full view when present, which it
6160         may not be in the case where the type entity is an incomplete view brought
6161         in by a limited with.
6162         (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
6163         private components of a protected type, to prevent the generation of freeze
6164         nodes for which there is no proper scope of elaboration.
6165
6166         * exp_util.ads, exp_util.adb
6167         (Remove_Side_Effects): If the expression is a function call that returns a
6168         task, expand into a declaration to invoke the build_in_place machinery.
6169         (Find_Protection_Object): New routine.
6170         (Remove_Side_Effects): Also make a copy of the value
6171         for attributes whose result is of an elementary type.
6172         (Silly_Boolean_Array_Not_Test): New procedure
6173         (Silly_Boolean_Array_Xor_Test): New procedure
6174         (Is_Volatile_Reference): New function
6175         (Remove_Side_Effects): Use Is_Volatile_Reference
6176         (Possible_Bit_Aligned_Component): Handle slice case properly
6177
6178         * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
6179         case test to Exp_Util
6180         (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
6181
6182 2008-04-08  Thomas Quinot  <quinot@adacore.com>
6183
6184         * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
6185         in call
6186         (Add_RACW_Features): When processing an RACW in another unit than the
6187         main unit, set Body_Decls to No_List to indicate that the bodies of
6188         the type's TSS must not be generated.
6189         (GARLIC_Support.Add_RACW_Read_Attribute,
6190         GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
6191         Body_Decls is No_List.
6192         (PolyORB_Support.Add_RACW_Read_Attribute,
6193         PolyORB_Support.Add_RACW_Write_Attribute,
6194         PolyORB_Support.Add_RACW_From_Any,
6195         PolyORB_Support.Add_RACW_To_Any,
6196         PolyORB_Support.Add_RACW_TypeCode): Same.
6197         (Transmit_As_Unconstrained): New function.
6198         (Build_Ordered_Parameters_List): Use the above to order parameters.
6199         (GARLIC_Support.Build_General_Calling_Stubs):
6200         Use the above to determine which parameters to unmarshall using 'Input
6201         at the point where their temporary is declared (as opposed to later on
6202         with a 'Read call).
6203         (PolyORB_Support.Build_General_Calling_Stubs):
6204         Use the above to determine which parameters to unmarshall using From_Any
6205         at the point where their temporary is declared (as opposed to later on
6206         with an assignment).
6207
6208 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6209
6210         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
6211         an Input function for an access type, do not perform default
6212         initialization on the local variable that receives the value, to
6213         prevent spurious warnings when the type is null-excluding.
6214
6215 2008-04-08  Robert Dewar  <dewar@adacore.com>
6216             Ed Schonberg  <schonberg@adacore.com>
6217
6218         * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
6219         units.
6220         (Size_Known): Generic formal scalar types have known at compile
6221         time size, so remove check.
6222         Fix casing error in formal parameter name in call
6223         (Freeze_Subprogram): If the subprogram is a user-defined operator,
6224         recheck its overriding indication.
6225
6226 2008-04-08  Vincent Celier  <celier@adacore.com>
6227
6228         * gnat1drv.adb: Send all messages indicating an error to standard error
6229
6230 2008-04-08  Robert Dewar  <dewar@adacore.com>
6231
6232         * gnatbind.adb (Restriction_Could_Be_Set): New procedure
6233         (List_Applicable_Restrictions): Do not list existing restrictions
6234
6235 2008-04-08  Thomas Quinot  <quinot@adacore.com>
6236
6237         * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
6238         add a pointer to generic sockets literature
6239         do not mention that the given example is "typical" usage.
6240         Remove obsolete comment about multicast not being supported on Windows.
6241         (Connect_Socket): Make Server mode IN rather than IN OUT
6242         since this formal is never modified.
6243
6244 2008-04-08  Robert Dewar  <dewar@adacore.com>
6245
6246         * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
6247         the declaration for some different entity.
6248         (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
6249         list is precent (following the parent subtype indication), display
6250         appropriate "and" keyword.
6251
6252         * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
6253         Remove unnecessary calls to Init_Size_Align and Init_Esize.
6254         Add notes on use of Parent field of an Itype
6255
6256 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6257             Robert Dewar  <dewar@adacore.com>
6258             Gary Dismukes  <dismukes@adacore.com>
6259
6260         * lib-xref.adb (Is_On_LHS): Remove dead code
6261         (Output_Overriden_Op): If the overridden operation is itself inherited,
6262         list the ancestor operation, which is the one whose body or absstract
6263         specification is actually being overridden. For source navigation
6264         purposes.
6265
6266         * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
6267         operation is primitive for the type.
6268         (Declare_Inherited_Private_Subprograms): If the new operation overrides
6269         an inherited private subprogram, set properly the Overridden_Operation
6270         attribute, for better cross-reference information.
6271         (Analyze_Package_Specification): Do late analysis of spec PPCs
6272         (Install_Private_Declaration, Uninstall_Declarations): Save/restore
6273         properly the full view and underlying full views of a private type in a
6274         child unit, whose full view is derived from a private type in a parent
6275         unit, and whose own full view becomes visible in the child body.
6276
6277         * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
6278         primitive operation after the type has been frozen, add an explicit
6279         reference to the type and the operation, because other primitive
6280         references have been emitted already.
6281         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
6282         dispatching call on VM targets.
6283
6284 2008-04-08  Vincent Celier  <celier@adacore.com>
6285             Thomas Quinot  <quinot@adacore.com>
6286
6287         * make.adb: (Gnatmake_Called): Remove, no longer necessary
6288         (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
6289         is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
6290         (Insert_Project_Sources): Take into account index in multi-unit source
6291         files.
6292         After building a library project, delete all temporary files.
6293         (Initialize): Reset current output after parsing project file.
6294         (Collect_Arguments_And_Compile): Never insert in the queue the sources
6295         of library projects that are externally built.
6296         Put file name in error and inform messages if -df is used
6297         (Display): If invoked with -d7, do not display path names, but only
6298         file names.
6299
6300         * makeutl.ads (Path_Or_File_Name): New function
6301         (Path_Or_File_Name): New function
6302
6303 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
6304
6305         * Make-lang.in: Disable warnings during first stage of bootstrap
6306         Get rid of gnatbl.
6307         Update dependencies.
6308
6309 2008-04-08  Vincent Celier  <celier@adacore.com>
6310
6311         * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
6312         case to decide if ALI object file is included in library.
6313         (Build_Library): Never attempt to build a library if the project is
6314         externally built.
6315
6316 2008-04-08  Thomas Quinot  <quinot@adacore.com>
6317
6318         * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
6319         (No_List) is defined to return Empty.
6320
6321 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
6322
6323         * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
6324         documentation.
6325         Update comments.
6326         (Read_Default_Search_Dirs): Do not consider spaces as path separators
6327         because spaces may be part of legal paths.
6328
6329 2008-04-08  Robert Dewar  <dewar@adacore.com>
6330
6331         * par-ch11.adb (P_Exception_Handler): Check indentation level for
6332         handler
6333
6334 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6335
6336         * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
6337         in a type declaration, if this is not an interface declaration or
6338         private type extension.
6339
6340 2008-04-08  Vincent Celier  <celier@adacore.com>
6341
6342         * prj-util.adb (Executable_Of): New String parameter Language. When
6343         Ada_Main is False and Language is not empty, attempt to remove the body
6344         suffix or the spec suffix of the language to get the base of the
6345         executable file name.
6346         (Put): New Boolean parameter Lower_Case, defauilted to False. When
6347         Lower_Case is True, put the value in lower case in the name list.
6348         (Executable_Of): If there is no executable suffix in the configuration,
6349         then do not modify Executable_Extension_On_Target.
6350
6351         * prj-util.ads (Executable_Of): New String parameter Language,
6352         defaulted to the empty string.
6353         (Put): New Boolean parameter Lower_Case, defauilted to False
6354
6355 2008-04-08  Robert Dewar  <dewar@adacore.com>
6356
6357         * scng.adb (Scan_Identifier): Handle case of identifier starting with
6358         wide character using UTF-8 encoding.
6359
6360 2008-04-08  Javier Miranda  <miranda@adacore.com>
6361
6362         * sem.adb (Analyze): Consider case in which we analyze an empty node
6363         that was generated by a call to a runtime function that is not
6364         available under the configurable runtime.
6365
6366         * sem.ads (Inside_Freezing_Actions): New flag.
6367         (Save_Check_Policy_List): New field in scope stack entry
6368
6369 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6370             Robert Dewar  <dewar@adacore.com>
6371
6372         * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
6373         the ancestor part of an extension aggregate for a limited type.
6374         (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
6375         enumeration index bounds.
6376         (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
6377         when array is too short.
6378         (Check_Expr_OK_In_Limited_Aggregate): Move function
6379         Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
6380         change name).
6381         (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
6382         Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
6383         component associations.
6384         (Check_Non_Limited_Type): Moved to outer level and renamed.
6385         (Resolve_Record_Aggregate): In an extension aggregate, an association
6386         with a box initialization can only designate a component of the
6387         extension, not a component inherited from the given ancestor
6388
6389         * sem_case.adb: Use new Is_Standard_Character_Type predicate
6390
6391 2008-04-08  Robert Dewar  <dewar@adacore.com>
6392
6393         * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
6394         negative scale
6395         (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
6396         Properly handle case where Aft > Scale and input number is less than
6397         one.
6398
6399 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
6400
6401         * s-stoele.ads, s-soflin.ads: Move the location of
6402         Dummy_Communication_Block from System.Storage_Elements to
6403         System.Soft_Links.
6404
6405         * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
6406         emulate Communication_Block in certain scenarios.
6407
6408 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
6409
6410         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
6411         subprogram.
6412         Add new subtype S_WWC, unchecked conversion routines From_WWC and
6413         To_WWC.
6414         (I_WWC, O_WWC): New routines for input and output of
6415         Wide_Wide_Character.
6416
6417 2008-04-08  Robert Dewar  <dewar@adacore.com>
6418
6419         * stringt.adb (Write_String_Table_Entry): Handle wide characters
6420         properly
6421
6422 2008-04-08  Robert Dewar  <dewar@adacore.com>
6423
6424         * styleg.adb (Check_Comment): Allow special char after -- in
6425         non-end-of-line case
6426
6427 2008-04-08  Robert Dewar  <dewar@adacore.com>
6428
6429         * stylesw.adb: Implement -gnaty + - y options
6430         (Set_GNAT_Style_Check_Options): Includ I in style check string
6431
6432         * stylesw.ads: Add comments for new style switch options
6433
6434 2008-04-08  Sergey Rybin  <rybin@adacore.com>
6435
6436         * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
6437         to the set of the GNAT components needed by ASIS.
6438
6439 2008-04-08  Bob Duff  <duff@adacore.com>
6440
6441         * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
6442
6443 2008-04-08  Tristan Gingold  <gingold@adacore.com>
6444
6445         * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
6446         Improve error message generation.
6447
6448 2008-04-08  Vincent Celier  <celier@adacore.com>
6449
6450         * a-direct.adb (Start_Search): Check for Name_Error before checking for
6451         Use_Error, as specified in the RM. Check if directory is open and raise
6452         Use_Error if it is not.
6453
6454 2008-04-08  Vincent Celier  <celier@adacore.com>
6455             Robert Dewar  <dewar@adacore.com>
6456
6457         * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
6458         AAMP_On_Target is set.
6459
6460         * vms_data.ads: Add NOxxx to style check switch list
6461         Add entry COMPONENTS for -gnatVe
6462         Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
6463         (/SUBDIRS=).
6464         (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
6465         Add qualifiers for gnatmetric coupling options
6466         Add note that -gnata enables all checks
6467         Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
6468         Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
6469         New warning flag -gnatw.e
6470
6471         * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
6472         Add entry for -gnatyN (forgotten before)
6473         Line for new warning switch -gnatw.p
6474         New warning flag -gnatw.e
6475
6476         * gnat_ugn.texi: Add documentation fpr project file switch -aP
6477         Document -gnaty - + y
6478         Replace occurences of "package specification" with "package spec"
6479         Define preprocessing symbols in documentation of gnatprep
6480         Clarify reason for distinguishing overflow checking
6481         Add documentation for project-aware tool switches -eL and --subdirs=
6482         Complete list of configuration pragmas
6483         Specify that, even when gnatmake switch -x is used, mains on the command
6484         line need to be sources of project files.
6485         Editing of gnatcheck/gnatmetric doc.
6486         Add documentation for -gnatw.p/-gnatw.P
6487         Add missing documentation for -fno-inline-functions.
6488         Add documentation for -gnatw.e
6489
6490         * gnat_rm.texi: Add documentation for No_Default_Initialization
6491         Replace occurences of "package specification" with "package spec"
6492         Document use of * in Warnings Off string
6493         Update documentation of alignment/component clauses.
6494         Add documentation for Invalid_Value
6495         Document new consistency rule for Optimize_Alignment
6496         Add documentation for Precondition and Postcondition pragmas
6497         Add documentation for Check and Check_Policy pragmas
6498         Document new Enum_Val attribute
6499         Remove requirement for static string in pragma Assert
6500         Add documentation on GNAT.Time_Stamp
6501
6502         * ug_words: add entry for -gnatVe
6503         Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
6504         Add entry for -gnatw.e
6505
6506         * debug.adb: Add missing documentation for d.a flag
6507         Document new -gnatd.a switch.
6508         Add documentation for new gnatmake debug switch -df
6509
6510 2008-04-08  Thomas Quinot  <quinot@adacore.com>
6511
6512         * gen-soccon.c: Bump year in copyright notices.
6513
6514         * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
6515
6516 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6517
6518         * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
6519         Minor reformatting.
6520
6521 2008-04-08  Robert Dewar  <dewar@adacore.com>
6522             Bob Duff  <duff@adacore.com>
6523
6524         * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
6525         Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
6526
6527         * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
6528
6529         * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
6530
6531         * g-trasym.ads: Minor comment improvements
6532
6533         * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
6534
6535         * a-sequio.ads, a-direio.ads: improve message for tagged type
6536
6537         * a-strunb.ads: Minor reformatting
6538
6539         * a-tifiio.adb: Minor reformatting
6540
6541         * atree.adb (Fix_Parents): Use clearer names for formals
6542         Cleanup and simplify code
6543         Use named notation in calls
6544
6545         * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
6546         confusing calls
6547
6548         * uintp.adb: Used named notation for some confusing calls
6549
6550         * bindusg.adb: Minor change in one line of output
6551
6552         * cstand.adb: Minor reformatting of src representation of Standard
6553
6554         * a-assert.ads: Add comment.
6555
6556         * g-decstr.adb: Fix bad indentation
6557
6558         * expander.ads, expander.adb: Code clean up.
6559
6560         * sem_dist.ads: Minor comment improvement
6561
6562         * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
6563         s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
6564
6565         * i-cstrin.adb: Fix casing error in formal parameter name in call
6566
6567 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6568
6569         * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
6570         mentioned in limited_with_clauses to do create semantic dependencies
6571         even though they appear in the ali file.
6572
6573 2008-04-08  Emmanuel Briot  <briot@adacore.com>
6574
6575         * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
6576         statement.
6577         (Get_Configuration): New subprogram.
6578
6579         * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
6580         These optional parameters help preserve the casing of the project's name
6581         when pretty-printing.
6582
6583 2008-04-08  Jerome Lambourg  <lambourg@adacore.com>
6584             Arnaud Charlet  <charlet@adacore.com>
6585
6586         * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
6587         then use __gnat_set_exit_status to report the returned status code.
6588
6589         * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
6590         messages on .NET, since some constructs of the language are not
6591         properly supported.
6592
6593         * gnatlink.adb (Gnatlink): In case the command line is too long for the
6594         .NET linker, gnatlink now concatenate all .il files and pass this to
6595         ilasm.
6596
6597 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
6598             Xavier Grave  <grave@ipno.in2p3.fr>
6599
6600         * Makefile.in: Add make ifeq define for mips/mipsel support.
6601         * g-soccon-linux-mips.ads, system-linux-mipsel.ads,
6602         system-linux-mips.ads: New files.
6603
6604 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
6605
6606         * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
6607         detect systems using GNU libc.
6608         * gsocket.h: ditto.
6609         * socket.c: ditto.
6610         * adaint.c: ditto.
6611         * link.c: ditto.
6612
6613 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
6614
6615         * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New
6616         constant constant for sysconf call.
6617         (bit_field): New packed boolean type used by cpu_set_t.
6618         (cpu_set_t): New type corresponding to the C type with
6619         the same name. Note that on the Ada side we use a bit
6620         field array for the affinity mask. There is not need
6621         for the C macro for setting individual bit.
6622         (pthread_setaffinity_np): New imported routine.
6623         * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
6624         on GNU/kFreeBSD.
6625
6626 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6627
6628         * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
6629
6630 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6631
6632         * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
6633         * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
6634         * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
6635         * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
6636         Return by Depressed Stack Pointer.
6637
6638 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6639
6640         * decl.c (is_variable_size): Do not unconditionally return false
6641         on non-strict alignment platforms.
6642
6643 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6644
6645         * decl.c (rest_of_type_decl_compilation_no_defer): New local function
6646         used to process all the variants of the specified type.
6647         (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
6648         types too.  Call rest_of_type_decl_compilation_no_defer if undeferring.
6649         (rest_of_type_decl_compilation): Likewise.
6650         * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
6651
6652 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6653
6654         * gigi.h (insert_block): Kill.
6655         * utils.c (insert_block): Kill.
6656
6657 2008-04-02  Eric Botcazou  <ebotcazou@adacore.com>
6658
6659         * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
6660         type has self-referential size, get the size from the initializing
6661         expression directly if it is also a constant whose nominal type
6662         has self-referential size.
6663
6664 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6665
6666         PR ada/33688
6667         * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
6668
6669         PR ada/33857
6670         * env.c: Always include crt_externs.h if __APPLE__ is defined.
6671         (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
6672
6673 2008-04-01  Andreas Jaeger  <aj@suse.de>
6674
6675         * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
6676         IP_PKTINFO.
6677
6678 2008-03-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6679
6680         * g-table.adb, g-tasloc.adb, g-traceb.ads,
6681         g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
6682         gnatbind.adb, gnatchop.adb, gnatcmd.adb,
6683         gnatcmd.ads, gnatdll.adb, gnatfind.adb,
6684         gnatlink.adb, gnatmem.adb, gprep.adb,
6685         i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
6686         i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
6687         layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
6688         lib-xref.ads, lib.adb, link.c, live.ads,
6689         make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
6690         mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
6691         misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
6692         mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
6693         namet.adb, namet.h, nlists.adb, nlists.ads,
6694         nlists.h, opt.ads, osint-b.ads, osint-c.adb,
6695         osint-c.ads, osint.adb, osint.ads, output.ads,
6696         par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
6697         par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
6698         par-endh.adb, par-labl.adb, par-prag.adb,
6699         par-sync.adb, par-tchk.adb, par-util.adb,
6700         par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
6701         prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
6702         prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
6703         prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
6704
6705 2008-03-31  Eric Botcazou  <ebotcazou@adacore.com>
6706
6707         * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
6708         size if it has overflowed.
6709
6710 2008-03-31  Olivier Hainque  <hainque@adacore.com>
6711             Eric Botcazou  <ebotcazou@adacore.com>
6712
6713         * utils2.c (find_common_type): Document assumption on t1/t2 vs
6714         lhs/rhs. Force use of lhs type if smaller, whatever the modes.
6715
6716 2008-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6717
6718         * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
6719         einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
6720         exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
6721         exp_pakd.ads, exp_prag.adb, exp_smem.adb,
6722         exp_tss.ads, exp_util.adb, exp_util.ads,
6723         exp_vfpt.adb, freeze.adb, freeze.ads,
6724         frontend.adb, g-alleve.adb, g-altcon.adb,
6725         g-altive.ads, g-alveop.ads, g-alvevi.ads,
6726         g-arrspl.adb, g-busorg.ads, g-calend.adb,
6727         g-calend.ads, g-casuti.ads, g-cgideb.adb,
6728         g-comlin.adb, g-comlin.ads, g-curexc.ads,
6729         g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
6730         g-dirope.adb, g-dirope.ads, g-dynhta.ads,
6731         g-dyntab.adb, g-encstr.ads, g-excact.ads,
6732         g-except.ads, g-expect.ads, g-heasor.adb,
6733         g-hesora.adb, g-hesorg.adb, g-htable.ads,
6734         g-locfil.ads, g-md5.adb, g-md5.ads,
6735         g-memdum.ads, g-moreex.ads, g-os_lib.adb,
6736         g-pehage.adb, g-pehage.ads, g-regexp.adb,
6737         g-regexp.ads, g-regpat.adb, g-regpat.ads,
6738         g-soccon-aix.ads, g-soccon-darwin.ads,
6739         g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
6740         g-soccon-hpux.ads, g-soccon-irix.ads,
6741         g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
6742         g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
6743         g-soccon-mingw.ads, g-soccon-solaris-64.ads,
6744         g-soccon-solaris.ads, g-soccon-tru64.ads,
6745         g-soccon-vms.ads, g-soccon-vxworks.ads,
6746         g-soccon.ads, g-socket.adb, g-socket.ads,
6747         g-socthi-mingw.adb, g-socthi-vms.adb,
6748         g-socthi-vxworks.adb, g-soliop-mingw.ads,
6749         g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
6750         g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
6751         typos.
6752
6753 2008-03-27  Eric Botcazou  <ebotcazou@adacore.com>
6754
6755         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
6756         if the procedure is imported.
6757
6758 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6759
6760         * adaint.c: Fix warnings.
6761
6762 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6763
6764         * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
6765
6766 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6767
6768         * a-witeio.adb: Fix problem with Current_Output (introduce Self).
6769         Fix problem of status check for null file
6770
6771 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6772
6773         * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
6774         s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
6775         s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
6776         i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
6777         s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
6778         comments.
6779
6780 2008-03-26  Thomas Quinot  <quinot@adacore.com>
6781
6782         PR ada/33688
6783         * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
6784         Get_Socket_Option): Add support for Receive_Packet_Info.
6785
6786         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
6787         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
6788         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
6789         g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
6790         g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
6791         new constants SO_REUSEPORT and IP_PKTINFO
6792
6793 2008-03-26  Robert Dewar  <dewar@adacore.com>
6794
6795         * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
6796         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
6797         a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
6798         a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
6799         a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
6800         a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
6801         s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
6802         s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
6803         a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
6804         s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
6805         s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
6806         s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
6807         s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
6808         s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
6809         s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
6810         s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
6811         s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
6812         s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
6813         s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
6814         s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
6815         a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
6816         a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
6817         s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
6818         s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
6819         s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
6820         s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
6821         s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
6822         a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
6823         a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
6824         s-tasloc.adb: Minor reformatting.
6825         Update comments.
6826         Remove "used for" sections from comments.
6827
6828 2008-03-26  Robert Dewar  <dewar@adacore.com>
6829
6830         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
6831         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
6832         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
6833         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
6834         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
6835         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
6836         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
6837         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
6838         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
6839         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
6840         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
6841         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
6842         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
6843         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
6844         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
6845         double spaced if it fits on one line and otherwise single spaced.
6846
6847 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6848
6849         * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
6850         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
6851         s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
6852         or task info if the thread could not be created.
6853
6854 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6855
6856         * gnatvsn.ads (Library_Version): Bump to 4.4.
6857         (Current_Year): Bump to 2008.
6858
6859 2008-03-26  Robert Dewar  <dewar@adacore.com>
6860
6861         * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
6862
6863         * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
6864
6865         * debug.adb: Add debug flags d.r and d.v
6866         Add debug flag .T (Optimize_Alignment (Time))
6867         Add debug flag .S (Optimize_Alignment (Space))
6868
6869         * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
6870         depending on setting of relevant debug flags.
6871         Replace use of Warnings_Off by Has_Warnings_Off
6872         (Freeze_Entity): In circuit for warning on suspicious convention
6873         actuals, do not give warning if subprogram has same entity as formal
6874         type, or if subprogram does not come from source.
6875         (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
6876         if Optimize_Alignment set to Space.
6877
6878         * frontend.adb: Add call to Sem_Warn.Initialize
6879         Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
6880         Reset Optimize_Alignment mode from debug switches .S and .T
6881
6882         * layout.adb (Layout_Composite_Object): Rewritten for
6883         Optimize_Aligment pragma.
6884
6885         * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
6886         mode.
6887
6888         * opt.ads, opt.adb: (Optimize_Alignment): New global switch
6889
6890         * par-prag.adb (N_Pragma): Chars field removed, use Chars
6891         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
6892         this change. Add entry for pragma Optimize_Alignment
6893
6894         * sem_prag.adb (N_Pragma): Chars field removed, use Chars
6895         (Pragma_Identifier (..
6896         instead, adjustments throughout to accomodate this change.
6897         (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
6898         (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
6899         Add implementation of pragma Optimize_Alignment
6900
6901 2008-03-26  Vincent Celier  <celier@adacore.com>
6902
6903         * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
6904         Improve memory usage to avoid use of stack.
6905
6906 2008-03-26  Robert Dewar  <dewar@adacore.com>
6907
6908         * a-teioed.ads: Correct value of Default_Fill
6909
6910         * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
6911
6912 2008-03-26  Robert Dewar  <dewar@adacore.com>
6913
6914         * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
6915         with Current_Output (introduce Self).
6916
6917 2008-03-26  Robert Dewar  <dewar@adacore.com>
6918
6919         * checks.adb (Ensure_Valid): Capture valid status if possible
6920         (eliminate checks)
6921
6922 2008-03-26  Robert Dewar  <dewar@adacore.com>
6923
6924         * stand.ads: Deal with reordering of package standard declarations
6925
6926         * cstand.adb: Put package Standard declarations in proper order
6927
6928 2008-03-26  Robert Dewar  <dewar@adacore.com>
6929
6930         * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
6931         (Pragma_Identifier (.. instead.
6932         (OK_To_Reorder_Components): New flag
6933         (Has_Entries): Code cleanup.
6934         (Warnings_Off_Used): New flag
6935         (Warnings_Off_Used_Unmodified): New flag
6936         (Warnings_Off_Used_Unreferenced): New flag
6937         (Has_Warnings_Off): New function
6938         (Has_Unmodified): New function
6939         (Has_Unreferenced): New function
6940         (Is_Trivial_Subprogram): New flag
6941         (Is_Static_Dispatch_Table_Entity): New attribute.
6942         Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
6943         (more consistent with other similar names)
6944         (Access_Subprogram_Type): New classification function
6945
6946 2008-03-26  Robert Dewar  <dewar@adacore.com>
6947
6948         * errout.ads: Document new !! insertion sequence
6949
6950         * errout.adb (N_Pragma): Chars field removed, use Chars
6951         (Pragma_Identifier (..  instead.
6952         Replace use of Warnings_Off by Has_Warnings_Off
6953         (Error_Msg_Internal): Don't delete warning ending in !!
6954
6955 2008-03-26  Robert Dewar  <dewar@adacore.com>
6956
6957         * par.adb (Check_No_Right_Paren): Removed no longer used
6958
6959         * par-ch10.adb (N_Pragma): Chars field removed, use Chars
6960         (Pragma_Identifier (..  instead.
6961
6962         * par-ch10.adb (P_Subunit): Improvement in error recovery and message
6963
6964         * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
6965         par-ch4.adb: Minor improvements in error recovery and messages.
6966
6967         * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
6968         non-serious
6969
6970         * par-ch9.adb: Minor improvements in error recovery and messages
6971         (P_Protected): Better error recovery for "protected type x;"
6972
6973         * par-util.adb: Minor improvements in error recovery and messages
6974         (Check_No_Right_Paren): Removed no longer used
6975
6976 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
6977
6978         * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
6979         that the prefix of an attribute is the type of the aggregate being
6980         expanded.
6981
6982 2008-03-26  Javier Miranda  <miranda@adacore.com>
6983             Robert Dewar  <dewar@adacore.com>
6984
6985         * exp_attr.adb (N_Pragma): Chars field removed.
6986         (Expand_N_Attribute_Reference): If the designated type associated with
6987         attribute 'Unrestricted_Access is a subprogram entity then replace it
6988         by an E_Subprogram_Type itype.
6989         Implement attribute Old
6990
6991         * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
6992
6993         * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
6994         Replace call to
6995         New_Internal_Entity by call to Create_Itype to centralize calls
6996         building itypes, ad propagate the convention of the designated
6997         subprogram. In addition, disable the machinery cleaning constant
6998         indications from all entities in current scope when 'Unrestricted_Access
6999         corresponds with a node initializing a dispatch table slot.
7000         (Analyze_Attribute): Parameterless attributes returning a string or a
7001         type will not be called with improper arguments, so we can remove junk
7002         code that was dealing with this case.
7003         Implement attribute Old
7004
7005         * snames.ads, snames.h, snames.adb: Add entries for attribute Old
7006         Add entry for pragma Optimize_Alignment
7007         New standard names Sync and Synchronize
7008
7009 2008-03-26  Robert Dewar  <dewar@adacore.com>
7010             Arnaud Charlet  <charlet@adacore.com>
7011
7012         * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
7013         stmt.
7014         (No_Exception_Propagation_Active): New function.
7015         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
7016         Update comments, and review all uses of No_Exception_Propagation, which
7017         are now correct and in sync with what gigi expects.
7018
7019         * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
7020         function.
7021         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
7022         Update comments, and review all uses of No_Exception_Propagation, which
7023         are now correct and in sync with what gigi expects.
7024
7025 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
7026
7027         * sem_ch3.adb (Access_Definition): If the access type is the return
7028         result of a protected function, create an itype reference for it
7029         because usage will be in an inner scope from the point of declaration.
7030         (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
7031         OK_To_Reorder_Components.
7032         (Make_Index): If an overloaded range includes a universal integer
7033         interpretation, resolve to Standard.Integer.
7034         (Analyze_Subtype_Indication): Copy Convention to subtype
7035         (Check_Abstract_Interfaces): Complete semantic checks on the legality of
7036         limited an synchronized progenitors in type declaration and private
7037         extension declarations.
7038
7039         * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
7040         protected subprogram body, determine proper scope from subprogram
7041         declaration.
7042
7043 2008-03-26  Robert Dewar  <dewar@adacore.com>
7044
7045         * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
7046         No_Run_Time_Mode
7047
7048 2008-03-26  Gary Dismukes  <dismukes@adacore.com>
7049
7050         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
7051         of a heap allocator for a limited unconstrained function return when
7052         resstriction No_Allocators is active.
7053         (Analyze_Allocator): The restriction No_Allocators is now only checked
7054         on allocators that have Comes_From_Source set, as per RM-H.4(7).
7055
7056         * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
7057         of a heap allocator for a limited unconstrained function return when
7058         resstriction No_Allocators is active.
7059         (Analyze_Allocator): The restriction No_Allocators is now only checked
7060         on allocators that have Comes_From_Source set, as per RM-H.4(7).
7061         (Has_Fixed_Op):  If the name in a function call is Standard."*" and the
7062         operands are fixed-point types, the universal_fixed predefined operation
7063         is used, regardless of whether the operand type (s) have a primitive
7064         operation of the same name.
7065
7066 2008-03-26  Javier Miranda  <miranda@adacore.com>
7067
7068         * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
7069         Is_Static_Dispatch_Table
7070         (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
7071         to Exchange_Declarations to exchange the private and full-view. Bug
7072         found working in this issue.
7073         (Expand_Dispatching_Call): Propagate the convention of the subprogram
7074         to the subprogram pointer type.
7075         (Make_Secondary_DT): Replace generation of Prim'Address by
7076         Address (Prim'Unrestricted_Access)
7077         (Make_DT): Replace generation of Prim'Address by
7078         Address (Prim'Unrestricted_Access)
7079         (Make_Disp_*_Bodies): When compiling for a restricted profile, use
7080         simple call form for single entry.
7081         (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
7082         tables of predefined primitives).
7083         (Make_Secondary_DT): Add support to handle access to dispatch tables of
7084         predefined primitives.
7085         (Make_Tags): Add entities to Access_Dispatch_Table associated with
7086         access to dispatch tables containing predefined primitives.
7087
7088         * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
7089         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
7090         this change.
7091         (Register_Predefined_DT_Entry): Updated to handle the new contents
7092         of attribute Access_Disp_Table (pointers to dispatch tables containing
7093         predefined primitives).
7094
7095         * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
7096         subprogram.
7097         (Find_Interface_ADT): Updated to skip the new contents of attribute
7098         Access_Dispatch_Table (pointers to dispatch tables containing predefined
7099         primitives).
7100
7101         * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
7102         concurrent types.
7103         (Set_Convention): Use new function Is_Access_Subprogram_Type
7104         (Collect_Interfaces_Info): Updated to skip the new contents of attribute
7105         Access_Dispatch_Table (pointers to dispatch tables containing predefined
7106         primitives).
7107
7108         * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
7109         expanded code avoiding calls to Build_Predef_Prims.
7110         (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
7111         call to Build_Get_Predefined_Prim_Op_Address.
7112
7113 2008-03-26  Javier Miranda  <miranda@adacore.com>
7114
7115         * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
7116         subprogram Corresponding_Runtime_Package to know the runtime package
7117         that will provide support to a given protected type.
7118
7119         * exp_ch9.adb (Add_Private_Declarations,
7120         Build_Protected_Subprogram_Call,
7121         Build_Protected_Entry, Build_Simple_Entry_Call,
7122         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
7123         Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
7124         cleanup using the new centralized subprogram Corresponding_Runtime
7125         Package to know the runtime package that provides support to
7126         a given protected type.
7127
7128 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
7129
7130         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
7131         assignment is within the initialization procedure for a packed array,
7132         and Initialize_Scalars is enabled, compile right-hand side with checks
7133         off, because the value is purposely out of range.
7134
7135 2008-03-26  Vincent Celier  <celier@adacore.com>
7136
7137         * gnatcmd.adb: Add processing for GNAT SYNC
7138
7139         * vms_conv.ads: (Command_Type): Add command Sync
7140
7141         * vms_conv.adb (Initialize): Add Command_List data for new command Sync
7142
7143         * vms_data.ads: Add entries for -gnatw.w
7144         Add qualifier for gnatstub --header-file option
7145         Add switches for GNAT SYNC
7146
7147         * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
7148         (Add_Package_Name): New procedure
7149         (Package_Name_List): New function
7150         (Initialize): Add known package names to the list
7151         (Register_New_Package): Add the new package name to the list
7152
7153 2008-03-26  Robert Dewar  <dewar@adacore.com>
7154
7155         * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
7156         s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
7157         Raise_Exception by "raise with" construct.
7158
7159 2008-03-26  Pascal Obry  <obry@adacore.com>
7160
7161         * Makefile.in: Add proper GNAT.Serial_Communications implementation on
7162         supported platforms.
7163
7164         * Makefile.rtl: Add g-sercom.o.
7165
7166         * impunit.adb: Add g-sercom.adb.
7167
7168         * s-crtl.ads (open): New routine.
7169         (close): Likewise.
7170         (write): Likewise.
7171
7172         * s-osinte-mingw.ads (BYTE): New type.
7173         (CHAR): Likewise.
7174         (OVERLAPPED): Likewise.
7175         (GENERIC_READ): New constant.
7176         (GENERIC_WRITE): Likewise.
7177         (OPEN_EXISTING): Likewise.
7178         (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
7179         type instead.
7180         (CreateFile): New routine.
7181         (WriteFile): Likewise.
7182         (ReadFile): Likewise.
7183         (CloseHandle): Move next to the other file oriented routines.
7184
7185         * g-sercom.ads: New unit.
7186
7187         * g-sercom.adb: Default implementation, calls to this unit will raise
7188         a program error exception.
7189
7190         * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
7191         GNU/Linux implementations.
7192
7193 2008-03-26  Robert Dewar  <dewar@adacore.com>
7194
7195         * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
7196
7197         * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
7198         unchecked conversion for different conventions only for subprogram
7199         pointers or on VMS.
7200
7201 2008-03-26  Vincent Celier  <celier@adacore.com>
7202
7203         * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
7204         to check if the specified object file is correct.
7205
7206 2008-03-26  Thomas Quinot  <quinot@adacore.com>
7207
7208         * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
7209         Comes_From_Source to exclude primitives from being checked. We want to
7210         exclude predefined primitives only, so use the appropriate specific
7211         predicate. Also, flag a formal parameter of an anonymous
7212         access-to-subprogram type as illegal for a primitive operation of a
7213         remote access to class-wide type.
7214
7215 2008-03-26  Vincent Celier  <celier@adacore.com>
7216
7217         * prj-dect.adb (Parse_Package_Declaration): When a package name is not
7218         known, check if it may be a missspelling of a known package name. In
7219         not verbose, not mode, issue warnings only if the package name is a
7220         possible misspelling.
7221         In verbose mode, always issue a warning for a not known package name,
7222         plus a warning if the name is a misspelling of a known package name.
7223
7224         * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
7225         limited withs or limited withs are parse during one call.
7226         (Parse_Single_Project): Post parse context clause in two passes: non
7227         limited withs before current project and limited withs after current
7228         project.
7229
7230         * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
7231         project with the name With_Name, even if it is only extended indirectly.
7232         (Recursive_Process): Process projects in order: first single withs, then
7233         current project, then limited withs.
7234
7235         * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
7236         project with the name With_Name, even if it is only extended indirectly.
7237
7238 2008-03-26  Robert Dewar  <dewar@adacore.com>
7239
7240         * scn.adb (Initialize_Scanner): Format messages belong on standard error
7241
7242 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
7243
7244         * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
7245         a generic subprogram that is imported, do not attempt to compile
7246         non-existent body.
7247
7248         * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
7249         imported, do not generate a raise_program_error for the non-existent
7250         body.
7251         (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
7252         perform minimal name resolution on the generic to avoid spurious
7253         warnings.
7254         (Find_Actual_Type): the designated type of the actual in a child unit
7255         may be declared in a parent unit without being an actual.
7256
7257 2008-03-26  Robert Dewar  <dewar@adacore.com>
7258
7259         * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
7260         * sinfo.ads, sinfo.adb (From_At_End): New flag
7261
7262 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
7263
7264         * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
7265         operations that have an interface parameter.
7266         (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
7267         Don't treat No_Return call as raise.
7268
7269         * sem_disp.adb (Check_Dispatching_Operations): apply check for
7270         non-primitive interface primitives to access parameters, not to all
7271         parameters of an access type.
7272
7273 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
7274
7275         * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
7276         declarations of a parent unit are made visible when compiling a child
7277         instance, the parent is not a hidden open scope, even though it may
7278         contain other pending instance.
7279
7280         * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
7281         hidden open scope for some child instance, it does affect the
7282         visibility status of other stach entries.
7283         (Analyze_Object_Renaming): Check that a class-wide object cannot be
7284         renamed as an object of a specific type.
7285
7286 2008-03-26  Robert Dewar  <dewar@adacore.com>
7287
7288         * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
7289         recursion and raise SE directly.
7290         (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
7291         set for formal type for IN mode parameter.
7292
7293 2008-03-26  Robert Dewar  <dewar@adacore.com>
7294
7295         * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
7296         (Initialize): New procedure
7297         (Output_Warnings_Off_Warnings): New procedure
7298         (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
7299         (Output_Non_Modifed_In_Out_Warnings): Ditto
7300         (Warn_On_Unreferenced_Entity): Ditto
7301
7302 2008-03-26  Vincent Celier  <celier@adacore.com>
7303
7304         * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
7305         readable.
7306
7307 2008-03-26  Matthew Heaney  <heaney@adacore.com>
7308
7309         * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads,
7310         a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
7311         Marked with clauses as private, and controlled operations as overriding
7312
7313 2008-03-26  Robert Dewar  <dewar@adacore.com>
7314
7315         * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
7316
7317 2008-03-26  Robert Dewar  <dewar@adacore.com>
7318
7319         * back_end.adb, back_end.ads: Minor reformatting
7320
7321         * bindgen.adb: Minor clarification of comments
7322
7323         * fname.ads: Minor comment fixes
7324
7325         * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
7326         prj-nmsc.adb, sem_aggr.adb: Minor reformatting
7327
7328         * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
7329         xsnames.adb: Remove warnings off pragma no longer needed
7330
7331         * a-catizo.ads, a-calari.ads, a-calfor.adb,
7332         a-calfor.ads: Fix header.
7333
7334 2008-03-26  Tristan Gingold  <gingold@adacore.com>
7335
7336         * init.c: Do not adjust pc for HPARITH on alpha/vms.
7337
7338 2008-03-26  Robert Dewar  <dewar@adacore.com>
7339
7340         * lib-xref.adb: (OK_To_Set_Reference): New function
7341         (Generate_Reference): Don't set referenced from occurrence in Warnings,
7342         Unmodified, or Unreferenced pragma
7343
7344 2008-03-26  Robert Dewar  <dewar@adacore.com>
7345
7346         * alloc.ads: Add entries for Warnings_Off_Pragmas table
7347
7348 2008-03-26  GNAT Script  <nobody@adacore.com>
7349
7350         * Make-lang.in: Makefile automatically updated
7351
7352 2008-03-26  Robert Dewar  <dewar@adacore.com>
7353
7354         * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
7355         par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
7356         removed, use Chars (Pragma_Identifier (..  instead, adjustments
7357         throughout to accomodate this change.
7358
7359         * s-pooglo.ads, s-pooloc.ads: Minor comment updates
7360
7361         * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
7362         Einfo.Set_Needs_Debug_Info)
7363
7364 2008-03-26  Robert Dewar  <dewar@adacore.com>
7365
7366         * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
7367         Add description for the new gnatstub option '--header-file'
7368         clarification of -gnatwz/-gnatwZ
7369         Add a "Irix-Specific Considerations" section to document the need to
7370         set LD_LIBRARY_PATH when using the default shared runtime library.
7371         Added documentation for both gcov and gprof.
7372
7373         * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
7374         messages that are not suppressed when clients are compiled.
7375         Add documentation of s-pooglo s-pooloc
7376         Document the new GNAT.Serial_Communications API.
7377         Add documentation for 'Old attribute
7378         Add description of pragma Optimize_Alignment
7379
7380         * ug_words: Add entries for -gnatw.w -gnatw.W
7381
7382         * usage.adb: Add line for -gnatw.w (warn on warnings off)
7383
7384 2008-03-25  Eric Botcazou  <ebotcazou@adacore.com>
7385
7386         Revert
7387         2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
7388         PR ada/35186
7389         * decl.c (maybe_pad_type): Avoid padding an integral type when
7390         bumping its alignment is sufficient.
7391
7392 2008-03-25  Arnaud Charlet  <charlet@adacore.com>
7393
7394         * exp_ch6.adb, exp_disp.adb: Update copyright notice.
7395         Fix wrong formatting (lines too long)
7396
7397 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7398
7399         * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
7400         a-calend-vms.adb, a-calend.adb, a-calend.ads,
7401         a-calfor.adb, a-chahan.ads, a-chtgke.adb,
7402         a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
7403         a-cohama.ads, a-comlin.ads, a-coorse.adb,
7404         a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
7405         a-except-2005.ads, a-except.adb, a-except.ads,
7406         a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
7407         a-exextr.adb, a-filico.ads, a-finali.ads,
7408         a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
7409         a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
7410         a-sequio.ads, a-strbou.ads, a-strfix.adb,
7411         checks.adb, exp_ch3.adb, exp_ch4.adb,
7412         exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
7413         exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
7414         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
7415         exp_dbug.ads, exp_disp.adb, exp_dist.adb,
7416         exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
7417
7418 2008-03-24  Robert Dewar  <dewar@adacore.com>
7419
7420         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
7421         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
7422         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
7423         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
7424         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
7425         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
7426         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
7427         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
7428         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
7429         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
7430         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
7431         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
7432         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
7433         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
7434         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
7435         double spaced if it fits on one line and otherwise single spaced.
7436
7437 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7438
7439         PR documentation/15479
7440         * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
7441         (doc/gnat_ugn_unw.texi): ... this, and adjusted.
7442         (doc/gnat_ugn.info): Renamed from ...
7443         (doc/gnat_ugn_unw.info): ... this.
7444         (doc/gnat_ugn.dvi): Renamed from ...
7445         (doc/gnat_ugn_unw.dvi): ... this.
7446         (doc/gnat_ugn.pdf): Renamed from ...
7447         (doc/gnat_ugn_unw.pdf): ... this.
7448         (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
7449         Adjusted.
7450         * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
7451         unconditionally to gnat_ugn.info.  Fix cross references to the
7452         GNAT Reference Manual.  Convert links to the GCC, GDB, Emacs,
7453         and GNU make manuals to be proper texinfo links.
7454         * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
7455
7456 2008-03-21  Olivier Hainque  <hainque@adacore.com>
7457
7458         * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
7459         ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
7460
7461 2008-03-21  Eric Botcazou  <ebotcazou@adacore.com>
7462
7463         * trans.c (addressable_p): Add notes on addressability issues.
7464
7465 2008-03-21  Olivier Hainque  <hainque@adacore.com>
7466             Ed Schonberg  <schonberg@adacore.com>
7467
7468         * trans.c (addressable_p): Accept COND_EXPR when both arms
7469         are addressable.
7470         (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
7471         (call_to_gnu): Do not use name reference in the error message
7472         for a misaligned by_reference_parameter. The actual may be a
7473         general expression.
7474
7475 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
7476
7477         * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
7478
7479 2008-03-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7480
7481         * gnat_rm.texi (Implementation Defined Characteristics)
7482         (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
7483         appropriate.
7484         * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
7485         (Switches for gnatchop, Installing a library): Likewise.
7486
7487 2008-03-10  Eric Botcazou  <ebotcazou@adacore.com>
7488
7489         * trans.c (emit_range_check): Do not emit the check if the base type
7490         of the expression is the type against which its range must be checked.
7491
7492 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7493
7494         * decl.c (maybe_pad_type): Use value_factor_p.
7495
7496 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7497
7498         * lang.opt (nostdlib): Move around.
7499         * misc.c (gnat_handle_option): Fix formatting.
7500         (gnat_dwarf_name): Move around.
7501         * trans.c (Case_Statement_to_gnu): Fix formatting.
7502         (gnat_to_gnu): Likewise.
7503         * utils.c (aggregate_type_contains_array_p): Likewise.
7504         (create_subprog_decl): Likewise.
7505
7506 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7507
7508         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
7509         bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
7510
7511 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7512
7513         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
7514         BIGGEST_ALIGNMENT when capping the alignment of records with
7515         strict alignment and size clause.
7516
7517 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7518
7519         * lang-specs.h: Pass -gnatwa if -Wall is passed.
7520         * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
7521         and -Wuninitialized.
7522         (gnat_post_options): Clear warn_unused_parameter.
7523
7524 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7525
7526         * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
7527         aligned bit-fields, bumping the alignment of the record type if deemed
7528         profitable.
7529         (value_factor_p): Return false instead of 0.
7530
7531 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7532
7533         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
7534         for scalar types with small alignment.
7535
7536 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7537
7538         * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
7539         from that of the front-end's end label.
7540         (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
7541         from that of the loop label.
7542
7543 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
7544
7545         * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
7546         comment for the packed array type case.
7547         * utils.c (build_template): Use a loop to strip padding or
7548         containing records for justified modular types.
7549
7550 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
7551
7552         * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
7553         large alignments specified for types.
7554         (validate_alignment): Minor cleanup.
7555
7556 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
7557
7558         * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
7559         (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
7560         the component for packing, if possible, as well as if a component
7561         size clause is specified.
7562         <E_Record_Subtype>: For an array type used to implement a packed
7563         array, get the component type from the original array type.
7564         Try to get a smaller form of the component for packing, if possible,
7565         as well as if a component size clause is specified.
7566         (round_up_to_align): New function.
7567         (make_packable_type): Add in_record parameter.
7568         For a padding record, preserve the size.  If not in_record and the
7569         size is too large for an integral mode, attempt to shrink the size
7570         by lowering the alignment.
7571         Ditch the padding bits of the last component.
7572         Compute sizes and mode manually, and propagate the RM size.
7573         Return a BLKmode record type if its size has shrunk.
7574         (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
7575         Use Original_Array_Type to retrieve the type in case of an error.
7576         Adjust call to make_packable_type.
7577         (gnat_to_gnu_field): Likewise.
7578         (concat_id_with_name): Minor tweak.
7579         * trans.c (larger_record_type_p): New predicate.
7580         (call_to_gnu): Compute the nominal type of the object only if the
7581         parameter is by-reference.  Do the conversion actual type -> nominal
7582         type if the nominal type is a larger record.
7583         (gnat_to_gnu): Do not require integral modes on the source type to
7584         avoid the conversion for types with identical names.
7585         (addressable_p): Add gnu_type parameter.  If it is specified, do not
7586         return true if the expression is not addressable in gnu_type.
7587         Adjust recursive calls.
7588         * utils.c (finish_record_type): Remove dead code.
7589
7590 2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
7591
7592         PR ada/35186
7593         * decl.c (maybe_pad_type): Avoid padding an integral type when
7594         bumping its alignment is sufficient.
7595
7596 2008-03-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7597
7598         * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
7599         * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
7600         statement.
7601         * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
7602         gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
7603         sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
7604         code output strings.
7605         * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
7606         system-vms_64.ads: Fix typos in ada source code comments.
7607         * sinfo-cn.adb: Remove incomplete sentence.
7608
7609         PR documentation/15479
7610         * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
7611
7612 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
7613
7614         PR ada/22255
7615         * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
7616
7617 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
7618
7619         PR ada/34799
7620         * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
7621         that underlying type is present.
7622
7623 2008-02-26  Tom Tromey  <tromey@redhat.com>
7624
7625         * misc.c (internal_error_function): Remove test of
7626         USE_MAPPED_LOCATION.
7627         * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
7628         (Sloc_to_locus): Remove old location code.
7629
7630 2008-02-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7631
7632         * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
7633         `i.e.' by adding comma or `@:' as appropriate.
7634         * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
7635         plain characters `C', use `@samp{C}'.
7636         * gnat_ugn.texi (File Naming Rules, About gnatkr)
7637         (Krunching Method): Likewise.
7638
7639         * gnat_ugn.texi (Conventions): List environment variables and
7640         metasyntactic variables.
7641         (Compiling Programs): Fix notation of metasyntactic variables.
7642         Add @file where appropriate.  Use @file for file extensions,
7643         @samp for strings.
7644         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
7645         instead of @file, @env instead of @code.
7646
7647 2008-02-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7648
7649         PR documentation/15479
7650         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
7651         and `...' with `@dots{}' or `@enddots{}'.
7652
7653         PR documentation/15479
7654         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
7655         use @command instead of @code, @option instead of @samp or @code,
7656         @code instead of @var, @samp instead of @file.
7657
7658         PR documentation/15479
7659         * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
7660         in Makefile rules, by using `&&' rather than `;'.
7661
7662 2008-02-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7663
7664         PR documentation/15479
7665         * gnat_ugn.texi: In non-code, avoid space before colon.
7666         (Regular Expressions in gnatfind and gnatxref): Fix indentation.
7667         (Examples of gnatxref Usage): Use @command{vi} instead of
7668         @file{vi}.
7669         (Character Set Control): Do not use @code for UTF-8.
7670         (Validity Checking): Fix typo "NaNs" instead of "NaN's".  Do not
7671         use @code for IEEE.
7672         * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
7673         sample.
7674         * gnat_rm.texi, gnat_ugn.texi: Fix typos.  Bump copyright years.
7675
7676 2008-02-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
7677
7678         PR ada/35143
7679         * env.c: Add __rtems__ to if defined.
7680         * s-osinte-rtems.adb: Add To_Target_Priority.  Fix formatting.
7681         * s-osinte-rtems.ads: Add To_Target_Priority prototype and
7682         PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants.  Add
7683         pragma Convention as required.
7684         * gsocket.h: Make compile in and out of RTS.
7685         * Makefile.in: Add system-rtems.ads.  Build DEC extensions.
7686         Use g-soccon-rtems.ads.
7687         * g-soccon-rtems.ads, system-rtems.ads: New files.
7688
7689 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7690
7691         PR other/35107
7692         * Make-lang.in (gnat1): Add $(GMPLIBS).
7693
7694 2008-01-26  Eric Botcazou  <ebotcazou@adacore.com>
7695
7696         * decl.c (components_to_record): Improve comment.
7697
7698 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
7699
7700         * decl.c (components_to_record): Do not reuse the empty union type
7701         if there is a representation clause on the record.
7702         * trans.c (addressable_p): Return true for INTEGER_CST.
7703
7704 2008-01-21  Eric Botcazou  <ebotcazou@adacore.com>
7705
7706         * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
7707         in pointer arithmetics.
7708         * utils2.c (build_allocator): Likewise.
7709
7710 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
7711
7712         * utils.c (build_function_stub): Properly build the call expression.
7713
7714 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
7715
7716         * decl.c (gnat_to_gnu_entity) <object>: Process renamings
7717         before converting the expression to the type of the object.
7718         * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
7719         Stabilize constructors for special wrapping types.
7720
7721 2008-01-13  Eric Botcazou  <ebotcazou@adacore.com>
7722
7723         * trans.c (call_to_gnu): Invoke the addressable_p predicate only
7724         when necessary.  Merge some conditional statements.  Update comments.
7725         Rename unchecked_convert_p local variable to suppress_type_conversion.
7726         Do not suppress conversions in the In case.
7727         (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
7728         into account on non strict-alignment platforms.
7729
7730 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
7731
7732         * utils.c (aggregate_type_contains_array_p): New predicate.
7733         (create_field_decl): In a packed record, force byte alignment
7734         for fields without specified position that contain an array.
7735
7736 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
7737
7738         * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
7739
7740 2008-01-10  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
7741
7742         PR ada/34466
7743         * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
7744         sysconf call.
7745         (bit_field): New packed boolean type used by cpu_set_t.
7746         (cpu_set_t): New type corresponding to the C type with
7747         the same name. Note that on the Ada side we use a bit
7748         field array for the affinity mask. There is not need
7749         for the C macro for setting individual bit.
7750         (pthread_setaffinity_np): New imported routine.
7751
7752 2008-01-03  Tero Koskinen  <tero.koskinen@iki.fi>
7753
7754         PR ada/34647
7755         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
7756         on OpenBSD as is done on other BSD systems.
7757
7758         PR ada/34645
7759         * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
7760         getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
7761         I/O.
7762
7763         PR ada/34644
7764         * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
7765         clearenv().
7766
7767         PR ada/34646
7768         * init.c (__gnat_error_handler, __gnat_install_handler,
7769         __gnat_init_float): Define for OpenBSD.
7770
7771         * initialize.c (__gnat_initialize): Define for OpenBSD.
7772
7773 2007-12-27  Samuel Tardieu  <sam@rfc1149.net>
7774
7775         PR ada/34553
7776         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
7777         instead of mktemp() or tmpnam() on NetBSD.
7778
7779 2007-12-23  Eric Botcazou  <ebotcazou@adacore.com>
7780
7781         * trans.c (call_to_gnu): Make the temporary for non-addressable
7782         In parameters passed by reference.
7783         (addressable_p): Return true for STRING_CST and CALL_EXPR.
7784
7785 2007-12-19  Robert Dewar  <dewar@adacore.com>
7786
7787         * g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
7788         Add pragma Warnings (Off) for unassigned IN OUT arguments
7789
7790         * sem_warn.adb (Output_Reference): Suppress messages for internal names
7791         (Check_References): Extensive changes to tune up warnings
7792         (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
7793         (Has_Pragma_Unmodifed_Check_Spec): New function
7794         (Check_References): Implement pragma Unmodified
7795         (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
7796
7797         * par-prag.adb: Dummy entry for pragma Unmodified
7798
7799         * sem_prag.adb: Implement pragma Unmodified
7800
7801         * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
7802         (Proc_Next_Component_Or_Discriminant): Fix typo.
7803         Update comments.
7804
7805         * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
7806         Unmodified.
7807         (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
7808         because the former already takes care of discarding the result.
7809         (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
7810         Add comment.
7811
7812         * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
7813
7814 2007-12-19  Eric Botcazou  <ebotcazou@adacore.com>
7815
7816         * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
7817         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
7818         system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
7819         system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
7820         system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
7821         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
7822         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
7823         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
7824         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
7825         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
7826         (Dynamic_Trampolines_Used): Delete.
7827
7828         * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
7829         Turn on stack probing mechanism on LynxOS.
7830
7831 2007-12-19  Bob Duff  <duff@adacore.com>
7832
7833         * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
7834         the resulting tail recursion by hand. This prevents running out of
7835         memory on deeply nested concatenations, since Field2 is where the left
7836         operand of concatenations is stored.
7837         Fix bug (was returning OK_Orig in some cases). Fix return subtype to
7838         clarify that it can only return OK or Abandon.
7839
7840         * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
7841         operand by iteration, in order to avoid running out of memory on
7842         deeply-nested concatenations. Use the Parent pointer to get back up the
7843         tree.
7844         (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
7845          Resolve_Op_Concat_Rest): New procedures split out of
7846         Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
7847         clearer.
7848
7849         * checks.adb (Remove_Checks): Use Traverse_Proc instead of
7850         Traverse_Func, because the former already takes care of discarding the
7851         result.
7852
7853         * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
7854         because the former already takes care of discarding the result.
7855         (Remove_Warning_Messages): Use appropriate subtype for Status and
7856         Discard
7857
7858 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
7859
7860         * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
7861         discriminants forces expansion of the aggregate into assignments.
7862         (Init_Record_Controller):  If the type of the aggregate is untagged and
7863         is not inherently limited, the record controller is not limited either.
7864
7865 2007-12-19  Robert Dewar  <dewar@adacore.com>
7866
7867         * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
7868         handling compile time known size of record or array (case of front end
7869         layout active, e.g. in GNAAMP).
7870
7871 2007-12-19  Javier Miranda  <miranda@adacore.com>
7872
7873         * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
7874         that forces the construction of static dispatch tables in case of
7875         record subtypes.
7876
7877 2007-12-19  Robert Dewar  <dewar@adacore.com>
7878
7879         * exp_ch9.adb (Null_Statements): Moved to library level
7880         (Trivial_Accept_OK): New function
7881         (Expand_Accept_Declaration): Use Trivial_Accept_OK
7882         (Expand_N_Accept_Statement): Use Trivial_Accept_OK
7883
7884 2007-12-19  Robert Dewar  <dewar@adacore.com>
7885
7886         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
7887         in complex case where array is Volatile.
7888
7889 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
7890
7891         * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
7892         properly the Ada2005 rules concerning when the current instance of a
7893         record type is aliased.
7894
7895 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
7896
7897         * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
7898         mangled declaration
7899         (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
7900         declarations.
7901         (P_Variant_Part): Cleaner patch for parenthesized discriminant
7902
7903 2007-12-19  Vincent Celier  <celier@adacore.com>
7904
7905         * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
7906         package is not known
7907
7908         * prj-attr.ads (Unknown_Package): New constant
7909         Do not crash when an unknown package is in several projects
7910
7911         * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
7912         ignored
7913
7914         * prj-nmsc.adb (Check): Remove obsolete code related to no longer
7915         existing package Language_Processing.
7916
7917 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
7918             Gary Dismukes  <dismukes@adacore.com>
7919             Samuel Tardieu  <sam@rfc1149.net>
7920
7921         PR ada/15803, ada/15805
7922         * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
7923         illegal access subtypes when there is a constrained partial view.
7924         (Check_For_Premature_Usage): New procedure inside
7925         Access_Subprogram_Declaration for checking that an access-to-subprogram
7926         type doesn't reference its own name within any formal parameters or
7927         result type (including within nested anonymous access types).
7928         (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
7929         (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
7930         context is an access_to_variable, the expression cannot be an
7931         access_to_constant.
7932
7933 2007-12-19  Bob Duff  <duff@adacore.com>
7934
7935         * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
7936         (Analyze_Concatenation): Use iteration instead of recursion in order
7937         to avoid running out of stack space for deeply nested concatenations.
7938
7939 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
7940             Gary Dismukes  <dismukes@adacore.com>
7941
7942         * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
7943         whose renamed entity is a subprogram that requires overriding.
7944         (Premature_Usage): Test for the case of N_Full_Type_Declaration when
7945         issuing an error for premature usage and issue a message that says
7946         'type' rather than 'object'.
7947
7948 2007-12-19  Gary Dismukes  <dismukes@adacore.com>
7949
7950         PR ada/34149
7951         * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
7952         presence of a statically tagged operand (Present (Static_Tag)) with
7953         test for Indeterm_Ancestor_Call when determining whether to propagate
7954         the static tag to tag-indeterminate operands (which forces dispatching
7955         on such calls).
7956         (Check_Controlling_Formals): Ada2005, access parameters can have
7957         defaults.
7958         (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
7959         not insert subprogram in list of primitive operations if already there.
7960
7961 2007-12-19  Tristan Gingold  <gingold@adacore.com>
7962
7963         * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
7964         global variable.
7965
7966 2007-12-19  Thomas Quinot  <quinot@adacore.com>
7967
7968         Part of PR ada/33688
7969         * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
7970         datagram info on Linux.
7971
7972 2007-12-19  Vincent Celier  <celier@adacore.com>
7973
7974         * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
7975         that the source path name is always found in the dependencies.
7976
7977 2007-12-19  Robert Dewar  <dewar@adacore.com>
7978
7979         * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
7980         Fix name of Wide_Wide_Latin_1/9 file names
7981         Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
7982         Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
7983         Add missing documentation for Ada.Command_Line.Response_File
7984         Update list of warning letters for Warnings pragma
7985         Add documentation for pragma Unmodified
7986
7987 2007-12-19  Samuel Tardieu  <sam@rfc1149.net>
7988
7989         * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
7990
7991 2007-12-17  Arnaud Charlet  <charlet@adacore.com>
7992
7993         * s-vxwork-alpha.ads: Removed, no longer used.
7994
7995 2007-12-15  Jakub Jelinek  <jakub@redhat.com>
7996
7997         * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
7998
7999 2007-12-13  Samuel Tardieu  <sam@rfc1149.net>
8000
8001         PR ada/34360
8002         * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
8003         mlib-tgt-specific.adb.
8004
8005 2007-12-13  Bob Duff  <duff@adacore.com>
8006
8007         * trans.c (Attribute_to_gnu): Check for violations of the
8008         No_Implicit_Dynamic_Code restriction. This checking used to be done in
8009         the front end, but is moved here so we can make it more accurate.
8010
8011 2007-12-13  Pascal Obry  <obry@adacore.com>
8012
8013         * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
8014          version is provided for older GNU/Linux distribution not
8015          supporting thread affinity sets.
8016
8017         * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
8018         call.
8019         (bit_field): New packed boolean type used by cpu_set_t.
8020         (cpu_set_t): New type corresponding to the C type with
8021         the same name. Note that on the Ada side we use a bit
8022         field array for the affinity mask. There is not need
8023         for the C macro for setting individual bit.
8024         (pthread_setaffinity_np): New imported routine.
8025
8026         * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
8027         no null.
8028         (Create_Task): Set the processor affinity mask if information
8029         is present.
8030
8031         * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
8032
8033 2007-12-13  Robert Dewar  <dewar@adacore.com>
8034
8035         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
8036         s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
8037         s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
8038         s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
8039         s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
8040         s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
8041         s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
8042         i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
8043         for subprogram pointers.
8044
8045         * g-ctrl_c.adb: New file.
8046
8047         * g-ctrl_c.ads (Install_Handler): New body.
8048
8049         * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
8050         instead of obsolete function Is_Always_Inlined.
8051         (Freeze_Entity): check for tagged type in imported C subprogram
8052         (Freeze_Entity): check for 8-bit boolean in imported C subprogram
8053         (Freeze_Entity): check for convention Ada subprogram pointer in
8054         imported C subprogram.
8055         (Freeze_Fixed_Point_Type): In the case of a base type where the low
8056         bound would be chopped off and go from negative to zero, force
8057         Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
8058         bound) so that the size computation for the base type will take
8059         negative values into account.
8060
8061 2007-12-13  Eric Botcazou  <ebotcazou@adacore.com>
8062             Bob Duff  <duff@adacore.com>
8063             Tristan Gingold  <gingold@adacore.com>
8064
8065         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
8066         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
8067         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
8068         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
8069         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
8070         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
8071         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
8072         system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
8073         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
8074         system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
8075         system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
8076         (Always_Compatible_Rep): New flag to control trampolines globally.
8077         (Dynamic_Trampolines_Used): New flag for implementing the
8078         No_Implicit_Dynamic_Code restriction more correctly (not yet used,
8079         and not yet set correctly for some targets).
8080
8081         * s-taprop-vxworks.adb: Use stack limit method of stack checking.
8082         Simply indirectly call s-stchop when a task is created.
8083
8084         * ali.ads:
8085         New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
8086         appears as an argument (entries A) in an ALI file.
8087
8088         * fe.h (Stack_Check_Limits): Declare new target parameter.
8089         (Check_Implicit_Dynamic_Code_Allowed): New procedure.
8090
8091         * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
8092         This variable is declared in C to be sure not subject to elaboration
8093         code.
8094         (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
8095         Storage_Error.
8096
8097         * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
8098         (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
8099
8100         * s-stchop.ads: Add comments.
8101
8102         * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
8103         limit method of stack checking.
8104
8105         * s-stchop-limit.ads: New file.
8106
8107 2007-12-13  Robert Dewar  <dewar@adacore.com>
8108
8109         * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
8110         a-cihama.adb, g-awk.adb,
8111         s-inmaop-posix.adb: Update handling of assigned value/unreferenced
8112         warnings
8113
8114         * exp_smem.adb: Update handling of assigned value/unreferenced warnings
8115
8116         * sem.adb: Update handling of assigned value/unreferenced warnings
8117
8118         * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
8119
8120         * lib-xref.ads: Improve documentation for k xref type
8121
8122         * lib-xref.adb:
8123         Update handling of assigned value/unreferenced warnings
8124         (Generate_Reference): Warning for reference to entity for which a
8125         pragma Unreferenced has been given should be unconditional.
8126         If the entity is a discriminal, mark the original
8127         discriminant as referenced.
8128
8129         * sem_warn.ads, sem_warn.adb
8130         (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
8131         no entities referenced in package
8132         (Check_One_Unit): Don't give message about no entities referenced in
8133         a package if a pragma Unreferenced has appeared.
8134         Handle new warning flag -gnatw.a/-gnatw.A
8135         Update handling of assigned value/unreferenced warnings
8136
8137         * atree.h: Add flags up to Flag247
8138         (Flag231): New macro.
8139
8140 2007-12-13  Jose Ruiz  <ruiz@adacore.com>
8141
8142         * adaint.h: (__gnat_plist_init): Not defined for RTX.
8143
8144         * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
8145         RTX systems.
8146
8147         * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
8148         (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
8149         EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
8150         GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
8151
8152         * mingw32.h:
8153         Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
8154
8155         * sysdep.c (winflush_function for RTX): Procedure that does nothing
8156         since we only have problems with Windows 95/98, which are not
8157         supported by RTX.
8158         (__gnat_ttyname): Return the empty string on Nucleus, just as
8159         done on vxworks.
8160
8161 2007-12-13  Robert Dewar  <dewar@adacore.com>
8162
8163         * a-textio.adb, a-textio.ads:
8164         Extensive changes to private part for wide character encoding
8165
8166         * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
8167         (Look_Ahead): Fix mishandling of encoded sequences
8168         Move declaration of Wch_Con to private part (should not be visible)
8169
8170         * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
8171         UTF-8. Probably this is never used, but if it is, brackets is
8172         clearly correct.
8173
8174         * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
8175         setting wide character encoding for no main program case and when
8176         encoding is specified using -W?
8177         Initialize stack limit of environment task if stack limit method of
8178         stack checking is enabled.
8179         (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
8180         (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
8181         (Get_Main_Unit_Name): New function.
8182         (Gen_Adainit_Ada): Add call to main program for .NET when needed.
8183         (Gen_Output_File): Set Bind_Main_Program to True for .NET
8184
8185         * bindusg.adb: Add line for -Wx switch
8186
8187         * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
8188         Add comments
8189         Add new useful constant WC_Longest_Sequences
8190
8191         * switch-b.adb: Clean up handling of -Wx switch
8192         For -gnatWx, set Wide_Character_Encoding_Method_Specified
8193
8194         * switch-c.adb: -gnatg activates warning on assertion errors
8195         For -gnatWx, set Wide_Character_Encoding_Method_Specified
8196
8197         * s-wchcon.adb: (Is_Start_Of_Encoding): New function
8198
8199 2007-12-13  Robert Dewar  <dewar@adacore.com>
8200             Ed Schonberg  <schonberg@adacore.com>
8201
8202         * a-ngcoty.adb: New pragma Fast_Math
8203
8204         * opt.adb: New pragma Fast_Math
8205
8206         * par-prag.adb:
8207         Add Implemented_By_Entry to the list of pragmas which do not require any
8208         special processing.
8209         (Favor_Top_Level): New pragma.
8210         New pragma Fast_Math
8211
8212         * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
8213         (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
8214         Expand_Allocator_Expression): Take into account VM_Target
8215         (Expand_Attribute, case 'Identity):  Handle properly the case where
8216         the prefix is a task interface.
8217         New pragma Fast_Math
8218
8219         * par.adb (Next_Token_Is): New function
8220         (P_Pragma): Add Skipping parameter
8221         (U_Left_Paren): New procedure
8222         (U_Right_Paren): New procedure
8223         New pragma Fast_Math
8224
8225         * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
8226         subunit
8227         New pragma Fast_Math
8228
8229         * sem_prag.adb: Add significance value to table Sig_Flag for pragma
8230         Implemented_By_Entry.
8231         (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
8232         (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
8233         items, since it can apply to more than one overloadable entity. Set
8234         new flag Has_Pragma_Inline_Always for Inline_Always case.
8235         (Analyze_Pragma, case Complex_Representation): Improve error message.
8236         (Analyze_Pragma, case Assert): When assertions are disabled build the
8237         rewritten code with Sloc of expression rather than pragma, so new
8238         warning about failing is not deleted.
8239         (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
8240         protected types and update error message to reflect that. Test whether
8241         the protected type is allowed for the pragma (an error is issued if the
8242         type has any entries, or components that do not have preelaborable
8243         initialization).
8244         New pragma Fast_Math
8245         (Analyze_Pragma, case No_Return): Handle generic instance
8246
8247         * snames.h, snames.ads, snames.adb:
8248         Add new predefined name for interface primitive _Disp_Requeue.
8249         New pragma Fast_Math
8250
8251         * a-tags.ads, a-tags.adb: New calling sequence for
8252         String_To_Wide_[Wide_]String
8253         (Secondary_Tag): New subprogram.
8254
8255         * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
8256         from Exp_Attr
8257         New calling sequence for String_To_Wide_[Wide_]String
8258         (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
8259         the use of the secondary stack for image routines.
8260
8261         * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
8262         calling sequence for String_To_Wide_[Wide_]String
8263
8264         * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
8265         Ada 95 mode
8266         (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
8267         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8268
8269         * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
8270         (P_Formal_Part): Use Skipping parameter in P_Pragma call
8271         to improve error recovery
8272
8273         * par-util.adb (Next_Token_Is): New function
8274         (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
8275
8276         * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
8277         semicolon if missing
8278         (P_Pragma): Implement new Skipping parameter
8279         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8280         Fix location of flag for unrecognized pragma message
8281
8282         * par-tchk.adb (U_Left_Paren): New procedure
8283         (U_Right_Paren): New procedure
8284
8285 2007-12-13  Geert Bosch  <bosch@adacore.com>
8286
8287         * a-tifiio.adb:
8288         (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
8289         the second or later Scaled_Divide would omit leading zeroes,
8290         resulting in too few digits produced and a Layout_Error as result.
8291         (Put): Initialize Pos.
8292
8293 2007-12-13  Robert Dewar  <dewar@adacore.com>
8294
8295         atree.ads, atree.adb (Flag231..Flag247): New functions
8296         (Set_Flag231..Set_Flag247): New procedures
8297         (Basic_Set_Convention): Rename Set_Convention to be
8298         Basic_Set_Convention
8299         (Nkind_In): New functions
8300         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8301
8302         * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
8303         instead
8304          of obsolete function Is_Always_Inlined
8305         (Register_Predefined_DT_Entry): Initialize slots of the second
8306         secondary dispatch table.
8307         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8308         (Expand_N_Function_Call): Remove special provision for stack checking.
8309
8310         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
8311         Include _Disp_Requeue in the list of predefined operations.
8312         (Find_Interface_ADT): Modified to fulfill the new specification.
8313         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8314
8315         * par-ch4.adb, nlists.ads, nlists.adb:
8316         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8317
8318         * sinfo.ads, sinfo.adb: (Nkind_In): New functions
8319         Fix location of flag for unrecognized pragma message
8320
8321         * sem_ch7.adb: Use Nkind_In
8322
8323 2007-12-13  Vincent Celier  <celier@adacore.com>
8324
8325         * opt.ads:
8326         Indicate what flags are used by the Project Manager, gprbuild and
8327         gprclean.
8328         (Opt.Follow_Links_For_Dirs): New flag
8329         (Warn_On_Assertion_Failure): New flag
8330         (Wide_Character_Encoding_Method_Specified): New flag
8331         (Suppress_All_Inlining): New switch set by -fno-inline
8332         (Real_VMS_Target): New flag
8333         New pragma Fast_Math
8334
8335 2007-12-13  Robert Dewar  <dewar@adacore.com>
8336
8337         * back_end.adb: Recognize -fno-inline
8338
8339 2007-12-13  Robert Dewar  <dewar@adacore.com>
8340
8341         * checks.adb: Fix optimization problem with short-circuited form
8342
8343 2007-12-13  Bob Duff  <duff@adacore.com>
8344
8345         * clean.adb (Usage): Add line for -aP
8346         (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
8347         with a parameter "procedure Usage", instead of passing a pointer to a
8348         procedure. This is to eliminate trampolines (since the Usage procedure
8349         is often nested in a main procedure, and it would be inconvenient to
8350         unnest it).
8351
8352         * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
8353         to be generic, with a parameter "procedure Callback (...)", instead of
8354         passing a pointer to a procedure. This is to eliminate trampolines
8355         (since the Callback procedure is usually nested).
8356
8357         * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
8358         gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
8359         (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
8360
8361         * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
8362         Use the generic Heap_Sort_G instead of Heap_Sort_A.
8363
8364 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8365
8366         * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
8367         (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
8368         (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
8369         (Renamed_In_Spec): New flag
8370         (Has_Pragma_Inline_Always): New flag
8371         Add missing doc for pragma Obsolescent_Warning
8372         Add missing doc for 17 additional unused flags (230-247)
8373         (Is_Derived_Type): Remove condition "not Is_Generic_Type".
8374         Alphabetize with clauses.
8375         Separate Is_Thunk and Has_Thunks flags
8376         (Write_Entity_Flags): Add forgotten entry for Has_Thunks
8377         (Related_Interface): Renamed to Related_Type.
8378         (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
8379         (Set_Is_Flag): Restrict the assertion.
8380
8381 2007-12-13  Vincent Celier  <celier@adacore.com>
8382
8383         * errout.adb (Output_Source_Line): Do not keep a trailing space after
8384         the source line number if the source line is empty.
8385
8386 2007-12-13  Geert Bosch  <bosch@adacore.com>
8387
8388         * eval_fat.adb (Decompose_Int): Handle argument of zero.
8389         (Compose): Remove special casing of zero.
8390         (Exponent): Likewise.
8391         (Fraction): Likewise.
8392         (Machine): Likewise.
8393         (Decompose): Update comment.
8394
8395 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
8396
8397         * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
8398         limited ancestor part, initialize controllers of enclosing record
8399         before expanding ancestor aggregate.
8400         (Gen_Assign): If a component of the aggregate is box-initialized, add
8401         code to call Initialize if the component is controlled, and explicit
8402         assignment of null if the component is an access type.
8403
8404         Handle properly aggregates for limited types that appear in object
8405         declarations when the aggregate contains controlled values such as
8406         protected types.
8407         When expanding limited aggregates into individual components, do not
8408         call Adjust on controlled components that are limited.
8409
8410 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
8411
8412         * expander.adb: Take into account N_Subprogram_Renaming_Declaration
8413
8414 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8415
8416         * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
8417         predefined primitive _Disp_Requeue.
8418         (Make_Predefined_Primitive_Specs): Create the spec for predefined
8419         primitive _Disp_Requeue.
8420         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
8421         type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
8422         (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
8423         an interface type. In case of limited interfaces we now declare all the
8424         predefined primitives associated with synchronized interfaces as
8425         abstract.
8426         (Predef_Spec_Or_Body): For interface types generate abstract subprogram
8427         declarations.
8428         (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
8429         tagged type is an interface type and there is no user-defined equality
8430         function.
8431         Add also bodies of predefined primitives associated with synchronized
8432         interfaces.
8433         (Freeze_Record_Type): Do not build bodies of predefined primitives of
8434         interface types because they are now defined abstract.
8435         Add missing documentation.
8436         (Expand_Record_Controller): Update occurrence of Related_Interface
8437         to Related_Type.
8438         (Build_Offset_To_Top_Functions): Do nothing in case of VM.
8439         (Expand_N_Object_Declaration): Take into account VM_Target when handling
8440         class wide interface object declaration.
8441         (Expand_Previous_Access_Type): Do not create a duplicate master entity
8442         if the access type already has one.
8443         (Expand_N_Object_Declaration): Defend against attempt to validity check
8444         generic types. Noticed for -gnatVcf specified with previous errors.
8445
8446 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
8447
8448         * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
8449         Expand_Allocator_Expression): Take into account VM_Target
8450
8451         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
8452         secondary stack when VM_Target /= No_VM
8453
8454 2007-12-13  Javier Miranda  <miranda@adacore.com>
8455             Ed Schonberg  <schonberg@adacore.com>
8456
8457         * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
8458         Is_Complation_Unit by Is_Library_Level_Entity in the code
8459         that decides if the static dispatch tables need to be built.
8460         (Wrap_Transient_Declaration): Do not generate a finalization call if
8461         this is a renaming declaration and the renamed object is a component
8462         of a controlled type.
8463
8464 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
8465
8466         * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
8467         In the case where the renamed subprogram is a dereference, call
8468         Force_Evaluation on the prefix.
8469
8470 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8471             Ed Schonberg  <schonberg@adacore.com>
8472
8473         * exp_ch9.adb (Expand_N_Asynchronous_Select,
8474         Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
8475         comment reformatting.
8476         (Set_Privals): Inherit aliased flag from formal. From code reading.
8477         (Build_Simple_Entry_Call): Out parameters of an access type are passed
8478         by copy and initialized from the actual. This includes entry parameters.
8479         (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
8480         and Ada 2005 models of requeue.
8481         (Null_Statements): Still connsider do-end block null if it contains
8482         Unreferenced and Warnings pragmas.
8483         (Expand_N_Accept_Statement): Do not optimize away null do end if
8484         dispatching policy is other than defaulted.
8485         (Expand_N_Timed_Entry_Call): When the triggering statement is a
8486         dispatching call, manually analyze the delay statement.
8487         (Find_Parameter_Type): Move subprogram to Sem_Util.
8488
8489 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8490             Javier Miranda  <miranda@adacore.com>
8491
8492         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
8493         _Disp_Requeue occupies dispatch table slot number 15. Move
8494         _Disp_Timed_Select to slot 16.
8495         (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
8496         generate the spec and body of _Disp_Reqeueue.
8497         (Make_DT): Build and initialize the second dispatch table.
8498         Handle initialization of RC_Offset when the parent
8499         is a private type with variable size components.
8500         (Make_Secondary_DT): Complete documentation. Add support to
8501         initialize the second dispatch table.
8502         (Make_Tags): Generate the tag of the second dispatch table.
8503         (Register_Primitive): Add support to register primitives in the
8504         second dispatch table.
8505
8506 2007-12-13  Pascal Obry  <obry@adacore.com>
8507
8508         * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
8509         Windows. This signal is used by gnatmake to kill child processes for
8510         example.
8511
8512 2007-12-13  Javier Miranda  <miranda@adacore.com>
8513
8514         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
8515         support for generic dispatching constructor calls in which we need to
8516         locate the tag of a secondary dispatch table associated with an
8517         interface type to properly dispatch the call.
8518         (Expand_N_Attribute_Reference [case Address],
8519         Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
8520         handling of VM targets.
8521
8522 2007-12-13  Robert Dewar  <dewar@adacore.com>
8523             Ed Schonberg  <schonberg@adacore.com>
8524
8525         * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
8526         assert fail
8527
8528         * ug_words: Add entries for -gnatw.a -gnatw.A
8529
8530         * sem_res.adb (Set_String_Literal_Subtype): If the context of the
8531         literal is a subtype with non-static constraints, use the base type of
8532         the context as the base of the string subtype, to prevent type
8533         mismatches in gigi.
8534         (Resolve_Actuals): If the actual is an entity name, generate a
8535         reference before the actual is resolved and expanded, to prevent
8536         spurious warnings on formals of enclosing protected operations.
8537         (Analyze_Overloaded_Selected_Component): If type of prefix if
8538         class-wide, use visible components of base type.
8539         (Resolve_Selected_Component): Ditto.
8540         (Resolve_Short_Circuit): Detect case of pragma Assert argument
8541         evaluating to False, and issue warning message.
8542
8543         * usage.adb: Add lines for -gnatw.a and -gnatw.A
8544
8545 2007-12-13  Emmanuel Briot  <briot@adacore.com>
8546
8547         * g-calend.ads (No_Time): New constant, to represent an uninitialized
8548         time value
8549
8550         * g-catiio.ads, g-catiio.adb (Value): Added support for more date
8551         formats.
8552         (Month_Name_To_Number): New subprogram
8553
8554         * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
8555         letter to upper-case.
8556
8557 2007-12-13  Robert Dewar  <dewar@adacore.com>
8558             Ed Schonberg  <schonberg@adacore.com>
8559
8560         * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
8561
8562         * layout.adb (Resolve_Attribute, case 'Access): If designated type of
8563         context is a limited view, use non-limited view when available. If the
8564         non-limited view is an unconstrained array, this enforces consistency
8565         requirements in 3.10.2 (27).
8566         (Layout_Type): For an access type whose designated type is a limited
8567         view, examine its declaration to determine if it is an unconstrained
8568         array, and size the access type accordingly.
8569         (Layout_Type): Do not force 32-bits for convention c subprogram
8570         pointers in -gnatdm mode, only if real vms target.
8571
8572         * sem_attr.adb (Analyze_Access_Attribute): Use new flag
8573         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
8574         (Analyze_Access_Attribute,Attribute_Address): Remove checks for
8575         violations of the No_Implicit_Dynamic_Code restriction.
8576         (Resolve_Attribute, case 'Access): If designated type of context is a
8577         limited view, use non-limited view when available. If the non-limited
8578         view is an unconstrained array, this enforces consistency requirements
8579         in 3.10.2 (27).
8580         (Layout_Type): For an access type whose designated type is a limited
8581         view, examine its declaration to determine if it is an unconstrained
8582         array, and size the access type accordingly.
8583
8584 2007-12-13  Vincent Celier  <celier@adacore.com>
8585
8586         * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
8587         object directory of main project does not exist.
8588         On VMS, correctly set then environment variable for the source
8589         directories.
8590
8591 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
8592
8593         * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
8594         set to True this procedure will create the value of type REG_EXPAND_SZ.
8595         It was only possible to create REG_SZ values before.
8596
8597 2007-12-13  Robert Dewar  <dewar@adacore.com>
8598
8599         * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
8600         g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
8601         namet-sp.adb, namet-sp.ads: New files.
8602
8603         * g-speche.adb: Use generic routine in g-spchge
8604
8605         * s-wchcnv.ads, s-wchcnv.adb:
8606         Minor code cleanup (make formal type consistent with spec)
8607
8608         * namet.adb: Update comments.
8609
8610         * par-endh.adb (Evaluate_End_Entry): Use new
8611         Namet.Sp.Is_Bad_Spelling_Of function
8612
8613         * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
8614
8615         * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
8616         ancestor is an access type initialized with a box, set its type
8617         explicitly, for use in subsequent expansion.
8618         (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
8619         function
8620
8621 2007-12-13  Robert Dewar  <dewar@adacore.com>
8622
8623         * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
8624         access Vstring)
8625
8626 2007-12-13  Robert Dewar  <dewar@adacore.com>
8627
8628         * inline.adb (Back_End_Cannot_Inline): Use new flag
8629         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
8630
8631         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
8632         Has_Pragma_Inline_Always instead.
8633         of obsolete function Is_Always_Inlined
8634         (Build_Body_To_Inline): Same change
8635         (Cannot_Inline): Same change
8636         Do not give warning on exception raise in No_Return function
8637
8638         * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
8639         component has two inconsistent component clauses in the same record
8640         representation clause, favor the message that complains about
8641         duplication rather than inconsistency.
8642         Update comments.
8643         (Record_Representation_Clause): Do not warn on missing component
8644         clauses for inherited components of a type extension.
8645         (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
8646         an overloadable item if it is a pragma that can apply to multiple
8647         overloadable entities (e.g. Inline) because a pragma cannot be on
8648         more than one chain at a time.
8649         (Validate_Unchecked_Conversion): Add code to warn on unchecked
8650         conversion where one of the operands is Ada.Calendar.Time.
8651         (Analyze_Attribute_Definition_Clause): Fix typo in error message.
8652         For now, ignore Component_Size clause on VM targets, as done for
8653         pragma Pack.
8654
8655 2007-12-13  Emmanuel Briot  <briot@adacore.com>
8656             Vincent Celier  <celier@adacore.com>
8657
8658         * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
8659         string
8660         (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
8661         prj.ads
8662         (Hash): Move instantiation of System.HTable.Hash from spec to body
8663         (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
8664         systems, since we do not need to recompute the Name_Id for the canonical
8665         file name.
8666         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
8667         as a parameter. This parameter is in fact always "ada" in all calls, and
8668         we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
8669         while loading a project with 40000 files
8670
8671         * prj-attr.adb: Fix name of attribute Dependency_Driver
8672         Change the kind of indexing for attribute Root
8673
8674         * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
8675         variables already declared, in case constructions.
8676
8677         * prj-env.adb (Initialize): Reset Current_Source_Path_File and
8678         Current_Object_Path_File to No_Path.
8679
8680         * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
8681         ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
8682
8683         * prj-makr.adb: new parameter Current_Dir
8684
8685         * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
8686         Ada sources when language is not Ada.
8687         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
8688         (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
8689         (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
8690         (Locate_Directory): Always resolve links when computing Canonical_Path
8691         (Look_For_Sources): Make sure that Name_Buffer contains the file name
8692         in Source_Files before checking for the presence of a directory
8693         separator.
8694         Optimize calls to Name_Find when on case sensitive systems.
8695         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
8696         as a parameter.
8697         (Prj.Nmsc.Check): new parameter Current_Dir
8698         (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
8699         cannot be empty and the spec suffix cannot be the same as the body or
8700         separate suffix.
8701         (Get_Unit): When a file name can be of several unit kinds (spec, body or
8702         subunit), always consider the longest suffix.
8703         (Check_Configuration): Do not issue an error if there is no compiler
8704         for a language. Just issue a warning and ignore the sources for the
8705         language.
8706         (Check_Library_Attributes): Only check Library_Dir if Library_Name is
8707         not empty.
8708         (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
8709         (Unit_Exceptions): New hash table
8710         (Check_Naming_Schemes): Check if a file that could be a unit because of
8711         the naming scheme is not in fact a source because there is an exception
8712         for the unit.
8713         (Look_For_Sources): Put the unit exceptions in hash table
8714         Unit_Exceptions
8715         (Get_Unit_Exceptions): Give initial value No_Source to local variable
8716         Other_Part to avoid exception when code is compiled with validity
8717         checking.
8718         (Get_Sources_From_File): Check that there is no directory information
8719         in the file names.
8720         (Look_For_Sources): Check that there is no directory information in the
8721         list of file names in Source_Files.
8722         (Look_For_Sources): In multi-language mode, do not allow exception file
8723         names that are excluded.
8724         (Excluded_Sources_Htable): New hash table
8725         (Search_Directories.Check_File): New procedure to simplify
8726         Search_Directories.
8727         (Search_Directories): Do not consider excluded sources
8728         (Look_For_Sources): Populate Excluded_Sources_Htable before calling
8729         Search_Directories.
8730         (Get_Exceptions): Set component Lang_Kind of Source_Data
8731         (Get_Unit_Exceptions): Ditto
8732         (Search_Directories): Ditto
8733
8734         * prj-pars.adb: new parameter Current_Dir
8735
8736         * prj-part.ads, prj-part.adb:
8737         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
8738         (Opt.Follow_Links_For_Dirs): New flag
8739         (Project_Path_Name_Of): Cache information returned by this routine as
8740         Locate_Regular_File is a costly routine. The code to output a log
8741         information and the effective call to Locate_Regular_File is now
8742         factorized into a routine (code clean-up).
8743         (Parse, Parse_Single_Project): new parameter Current_Dir
8744         When main project file cannot be found, indicate in the error
8745         message the project path that was used to do the search.
8746
8747         * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
8748         (Prj.Proc.Process*): new parameter Current_Dir
8749
8750         * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
8751
8752 2007-12-13  Bob Duff  <duff@adacore.com>
8753
8754         * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
8755         procedure to be called from the back end to check the
8756         No_Implicit_Dynamic_Code restriction.
8757
8758 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
8759
8760         * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
8761         Fixes another case where RTE_Available_Call was ignored instead of being
8762         taken into account.
8763         (Load_Fail): Ditto.
8764
8765         * rtsfind.ads: Add new entries.
8766
8767 2007-12-13  Robert Dewar  <dewar@adacore.com>
8768
8769         * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
8770         g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
8771
8772         * scn.adb: Implement BOM recognition
8773
8774 2007-12-13  Thomas Quinot  <quinot@adacore.com>
8775             Ed Schonberg  <schonberg@adacore.com>
8776
8777         * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
8778         subprogram body that acts as its own spec may not have a non-private
8779         WITH clause on a private sibling.
8780         (Build_Unit_Name): If the parent unit in the name in a with_clause on a
8781         child unit is a renaming, create an implicit with_clause on that
8782         parent, and not on the unit it renames, to prevent visibility errors
8783         in the current unit.
8784
8785 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
8786
8787         * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
8788         renaming declaration, use the Slocs of the formal parameters from the
8789         declaration of the formal subprogram when creating the formal parameter
8790         entities in the renaming declaration.
8791         (Analyze_Formal_Type_Declaration): Change the placement of the error
8792         message concerning illegal known discriminants. It is now posted on the
8793         type rather than on the first discriminant. This change ensures early
8794         error report.
8795         (Freeze_Subprogram_Body): If the generic subprogram is nested within
8796         the package body that contains the instance, do not generate an
8797         out-of-place freeze node for the enclosing package.
8798         (Collect_Previous_Instantiations): Ignore internal instantiations
8799         generated for formal packages.
8800         (Validate_Derived_Type_Instance): Add a check that when a formal
8801         derived type is Known_To_Have_Preelab_Init then the actual type must
8802         have preelaborable initialization, and issue an error when this
8803         condition is violated.
8804
8805 2007-12-13  Robert Dewar  <dewar@adacore.com>
8806
8807         * s-imenne.adb, s-imenne.ads: New files.
8808
8809         * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
8810         s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
8811         s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
8812         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
8813         s-imgwch.ads: New calling sequence for Image routines to avoid sec
8814         stack usage.
8815
8816 2007-12-13  Javier Miranda  <miranda@adacore.com>
8817             Ed Schonberg  <schonberg@adacore.com>
8818
8819         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
8820         generation of spurious error if parent is an interface type; caused
8821         because predefined primitive bodies will be generated later by
8822         Freeze_Record_Type.
8823         (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
8824         flag.
8825         (Derive_Subprograms): Handle derivations of predefined primitives
8826         after all the user-defined primitives to ensure that they are
8827         found in proper order in instantiations.
8828         (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
8829         of Related_Interface to Related_Type.
8830         (Record_Type_Declaration): Minor reordering of calls to decorate the
8831         Tag component because the entity must have set its Ekind attribute
8832         before setting its Is_Tag attribute.
8833         (Analyze_Subtype_Declaration): In the case of subtypes with
8834         Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
8835
8836 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8837             Ed Schonberg  <schonberg@adacore.com>
8838
8839         * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
8840         statement to the list of contexts where a selected component with a
8841         concurrent tagged type prefix should yield a primitive operation.
8842         (Find_Primitive_Operation): Handle case of class-wide types.
8843         (Analyze_Overloaded_Selected_Component): If type of prefix is
8844         class-wide, use visible components of base type.
8845         (Resolve_Selected_Component): Ditto.
8846         (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
8847         formal of a generic subprogram. find candidate interpretations by
8848         scanning the list of generic formal declarations.:
8849         (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
8850         type from a limited_with_clause, and the full view is available, use it
8851         for subsequent semantic checks.
8852         (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
8853         (Find_Primitive_Operation): New function.
8854         (Analyze_Overloaded_Selected_Component): insert explicit dereference
8855         only once if several interpretations of the prefix yield an access type.
8856         (Try_Object_Operation): Code and comment cleanup.
8857         (Analyze_Selected_Component): Reorder local variables. Minot comment and
8858         code reformatting. When the type of the prefix is tagged concurrent, a
8859         correct interpretation might be available in the primitive and
8860         class-wide operations of the type.
8861
8862 2007-12-13  Robert Dewar  <dewar@adacore.com>
8863             Ed Schonberg  <schonberg@adacore.com>
8864
8865         * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
8866         renaming entry as subprogram using rename-as-body if subprogram spec
8867         frozen.
8868         (Use_One_Type): The clause is legal on an access type whose designated
8869         type has a limited view.
8870         (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
8871         (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
8872         (Analyze_Renamed_Primitive_Operation): new procedure to determine the
8873         operation denoted by a selected component.
8874         (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
8875         it can be an expression, possibly overloaded, that returns a task or
8876         an access to one.
8877
8878 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8879             Gary Dismukes  <dismukes@adacore.com>
8880
8881         * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
8882         requeue statement is dispatching. Do not emit an error when the name is
8883         not an entry and the context is a dispatching select. Add code to
8884         perform subtype conformance between the formals of the current entry
8885         and those of the target interface primitive.
8886         (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
8887         Timed_Entry_Call): Analyze the triggering statement as the first step of
8888         the processing. If this is a dispatching select, postpone the analysis
8889         of all select statements until the Expander transforms the select. This
8890         approach avoids generating duplicate identifiers after the Expander has
8891         replicated some of the select statements. In case the Expander is
8892         disabled, perform regular analysis.
8893         (Check_Triggering_Statement): New routine.
8894         (Analyze_Requeue): Exclude any interpretations that are not entries when
8895         checking overloaded names in a requeue. Also test type conformance for
8896         matching interpretations rather than requiring subtype conformance at
8897         that point to conform with the RM's resolution rule for requeues.
8898
8899 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
8900
8901         * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
8902         inherited operation is a defaulted tag-indeterminate call, and there is
8903         a statically tagged actual, use the static tag as a controlling actual
8904         for the defaulted actual.
8905
8906 2007-12-13  Geert Bosch  <bosch@adacore.com>
8907
8908         * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
8909         context, so do not call Check_Non_Static_Context.
8910
8911 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8912
8913         * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
8914         whether formal E is an entity which may have parameters.
8915
8916 2007-12-13  Bob Duff  <duff@adacore.com>
8917             Javier Miranda  <miranda@adacore.com>
8918             Robert Dewar  <dewar@adacore.com>
8919
8920         * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
8921         (Set_Convention): New procedure to set the Convention flag, and in
8922         addition make sure the Favor_Top_Level flag is kept in sync (all
8923         foreign-language conventions require Favor_Top_Level = True).
8924         (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
8925         to Related_Type.
8926         (Collect_Interfaces_Info): Minor update to handle the two secondary
8927         dispatch tables. Update occurrence of Related_Interface to Related_Type.
8928         (Generate_Parent_Ref): Add parameter to specify entity to check
8929         (Is_Preelaborable_Expression): Allow the name of a discriminant to
8930         initialize a component of a type with preelaborable initialization.
8931         This includes the case of a discriminal used in such a context.
8932         (Is_Dependent_Component_Of_Mutable_Object): Take into account the
8933         latest Ada 2005 rules about renaming and 'Access of
8934         discriminant-dependent components.
8935         (Check_Nested_Access): Add handling when there are no enclosing
8936         subprograms (e.g. case of a package body).
8937         (Find_Parameter_Type): Factor routine from several other compiler files.
8938         Remove routine from Find_Overridden_Synchronized_Primitive.
8939
8940 2007-12-13  Thomas Quinot  <quinot@adacore.com>
8941
8942         * sinput.adb (Get_Source_File_Index): Add assertion to guard against
8943         an invalid access to an uninitialized slot in the
8944         Source_File_Index_Table.
8945
8946 2007-12-13  Thomas Quinot  <quinot@adacore.com>
8947
8948         * sinput-l.adb (Load_File): Disable style checks when preprocessing.
8949
8950 2007-12-13  Bob Duff  <duff@adacore.com>
8951
8952         * s-soflin.ads: Apply new pragma Favor_Top_Level to all
8953         access-to-subprogram types in this package.
8954
8955 2007-12-13  Olivier Hainque  <hainque@adacore.com>
8956
8957         * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
8958         with Stack_Grows_Down in System.Parameters. Rename Array_Address into
8959         Stack_Overlay_Address and document that we are using an internal
8960         abstraction.
8961         (Byte_Size, Unsigned_32_Size): Remove, now useless.
8962         (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
8963         consistently throughout the various implementation pieces.
8964
8965         * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
8966         overlay we are using to fill the stack area with patterns.
8967         (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
8968         (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
8969         (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
8970
8971 2007-12-13  Robert Dewar  <dewar@adacore.com>
8972
8973         * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
8974
8975 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
8976
8977         * s-tassta.adb:
8978         (Create_Task): Take into account tasks created by foreign threads.
8979         Code clean up: use constants instead of hard coded values.
8980
8981 2007-12-13  Robert Dewar  <dewar@adacore.com>
8982
8983         * styleg.adb (Check_Comment): More liberal rules for comment placement
8984
8985 2007-12-13  Olivier Hainque  <hainque@adacore.com>
8986
8987         * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
8988         of Procedure Value instead of Frame Pointer as the invocation
8989         identifier associated with the instruction pointer in each traceback
8990         entry.
8991
8992         * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
8993         TB_Entry_For): Revert back to use of Procedure Value instead of Frame
8994         Pointer as the invocation identifier passed to tbk$symbolize.
8995
8996         * s-traent-vms.ads, s-traent-vms.adb
8997         (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
8998         Procedure Value instead of Frame Pointer as the invocation identifier
8999         passed to tbk$symbolize.
9000
9001 2007-12-13  Robert Dewar  <dewar@adacore.com>
9002
9003         * tbuild.ads, tbuild.adb:
9004         Fix location of flag for unrecognized pragma message
9005
9006 2007-12-13  Robert Dewar  <dewar@adacore.com>
9007
9008         * treepr.ads, treepr.adb: (pl): implement use of positive value
9009         shorthands
9010
9011 2007-12-13  Robert Dewar  <dewar@adacore.com>
9012
9013         * xeinfo.adb: Remove warnings
9014         * xnmake.adb: Remove warnings
9015         * xsinfo.adb: Remove warnings
9016         * xtreeprs.adb: Remove warnings
9017         * xsnames.adb: Remove warnings
9018
9019         * a-ngcoar.adb: Fix typo.
9020         * s-interr.adb: Minor reformatting
9021         * env.c: Minor reformatting.
9022         * g-bytswa.adb: Minor reformatting.
9023         * g-rannum.ads: Minor documentation improvements
9024         * s-tasinf-mingw.adb: Minor header fix
9025         * a-clrefi.adb: Minor reformatting
9026         * g-sttsne.ads: Minor documentation improvement
9027         * g-sttsne-locking.ads: Minor documentation improvement
9028         * g-soliop-solaris.ads: Minor documentation improvement
9029         * g-soliop-mingw.ads: Minor documentation improvement
9030         * g-soliop.ads: Minor documentation improvement
9031         * exp_aggr.ads: Minor reformatting
9032         * debug.adb: Add documentation for the gprbuild debug flags
9033         * exp_ch2.adb: Use Nkind_In to simplify code throughout
9034         * exp_pakd.adb: Minor reformatting
9035
9036         * g-altive.ads, g-alleve.adb: Remove assertions.
9037         Add comment about minor differences between targets regarding
9038         floating-point operations.
9039
9040         * g-thread.adb: Remove pragma unreferenced.
9041         * lib.ads: Minor reformatting
9042         * par-ch9.adb: Minor reformatting of error messages
9043         * sem_case.adb: Minor reformatting
9044         * s-fileio.adb: Minor reformattinng
9045         * s-vmexta.ads: Minor typo
9046         * vxaddr2line.adb:
9047         Take into account 'Success' value as per new GNAT warning.
9048
9049 2007-12-13  Vincent Celier  <celier@adacore.com>
9050
9051         * a-direct.adb (Create_Path): Always take '/' as a directory separator,
9052         even on Windows
9053
9054 2007-12-13  Robert Dewar  <dewar@adacore.com>
9055             Bob Duff  <duff@adacore.com>
9056
9057         * gnat_ugn.texi: Dcoument new rules for style check comment alignment
9058         Document that suffixes may be terminations of each others
9059         Add doc for -gnatw.a and -gnatw.A
9060         Document gnatbind -Wx switch
9061         Document BOM recognition
9062         Document pragma Implemented_By_Entry.
9063         Document new units.
9064
9065         * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
9066         Add doc for pragma Unreferenced suppressing no entities referenced msg
9067         Add documentation of GNAT.Directory_Operations.Iteration
9068         Add documentation of GNAT.Random_Numbers
9069         Add documentation for pragma Shared.
9070         Correct documentation for Bit_Order
9071         Add documentation for the Pool_Address attribute.
9072         Fix and improve documentation of pragma machine_attribute.
9073         New pragma Fast_Math
9074         Document BOM recognition
9075
9076         * vms_data.ads: Add entries for -gnatw.a -gnatw.A
9077         Add /Wide_Character_Encoding for binder
9078         Add qualifier for the new gnatpp option --no-separate-loop-then
9079
9080 2007-12-13  Matthew Heaney  <heaney@adacore.com>
9081
9082         * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
9083         which generic formal operations are called for each operation.
9084
9085 2007-12-13  Olivier Hainque  <hainque@adacore.com>
9086
9087         * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
9088         (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
9089
9090 2007-12-13  Emmanuel Briot  <briot@adacore.com>
9091
9092         * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
9093         Reference_Dir unless we actually need it.
9094
9095 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
9096             Tristan Gingold  <gingold@adacore.com>
9097
9098         * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
9099
9100         * s-osprim-vms.adb,
9101         a-calend-vms.adb: Remove pragma warning off and add pragma
9102         unreferenced.
9103
9104 2007-12-13  Robert Dewar  <dewar@adacore.com>
9105
9106         * impunit.adb: Add entries for missing units
9107
9108         * Makefile.rtl: Add new run-time units.
9109
9110         * Make-lang.in:  Update dependencies.
9111
9112 2007-12-13  Bob Duff  <duff@adacore.com>
9113
9114         * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
9115         types, set Can_Use_Internal_Rep appropriately, based on
9116         Always_Compatible_Rep_On_Target.
9117
9118 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
9119             Arnaud Charlet  <charlet@adacore.com>
9120
9121         * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
9122         it to the front end and setting the aamp_target environment variable
9123         to the switch's argument to ensure that gnaampbind and gnaamplink will
9124         take the specified library into account.
9125         (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
9126         target, since the CIL compiler supports an "object" file (.il files).
9127
9128 2007-12-13  Vincent Celier  <celier@adacore.com>
9129
9130         * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
9131         (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
9132
9133 2007-12-13  Geert Bosch  <bosch@adacore.com>
9134
9135         * s-parame-vxworks.adb:
9136         Update comments to reflect usage of this package by Nucleus.
9137
9138 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
9139
9140         * i-vxwork.ads: Kill new warning on Convention C, since changing the
9141         spec would break code.
9142
9143         * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
9144
9145         * system-vxworks-alpha.ads: Removed.
9146
9147 2007-12-10  Eric Botcazou  <ebotcazou@adacore.com>
9148
9149         * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
9150
9151 2007-12-09  Samuel Tardieu  <sam@rfc1149.net>
9152
9153         PR ada/34366
9154         * sem_ch3.adb (Designates_T): New function.
9155         (Mentions_T): Factor reusable part of the logic into Designates_T.
9156         Consider non-access parameters and access and non-access result.
9157         (Check_Anonymous_Access_Components): Set ekind of anonymous access to
9158         E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
9159
9160         * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
9161
9162 2007-12-07  Ludovic Brenta  <ludovic@ludovic-brenta.org>
9163
9164         PR ada/34361
9165         * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
9166         the new implementation of target-specific calls.
9167
9168 2007-12-07  Olivier Hainque  <hainque@adacore.com>
9169
9170         * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
9171         the designated full view, only follow a second level Full_View link
9172         for Non_Limited_Views of from_limited_with references.
9173
9174 2007-12-07  Samuel Tardieu  <sam@rfc1149.net>
9175
9176         PR ada/15805
9177         * sem_ch6.adb (Process_Formals): Prevent an access type formal
9178         to be initialized with an access to constant object.
9179
9180         * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
9181         when an access to constant is used to initialize an access
9182         value.
9183
9184         PR ada/21346
9185         * a-direct.adb (Compose): Containing_Directory can be an empty string.
9186
9187 2007-12-07  Olivier Hainque  <hainque@adacore.com>
9188
9189         PR ada/34173
9190         * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
9191         the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
9192         this is from an alignment clause on the GNAT entity.
9193         * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
9194         to distinguish the case where we set it from the type's alignment.
9195         When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
9196         whether this alignment was set from an explicit alignment clause.
9197
9198 2007-12-06  Eric Botcazou  <ebotcazou@adacore.com>
9199
9200         * decl.c (make_packable_type): Revert last change.
9201         (gnat_to_gnu_field): Avoid setting size and position multiple times.
9202         * utils.c (finish_record_type): Retrieve the real name of the type.
9203
9204 2007-12-05  Eric Botcazou  <ebotcazou@adacore.com>
9205
9206         * trans.c (lvalue_required_p): Take base node directly instead
9207         of its parent.  Rename second parameter to 'gnu_type'.
9208         <N_Indexed_Component>: Return 0 if the node isn't the prefix.
9209         <N_Slice>: Likewise.
9210         (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
9211         Adjust calls to lvalue_required_p.
9212
9213 2007-12-05  Samuel Tardieu  <sam@rfc1149.net>
9214
9215         PR ada/21489
9216         * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
9217         parameters of an entry call.
9218
9219 2007-12-03  Robert Dewar  <dewar@adacore.com>
9220             Samuel Tardieu  <sam@rfc1149.net>
9221
9222         PR ada/34287
9223         * sem_util.adb (Safe_To_Capture_Value): Do not capture values
9224         of variables declared in a library-level package.
9225
9226 2007-12-02  Samuel Tardieu  <sam@rfc1149.net>
9227
9228         * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
9229         of Empty_String'Unchecked_Access.
9230
9231         * Makefile.in: Add support for sh4-linux.
9232
9233         * system-linux-sh4.ads: New file.
9234
9235 2007-12-01  Kostik Belousov  <kostikbel@ukr.net>
9236
9237         PR ada/33722
9238         * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
9239         and its argument must not be free()ed.
9240
9241 2007-11-29  Eric Botcazou  <ebotcazou@adacore.com>
9242
9243         * decl.c (make_packable_type): Retrieve the real name of the type.
9244         (maybe_pad_type): Simplify similar code.
9245
9246 2007-11-28  Samuel Tardieu  <sam@rfc1149.net>
9247
9248         PR ada/15804
9249         * par-ch3.adb (P_Variant_Part): Signal an error when anything other
9250         than an identifier is used after "case" in a variant_part.
9251
9252         PR ada/17318
9253         * par-ch4.adb (Is_Parameterless_Attribute): New map.
9254         (P_Name, Scan_Apostrophe block): Parse left parenthesis following
9255         attribute name or not depending on the new map.
9256
9257         * sem-attr.adb (Analyze_Attribute): Parameterless attributes
9258         returning a string or a type will not be called with improper
9259         arguments.
9260
9261         * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
9262
9263         * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
9264
9265         PR ada/32792
9266         * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
9267         Signal an error when attribute argument is a fixed-point value of
9268         an unknown type.
9269
9270         PR ada/22559
9271         * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
9272         a derived ordinary fixed point type.
9273
9274         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
9275         RM_Size when a Small clause is found.
9276
9277 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
9278
9279         PR 34081/C++
9280         * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
9281         Pass 'false' for the new allocate_struct_function parameter.
9282         * utils.c (build_function_stub): Likewise.
9283
9284 2007-11-25  Richard Guenther  <rguenther@suse.de>
9285
9286         * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
9287         (gnat_poplevel): Likewise.
9288
9289 2007-11-25  Eric Botcazou  <ebotcazou@adacore.com>
9290
9291         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
9292         strict alignment, no alignment clause and a known static size, cap
9293         the type alignment to the greatest power of 2 factor of the size.
9294         (gnat_to_gnu_field): If the field has a component clause, is aliased
9295         or of a type with strict alignment, require that its size be equal to
9296         that of the type.
9297         (validate_size): Use the type size as the minimum size for a type with
9298         strict alignment.
9299
9300 2007-11-23  Samuel Tardieu  <sam@rfc1149.net>
9301
9302         * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
9303         s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
9304         s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
9305         Use 'Access instead of 'Unchecked_Access in second and third
9306         arguments of pthread_sigmask.
9307
9308 2007-11-23  Eric Botcazou  <ebotcazou@adacore.com>
9309
9310         * decl.c (ceil_alignment): New function.
9311         (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
9312         (make_packable_type): Likewise.
9313
9314 2007-11-22  Olivier Hainque  <hainque@adacore.com>
9315
9316         * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
9317         to fit in 80 columns.
9318
9319 2007-11-21  Aurelien Jarno  <aurelien@aurel32.net>
9320
9321         * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
9322         * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
9323
9324 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
9325
9326         PR ada/34098
9327         * misc.c (gnat_adjust_rli): Delete.
9328         (gnat_init): Do not initialize the translation code here.
9329         Do not call set_lang_adjust_rli.
9330         * trans.c (init_code_table): Make static.
9331         (gnat_init_stmt_group): Delete.
9332         (gigi): Initialize the translation code entirely here.
9333         Emit debug info for the common types here instead of...
9334         * utils.c (gnat_init_decl_processing): ...here.
9335         * gigi.h (init_code_table): Delete.
9336         (gnat_init_stmt_group): Likewise.
9337
9338 2007-11-16  Olivier Hainque  <hainque@adacore.com>
9339
9340         * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
9341         retrieving an allocator return value from a super-aligned address from
9342         here to ...
9343         * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
9344         expect a super-aligned address for a fat or thin pointer.
9345
9346 2007-11-14  Eric Botcazou  <ebotcazou@adacore.com>
9347
9348         * trans.c (call_to_gnu): Always set the source location on the call
9349         expression.  If the function returns-by-target, also set it on the
9350         address expression.
9351
9352 2007-11-14  Samuel Tardieu  <sam@rfc1149.net>
9353
9354         * adaint.c, init.c, initialize.c, link.c: Remove system-specific
9355         sections of non-supported Interix target.
9356
9357         * s-osinte-interix.ads: Removed.
9358
9359         * i-cstrin.ads (chars_ptr): Make it a C convention type.
9360
9361 2007-11-13  Samuel Tardieu  <sam@rfc1149.net>
9362
9363         * a-tasatt.adb: Add a comment at the beginning of the package
9364         explaining why in general 'Unchecked_Access must be used instead
9365         of 'Access.
9366
9367         * sem_prag.adb (Process_Convention): Move the test for the
9368         entity on which the Convention pragma applies down to also
9369         forbid pragma Convention on enumeration literals reached
9370         through renamings.
9371
9372 2007-11-10  Samuel Tardieu  <sam@rfc1149.net>
9373
9374         * a-tasatt.adb: Revert previous change for this file as it will
9375         generate an error when this package is instantiated from a
9376         local context.
9377
9378 2007-11-07  Samuel Tardieu  <sam@rfc1149.net>
9379
9380         * a-tasatt.adb: Type Wrapper should be declared in comment instead
9381         of already declared type Node_Access.
9382         Use 'Access instead of 'Unchecked_Access when applicable. Local
9383         lifetime is the one of the package.
9384         (Set_Value): W is allocated on the heap.
9385
9386         * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
9387         applicable.
9388         (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
9389         access type.
9390         (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
9391         access type.
9392
9393         * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
9394         applicable.
9395         (elaboration code): Timer_Queue lifetime is the one of the
9396         package.
9397
9398         * tracebak.c (i386 alternative): Remove useless comparaison
9399         which is always false; LOWEST_ADDRESS is 0 and is never greater
9400         than an unsigned integer.
9401
9402         * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
9403         embedded check for "Ada_Version >= Ada_05".
9404
9405 2007-11-07  Olivier Hainque  <hainque@adacore.com>
9406
9407         * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
9408         craft and expand comment.
9409
9410 2007-11-01  Eric Botcazou  <ebotcazou@adacore.com>
9411
9412         * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
9413
9414 2007-10-23  Eric Botcazou  <ebotcazou@adacore.com>
9415
9416         * misc.c (gnat_handle_option): Replace call to abort with
9417         call to gcc_unreachable.
9418         (gnat_init): Likewise.
9419         (gnat_expand_expr): Likewise.
9420         (fp_prec_to_size): Likewise.
9421         (fp_size_to_prec): Likewise.
9422
9423 2007-10-23  Richard Guenther  <rguenther@suse.de>
9424
9425         PR bootstrap/33608
9426         * tracebak.c: #undef abort after including system.h.
9427
9428 2007-10-20  Danny Smith  <dannysmith@users.sourceforge.net>
9429
9430         * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
9431         s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
9432         for win32 targets.
9433         (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
9434
9435 2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
9436
9437         * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
9438         Set the protection status of the guard page based on the value of On.
9439
9440         * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
9441
9442         * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
9443         (Exit_Task): Pass False to Hide_Yellow_Zone.
9444
9445 2007-10-15  Robert Dewar  <dewar@adacore.com>
9446
9447         * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
9448         s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
9449         a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
9450         checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
9451         freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
9452         gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
9453         mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
9454         prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
9455         sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
9456         s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
9457         uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
9458         a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
9459         a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
9460         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
9461         a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
9462         a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
9463         Minor reformatting.
9464         Add Unreferenced and Warnings (Off) pragmas for cases of
9465         variables modified calls where they are IN OUT or OUT parameters and
9466         the resulting values are not subsequently referenced. In a few cases,
9467         we also remove redundant code found by the new warnings.
9468
9469         * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
9470         sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
9471         sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
9472         sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
9473         warning controlled by -gnatw.o that warns on cases of out parameter
9474         values being ignored.
9475
9476 2007-10-15  Geert Bosch  <bosch@adacore.com>
9477
9478         * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
9479
9480         * expect.c: Initial port to arm-mentor-nucleus.
9481         Use kill for __gnat_kill() on VMS.
9482
9483 2007-10-15  Emmanuel Briot  <briot@adacore.com>
9484
9485         * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
9486         value.
9487         (Xref_Record): Change type for Line, since in the case of a reference to
9488         a predefined entity (as happens for array index types), the line is set
9489         to 0.
9490         Add support for parsing multiple array index types info, or
9491         multiple inherited interfaces info. This information cannot be stored
9492         in Xref_Entity_Record, which only supports a single instance of Tref_*,
9493         and is therefore stored in the list of references instead. It has a
9494         special treatement later on in tools that use this information.
9495
9496 2007-10-15  Tristan Gingold  <gingold@adacore.com>
9497
9498         * debug.adb: Document use of -gnatd.a and -gnatd.I
9499
9500         * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
9501
9502 2007-10-15  Javier Miranda  <miranda@adacore.com>
9503
9504         * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
9505         Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
9506         care of access to class-wide interface types plus removal of bizarre
9507         conversion of tagged object to access type (reported by Gary
9508         Dismukes). After this patch there is no need to perform any
9509         additional management on these nodes in Expand_Interface_Actuals.
9510
9511         * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
9512         that handles use of 'Access and 'Unchecked_Access applied to
9513         actuals covering interface types. Such code is now
9514         centralized in Expand_N_Attribute_Reference.
9515
9516 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
9517
9518         * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
9519         of tagged types whose ultimate ancestor is a CPP type.
9520         (Freeze_Array_Type): For a packed array type, generate an initialization
9521         procedure if the type is public, to handle properly a client that
9522         specifies Normalize_Scalars.
9523
9524 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
9525
9526         * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
9527         inside a generic body, retrieve the full view of the entry family
9528         discrete subtype if available.
9529
9530 2007-10-15  Thomas Quinot  <quinot@adacore.com>
9531
9532         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
9533         attempt to generate stubs for hidden primitive operations.
9534
9535 2007-10-15  Vincent Celier  <celier@adacore.com>
9536
9537         * mlib-tgt-specific.adb (Support_For_Libraries): New function,
9538         returning None, used when there is no platform specific body for
9539         MLib.Tgt.Specific.
9540
9541 2007-10-15  Bob Duff  <duff@adacore.com>
9542
9543         * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
9544         (passing'Unrestricted_Access of nested subprograms to Sort) with use of
9545         the generic Heap_Sort_G, in order to avoid trampolines.
9546
9547 2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
9548             Jose Ruiz  <ruiz@adacore.com>
9549
9550         * vx_stack_info.c: New file.
9551
9552         * i-forbla-unimplemented.ads: New file.
9553
9554         * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
9555         for unsupported configurations; use it on VMS targets instead of the
9556         real one.
9557         (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
9558         vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
9559         used by VxWorks targets to have access to task-specific data and be
9560         able to extract the stack boundaries for stack checking.
9561         Use system-vms-ia64.ads on ivms.
9562
9563         * Make-lang.in: Update dependencies.
9564
9565         * sysdep.c (__gnat_get_stack_info): Move to a standalone file
9566         (vx_stack_info.c).
9567
9568 2007-10-15  Vincent Celier  <celier@adacore.com>
9569
9570         * snames.adb, snames.ads: Add new standard name runtime_library_dir
9571
9572         * prj.ads (Language_Config): Add new component Runtime_Library_Dir
9573
9574         * prj-attr.adb: Add project level attribute Runtime_Library_Dir
9575
9576         * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
9577         the source is unknown.
9578
9579         * prj-ext.adb: Spelling error fix
9580
9581         * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
9582         95 reserved word in its name.
9583         (Process_Project_Level_Array_Attributes): Process new attribute
9584         Runtime_Library_Dir.
9585
9586         * prj-part.adb (Parse_Single_Project): Do not check the name of the
9587         config project against the user project names.
9588
9589         * prj-proc.adb (Expression): In multi-language mode, indexes that do
9590         not include a dot are always case insensitive.
9591         (Process_Declarative_Items): Ditto
9592         (Process_Project_Tree_Phase_1): Set Success to False in case an error is
9593         detected.
9594
9595         * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
9596         True, compare both indexes in lower case.
9597
9598 2007-10-15  Robert Dewar  <dewar@adacore.com>
9599
9600         * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
9601
9602 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
9603
9604         * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
9605         association for an access component, add an association with null as
9606         the expression. Remove testing for array subtypes and the setting in
9607         that case of Ctyp to the array component type, which prevented proper
9608         inclusion of an association for null-initialized arrays. Collapse
9609         condition that tests for array subtypes into just a test of
9610         Is_Partially_Initialized_Type (which already covers arrays anyway).
9611
9612 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
9613
9614         * sem_ch12.adb: Minor code reformatting.
9615         (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
9616         find the parent package which may have been hidden by local
9617         declarations.
9618
9619 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
9620
9621         * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
9622         flag of derived concurrent types, taking into account the flag setting
9623         on the parent subtype and any new set of discriminants.
9624
9625 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
9626
9627         * sem_ch4.adb: Minor code and comment reformatting.
9628         (Analyze_Allocator): When the designated type of an unconstrained
9629         allocator is a record with unknown discriminants or an array with
9630         unknown range bounds, emit a detailed error message depending on the
9631         compilation mode and whether the designated type is limited.
9632
9633 2007-10-15  Tristan Gingold  <gingold@adacore.com>
9634
9635         * system-vms-ia64.ads: New file.
9636
9637         * system-vms_64.ads: Minor comment fix.
9638
9639 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
9640
9641         * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
9642         body generated for a function with a controlling result that is a null
9643         extension, discard the generated body in favor of the current explicit
9644         one.
9645
9646 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
9647
9648         * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
9649         examining its original form, to handle properly operator calls that
9650         have been rewritten.
9651
9652 2007-10-15  Olivier Hainque  <hainque@adacore.com>
9653
9654         * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
9655         instead of a procedure value in each traceback entry.
9656
9657         * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
9658         instead of procedure value to TBK$SYMBOLIZE.
9659
9660         * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
9661         field.
9662         (TB_Entry_For): Account for the PV/FP renaming.
9663
9664         * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
9665         add comment.
9666         (Null_TB_Entry): Account for change of component name.
9667         (PV_For): Rename as FP_For.
9668
9669 2007-10-15  Tristan Gingold  <gingold@adacore.com>
9670
9671         * trans.c (gnat_to_gnu): Remove the padding structure more often.
9672         This optimize assignment to over-aligned record.
9673
9674 2007-10-15  Emmanuel Briot  <briot@adacore.com>
9675
9676         * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
9677         interfaces.
9678
9679         * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
9680         type, for dispatching calls.
9681
9682 2007-10-15  Vincent Celier  <celier@adacore.com>
9683             Robert Dewar  <dewar@adacore.com>
9684
9685         * gnat_ugn.texi: Add documentation for switches --version and --help
9686         for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
9687         gnatxref, gnatfind, gnatls, and gnatclean.
9688         Document -gnatw.o.
9689         Mention attribute Excluded_Source_Dirs
9690         Replace obsolescent attribute Locally_Removed_Files with attribute
9691         Excluded_Source_Files.
9692         Improve documentation of -u (gnatbind)
9693         Document how to do reliable stack checking for the environmental task
9694         on iVMS.
9695
9696         * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
9697         Document attribute Excluded_Source_Files and indicate that attribute
9698         Locally_Removed_Files is obsolescent.
9699
9700 2007-10-15  Thomas Quinot  <quinot@adacore.com>
9701
9702         * g-soccon-vms.ads: Fix value of MSG_WAITALL.
9703
9704         * gen-soccon.c:
9705         Update documentation to note that OpenVMS 8.3 or later must be used
9706         to generate g-soccon-vms.ads.
9707
9708         * atree.adb: Add ??? comment
9709
9710         * exp_util.adb: Minor reformatting.
9711         Add ??? comment in Kill_Dead_Code.
9712
9713 2007-10-15  Robert Dewar  <dewar@adacore.com>
9714
9715         * errout.ads: Comment clarification
9716
9717         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
9718         (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
9719
9720         * lib.ads: Comment update
9721
9722         * init.c: Minor reformatting.
9723
9724         * sem_attr.adb: Minor formatting
9725
9726         * osint-b.ads: Minor reformatting
9727
9728         * sem_ch9.adb: Implement -gnatd.I switch
9729
9730         * g-comlin.adb: (Start): Fix handling of empty command line.
9731
9732         * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
9733         even when -rules follows the -cargs section.
9734
9735 2007-10-08  Ollie Wild  <aaw@google.com>
9736
9737         * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
9738         gnat_return_tree.
9739         (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
9740         gnat_return_tree.
9741         (gnat_eh_runtime_type): Removed.
9742         (gnat_return_tree): New function.
9743
9744 2007-10-08  Ben Elliston  <bje@au.ibm.com>
9745
9746         PR ada/33454
9747         Revert:
9748         2007-08-31  Ben Elliston  <bje@au.ibm.com>
9749
9750         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
9751         when compiling for powerpc64-*-linux.
9752         * system-linux-ppc64.ads: New file.
9753
9754 2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
9755
9756         Mapped location support
9757         * back_end.adb (Call_Back_End): Pass information about source
9758         files instead of units to gigi.
9759         * gigi.h (struct File_Info_Type): New.
9760         (gigi): Rename and change type of number_units parameter, change
9761         type of file_info_ptr parameter.
9762         * trans.c (number_files): New global variable.
9763         (gigi): Rename and change type of number_units parameter, change
9764         type of file_info_ptr parameter.
9765         If mapped location support is enabled, create the isomorphic mapping
9766         between source files and line maps.
9767         (Sloc_to_locus): If mapped location support is enabled, translate
9768         source location into mapped location.
9769         (annotate_with_node): Rename into set_expr_location_from_node.
9770         Call set_expr_location instead of annotate_with_locus.
9771         (Pragma_to_gnu): Adjust for above change.
9772         (Loop_Statement_to_gnu): Likewise.
9773         (call_to_gnu): Likewise.
9774         (Handled_Sequence_Of_Statements_to_gnu): Likewise.
9775         (gnat_to_gnu): Likewise.
9776         (add_stmt_with_node): Likewise.
9777         (add_cleanup): Likewise.
9778         * utils.c (gnat_init_decl_processing): Do not set input_line.
9779
9780 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
9781
9782         * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
9783         (Applicable_Use): Emit a warning when a package tries to use itself.
9784         (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
9785         is already in use or the package where it is declared is in use or is
9786         declared in the current package.
9787         (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
9788
9789         * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
9790         s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
9791         s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
9792
9793 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
9794
9795         * a-calend-vms.adb, a-calend.adb:
9796         Add a section on leap seconds control along with two entities used to
9797         enable and disable leap seconds support. The array Leap_Second_Times is
9798         now constant and contains hard time values pre-generated. Remove
9799         all elaboration code used to populate the table of leap seconds.
9800
9801         * bindgen.adb:
9802         Add entity Leap_Seconds_Support to the list of global run-time variables
9803         along with a comment on its usage and values.
9804         (Gen_Adainit_Ada): Add code to generate the declaration and import of
9805         Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
9806         or one (enabled) depending on the presence of binder switch "-y".
9807         (Gen_Adainit_C): Add code to generate the declaration of external int
9808         __gl_leap_seconds_support. Set is value to zero (disabled) or one
9809         (enabled) depending on the presence of binder switch "-y".
9810
9811         * init.c: Add __gl_leap_seconds_support to the list of global values
9812         computed by the binder.
9813
9814 2007-09-26  Jerome Guitton  <guitton@adacore.com>
9815
9816         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
9817         s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
9818          s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
9819         s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
9820
9821         * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
9822
9823         * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
9824         function which can be called by the debugger to interrupt the tasks of
9825         an Ada application asynchronously, as needed on VxWorks.
9826         (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
9827
9828         * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
9829         renamed from Stop_All_Tasks. Update comments.
9830         (Stop_All_tasks): New function declaration.
9831
9832 2007-09-26  Olivier Hainque  <hainque@adacore.com>
9833
9834         * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
9835         #include <utime.h> and #define GCC_RESOURCE_H before
9836         #include <sys/wait.h>.
9837         Add more protections in __gnat_translate_vms.
9838
9839         * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
9840         #include <sys/wait.h>.
9841
9842 2007-09-26  Thomas Quinot  <quinot@adacore.com>
9843             Sergey Rybin  <rybin@adacore.com>
9844
9845         * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
9846
9847         * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
9848         where it belongs.
9849
9850         * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
9851
9852         * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
9853         where it belongs.
9854
9855         * sem_dist.ads: Minor comment fix
9856
9857         * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
9858
9859 2007-09-26  Javier Miranda  <miranda@adacore.com>
9860             Eric Botcazou  <ebotcazou@adacore.com>
9861
9862         * a-tags.adb:
9863         (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
9864          indirection added to the HT_Link component of the TSD. This is required
9865          to statically allocate the TSD.
9866
9867         * a-tags.ads:
9868         Minor reordering of the declarations in the private part. Required to
9869         add a level of indirection to the contents of the TSD component HT_Link.
9870         This is required to statically allocate the TSD.
9871
9872         * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
9873         Is_Statically_Allocated set from constant objects.
9874         Do not make exported constants created by the compiler volatile.
9875         (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
9876         as read-only.
9877
9878         * trans.c (Identifier_to_gnu): For constants, unshare initializers
9879         before returning them.
9880
9881         * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
9882         public part of the package.
9883         (Make_DT): Move HT_Link component out of the TSD record. For this
9884         purpose Make_DT now declares a separate object that stores the
9885         HT_Link value, and initializes the TSD component with the address
9886         of this new object. The addition of this level of indirection is
9887         required to statically allocate the TSD because the TSD cannot
9888         have variable components.
9889         (Expand_Interface_Conversion): Improve the expanded code.
9890         (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
9891
9892         * sem_disp.adb (Check_Dispatching_Operation): In case of a body
9893         declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
9894         if we are building static dispatch tables then we must not generate
9895         extra code to register the primitive because the dispatch table will
9896         be built at the end of the library package; otherwise we notify that
9897         we cannot build the static dispatch table.
9898
9899 2007-09-26  Robert Dewar  <dewar@adacore.com>
9900
9901         * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
9902         overlays.
9903
9904         * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
9905         (Analyze_Record_Representation_Clause): Suppress junk warning for
9906         missing component clause.
9907         (Analyze_Attribute_Definition_Clause, case Address): Apply the special
9908         tests for controlled type overlay to composites with controlled
9909         components.
9910         (Analyze_Record_Representation_Clause): Add reference for component name
9911
9912 2007-09-26  Javier Miranda  <miranda@adacore.com>
9913             Gary Dismukes  <dismukes@adacore.com>
9914
9915         * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
9916         for thunks associated with interface types.
9917
9918         * einfo.ads: Improve documentatation of Is_Internal
9919         (Is_Thunk): New attribute applicable to subprograms. True for thunks
9920         associated with interface types.
9921         Extensive comment fixes regarding flags that appear in all entities. The
9922         documentation is now consistent for all such flags (there were a number
9923         of errors in the documentation in this regard).
9924
9925         * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
9926
9927         * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
9928         of these procedures are passed a function call that already has
9929         build-in-place actuals (testing new flag
9930         Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
9931         the case where processing continues.
9932         (Expand_Call): If the call is generated from a thunk body then we
9933         propagate the extra actuals associated with the accessibility
9934         level of the access type actuals.
9935
9936         * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
9937         of each extra formal of a protected operation to reference the
9938         corresponding extra formal of the subprogram denoted by the
9939         operation's Protected_Body_Subprogram.
9940
9941         * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
9942         N_Function_Call nodes.
9943
9944 2007-09-26  Robert Dewar  <dewar@adacore.com>
9945
9946         * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
9947
9948         * debug.adb: Add d.s flag.
9949
9950 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
9951
9952         * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
9953         debug variable so that it won't be initialized when pragma
9954         Initialize_Scalars is in effect.
9955
9956 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
9957
9958         * freeze.adb (Freeze_Entity): Remove check for preelaborable
9959         initialization of a full view. This is moved to
9960         Analyze_Package_Specification.
9961
9962         * sem_ch7.adb (Analyze_Package_Specification): Add check for
9963         preelaborable initialization of a full view in entity loop.
9964         (Uninstall_Declarations): If entity is a use-visible compilation unit,
9965         its child units are use-visible only if they are visible child units.
9966
9967         * sem_util.adb (Is_Preelaborable_Expression): New function to determine
9968         whether an expression can be used within a type declaration that
9969         requires preelaborable init.
9970         (Check_Components): Replace inline code that does partial checking for
9971         preelaborable default expressions with call to
9972         Is_Preelaborable_Expression.
9973         (Has_Preelaborable_Initialization): In the case of a generic actual
9974         subtype, (that is, Is_Generic_Actual is True), return the result of
9975         applying Has_Preelaborable_Initialization to the generic actual's base
9976         type.
9977
9978 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
9979
9980         * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
9981         call to Jan_1_Day _Of_Week to optimize its performance.
9982         (Is_Leap): Move the routine to the scope of Week_In_Year.
9983         (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
9984         weekday on which January 1 falls of Year - 1 and Year + 1. This function
9985         avoids calling Time_Of and Split, thus making it more efficent.
9986         (Week_In_Year): Reimplemented in oder to follow ISO 8601.
9987
9988         * g-calend.ads (Week_In_Year): Change comment to reflect new
9989         implementation.
9990
9991 2007-09-26  Emmanuel Briot  <briot@adacore.com>
9992
9993         * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
9994         Command_Line): New types
9995         (Define_Alias, Define_Prefix, Free): New subprograms. These provide
9996         support for defining how switches can be grouped on a command line (as
9997         is the case for -gnatw... for GNAT), and how simple switches can be
9998         used as aliases for more complex switches (-gnatwa is same as
9999         -gnatwbcef...)
10000         (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
10001         (Start, Current_*): New subprograms
10002         Added support for parsing an array of strings in addition to the real
10003         command line.
10004         (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
10005          be moved from the body to the private part of the spec.
10006         (*): All subprograms now have an extra parameter with default value to
10007         specify which parser should be used. For backward compatibility, it
10008         defaults to parsing the command line of the application. They were also
10009         modified to properly handle cases where each of the argument does not
10010         start at index 1 (which is always true for Ada.Command_Line, but not
10011         when processing any Argument_List).
10012         (Free): New subprogram
10013         (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
10014         Argument): New subprograms
10015         (Switch_Parameter_Type): New enum, which clarifies the code. The extra
10016         special characters like ':', '=',... are now handled in a single place,
10017         which makes the code more extensible eventually.
10018         (Getopt, Full_Switch): When the switch was returned as part of the
10019         special character '*', make sure it is prepended by the switch character
10020         ('-' in general), so that the application knows whether "foo" or "-foo"
10021         was specified on the command line.
10022
10023 2007-09-26  Florian Villoing  <villoing@adacore.com>
10024
10025         * g-dirope.adb (Remove_Dir): In case we are removing directories
10026         recursively, make sure that if an exception is raised during the
10027         processing, the current working directory is reset to its initial
10028         value before propagating the exception.
10029
10030 2007-09-26  Vincent Celier  <celier@adacore.com>
10031
10032         * gnatbind.adb: If there are several ALI files specified and there is
10033         a main program to bind, the first ALI is expected to contain the main
10034         subprogram and the names of the binder generated files will be derived
10035         from the first ALI file name.
10036         (Gnatbind): Fix insertion character in invocation of Error_Msg
10037
10038 2007-09-26  Vincent Celier  <celier@adacore.com>
10039
10040         * gnatcmd.adb (Check_Files): Do not include sources that have been
10041         removed by attributes Exclude_Source_Files or Locally_Removed_Files.
10042
10043 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
10044
10045         * lib-xref.ads, lib-xref.adb: The entry for array types now carries
10046         information about each of its index types, following the type
10047         reference for its component type.
10048
10049 2007-09-26  Vincent Celier  <celier@adacore.com>
10050
10051         * make.adb: (Kill): New procedure (__gnat_kill imported)
10052         (Running_Compile, Outstanding_Compiles): Global variables that
10053         were previously local to procedure Compile_Sources.
10054         (Sigint_Intercepted): Send signal SIGINT to all outstanding
10055         compilation processes.
10056
10057         (Gnatmake): If project files are used, create the mapping of all the
10058         sources, so that the correct paths will be found.
10059
10060         * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
10061
10062 2007-09-26  Vincent Celier  <celier@adacore.com>
10063
10064         * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
10065
10066         * prj.ads, prj.adb (Default_Language): Remove function, no longer used
10067         Replace components Compiler_Min_Options and Binder_Min_Options with
10068         Compiler_Required_Switches and Binder_Required_Switches in record
10069         Language_Config.
10070         Remove components Default_Language and Config in Project_Tree_Data,
10071         no longer used.
10072
10073         * prj-attr.adb: New attributes Required_Switches (<language>) in
10074         packages Compiler and Binder.
10075
10076         * prj-nmsc.adb: Major rewrite of the processing of configuration
10077         attributes for gprbuild. No impact on GNAT tools.
10078
10079         * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
10080         process configuration attributes: this is done in Prj.Nmsc.Check.
10081         (Recursive_Process): Make a full copy of packages inherited from project
10082         being extended, instead of a shallow copy.
10083         (Process_Project_Tree_Phase_1): New procedure
10084         (Process_Project_Tree_Phase_1): New procedure
10085         (Process): Implementation now uses the two new procedures
10086
10087         * prj-util.adb (Executable_Of): Get the suffix and the default suffix
10088         from the project config, not the tree config that no longer exists.
10089
10090 2007-09-26  Vincent Celier  <celier@adacore.com>
10091
10092         * Make-lang.in: Update dependencies..
10093
10094 2007-09-26  Vincent Celier  <celier@adacore.com>
10095
10096         * osint.adb, osint.ads: Minor reformatting
10097
10098         * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
10099
10100 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
10101
10102         * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
10103         message to cite use of <> in aggregate component associations rather
10104         than wrongly indicating use of limited aggregates.
10105
10106 2007-09-26  Robert Dewar  <dewar@adacore.com>
10107
10108         * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
10109         Address_Taken.
10110
10111 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
10112
10113         * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
10114         ancestor of the derived type, the operations are inherited from the
10115         primary dispatch table of the parent.
10116         (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
10117         when the context is an explicit type conversion.
10118
10119 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
10120
10121         * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
10122         rule for qualified expressions properly, to detect improper conversions
10123         and resolve some cases of overloading.
10124
10125 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
10126
10127         * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
10128         proper kind of reference to the primitive operation, for better source
10129         navigation.
10130         (Valid_Conversion): A tagged conversion is legal if both operands are
10131         tagged.
10132
10133 2007-09-26  Robert Dewar  <dewar@adacore.com>
10134
10135         * sem_warn.adb (Check_References): Catch more cases of unreferenced
10136         packages.
10137
10138 2007-09-26  Vincent Celier  <celier@adacore.com>
10139
10140         * snames.adb, snames.ads: Change Include_Option to Include_Switches
10141
10142 2007-09-26  Robert Dewar  <dewar@adacore.com>
10143
10144         * s-wchstw.adb: provide messages for run time unit exceptions
10145
10146         * a-witeio.adb: Minor reformatting
10147
10148         * exp_ch13.adb: Minor reformatting
10149
10150 2007-09-26  Sergey Rybin  <rybin@adacore.com>
10151
10152         * vms_data.ads: Revise gnatmetric qualifiers.
10153         Add qualified for the new gnatbind option '-y'
10154
10155         * gnat_ugn.texi: Revise the gnatmetric section.
10156         Add entry for new gnatbind option '-y'.
10157
10158         * gnat_rm.texi: Minor spelling correction.
10159         Document restriction on overlaying controlled types
10160
10161 2007-09-26  Vincent Celier  <celier@adacore.com>
10162
10163         * makegpr.adb (Link_Executables): Do not fail when the root project has
10164         no sources, but is an extending project.
10165
10166 2007-09-25  Eric Botcazou  <ebotcazou@adacore.com>
10167
10168         * trans.c: Fix misplaced #define.
10169
10170 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10171
10172         * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
10173         the TYPE_REF_CAN_ALIAS_ALL flag to the result.
10174
10175 2007-09-21  Olivier Hainque  <hainque@adacore.com>
10176
10177         * utils.c (type_for_nonaliased_component_p): Return false for
10178         all AGGREGATE_TYPEs.
10179
10180 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
10181
10182         * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
10183         object covered by 13.3(19) volatile.
10184
10185 2007-09-12  Eric Botcazou  <ebotcazou@adacore.com>
10186
10187         PR ada/26797
10188         PR ada/32407
10189         * utils.c (unchecked_convert): Use a subtype as the intermediate type
10190         in the special VIEW_CONVERT_EXPR case.
10191
10192 2007-09-12  Robert Dewar  <dewar@adacore.com>
10193
10194         * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
10195
10196         * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
10197         lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
10198         s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
10199         s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
10200         s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
10201         s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
10202         s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
10203         s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
10204         a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
10205         g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
10206         s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
10207         s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
10208         snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
10209         s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
10210         s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
10211         s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
10212         s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
10213         pragma Compiler_Unit and adds it to relevant library units.
10214
10215 2007-09-12  Ed Schonberg  <schonberg@adacore.com>
10216
10217         * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
10218         a box need not correspond to any component.
10219
10220 2007-09-12  Robert Dewar  <dewar@adacore.com>
10221
10222         * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
10223         the tasking version of the Ada run time when foreign threads are
10224         present and there are no explicit Ada tasks or tasking constructs.
10225
10226         * gnat_rm.texi: Clarify documentation of GNAT.Threads.
10227
10228 2007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>
10229
10230         * bindusg.adb (Display): Correct comment for switch -X. Add a line for
10231         the usage of switch -y.
10232
10233         * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
10234         when switch -y is present.
10235
10236         * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
10237         leap seconds in Ada.Calendar and its children.
10238
10239 2007-09-12  Jose Ruiz  <ruiz@adacore.com>
10240
10241         * a-extiti.ads (Timer): The discriminant is a "not null access
10242         constant" in the Reference Manual.
10243         (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
10244
10245 2007-09-12  Robert Dewar  <dewar@adacore.com>
10246
10247         * a-swuwha.adb: Remove junk RM header
10248
10249 2007-09-12  Vincent Celier  <celier@adacore.com>
10250
10251         * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
10252         indicator
10253
10254         * g-bytswa.ads: Minor reformatting
10255
10256 2007-09-12  Thomas Quinot  <quinot@adacore.com>
10257
10258         * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
10259         Add new constant Thread_Blocking_IO, always True by default, set False
10260         on a per-runtime basis.
10261         (Need_Netdb_Buffer): New constant.
10262
10263 2007-09-12  Arnaud Charlet  <charlet@adacore.com>
10264
10265         * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
10266         Added renames for corresponding functions in System.Partition_Interface.
10267
10268 2007-09-12  Doug Rupp  <rupp@adacore.com>
10269
10270         * Makefile.in: Remove VMS specific System.CRTL packages which are no
10271         longer needed.
10272
10273         * s-crtl-vms64.ads: Removed.
10274
10275 2007-09-12  Olivier Hainque  <hainque@adacore.com>
10276
10277         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
10278         with discriminant constraints, generalize the code for BIT_FIELDs
10279         to PACKED fields of constant size and propagate DECL_PACKED.
10280
10281 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
10282
10283         * decl.c (array_type_has_nonaliased_component): New predicate.
10284         (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
10285         set the TYPE_NONALIASED_COMPONENT flag on the type.
10286         <E_Array_Subtype>: Likewise.
10287         * gigi.h (type_for_nonaliased_component_p): Declare.
10288         * utils.c (type_for_nonaliased_component_p): New predicate.
10289         (create_field_decl): Invoke the above predicate to set the
10290         DECL_NONADDRESSABLE_P flag on the field.
10291
10292 2007-09-11  Javier Miranda  <miranda@adacore.com>
10293
10294         * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
10295         in library level record type entities if we are generating statically
10296         allocated dispatch tables.
10297
10298         * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
10299         importing/exporting the _tag declaration by new code
10300         importing/exporting the dispatch table wrapper. This change allows us
10301         to statically allocate of the TSD.
10302         (Make_DT.Export_DT): New procedure.
10303         (Build_Static_DT): New function.
10304         (Has_DT): New function.
10305
10306         * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
10307         True_Constant and Current_Value. Required to statically
10308         allocate the dispatch tables.
10309         (Check_Allocator): Make function iterative instead of recursive.
10310         Also return inner allocator node, when present, so that we do not have
10311         to look for that node again in the caller.
10312
10313 2007-09-11  Jan Hubicka  <jh@suse.cz>
10314
10315         * misc.c (gnat_expand_body): Kill.
10316         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
10317
10318 2007-09-10  Robert Dewar  <dewar@adacore.com>
10319
10320         * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
10321         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
10322         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
10323         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
10324         ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
10325         bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
10326         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
10327         butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
10328         comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
10329         elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
10330         err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
10331         exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
10332         exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
10333         exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
10334         exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
10335         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
10336         exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
10337         exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
10338         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
10339         exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
10340         exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
10341         exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
10342         fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
10343         get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
10344         gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
10345         gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
10346         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
10347         gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
10348         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
10349         gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
10350         inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
10351         lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
10352         lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
10353         make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
10354         mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
10355         mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
10356         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
10357         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
10358         osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
10359         osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
10360         par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
10361         par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
10362         par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
10363         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
10364         par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
10365         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
10366         prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
10367         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
10368         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
10369         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
10370         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
10371         prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
10372         rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
10373         scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
10374         sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
10375         sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
10376         sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
10377         sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
10378         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
10379         sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
10380         sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
10381         sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
10382         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
10383         sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
10384         sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
10385         sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
10386         sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
10387         sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
10388         stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
10389         styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
10390         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
10391         switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
10392         tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
10393         treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
10394         types.h, uintp.h, urealp.h, usage.adb, usage.ads,
10395         validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
10396         xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
10397         xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
10398         gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
10399         mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
10400         symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
10401         mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
10402         mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
10403
10404 2007-09-10  Emmanuel Briot  <briot@adacore.com>
10405
10406         * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
10407         classes ("[]").
10408
10409 2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>
10410
10411         * adaint.c (__gnat_translate_vms): new function.
10412
10413 2007-09-10  Gary Dismukes  <dismukes@adacore.com>
10414             Thomas Quinot  <quinot@adacore.com>
10415
10416         * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
10417         create an abstract subprogram in the case of 'Input. For 'Output we now
10418         create a real spec/body when the type is abstract, since it can
10419         potentially be called.
10420         (Predefined_Primitive_Bodies): Now allow the creation of a predefined
10421         body for 'Output when the type is abstract (only the creation of the
10422         body for 'Input is excluded when the type is abstract).
10423         (Stream_Operation_OK): Add an additional condition in the return
10424         statement, so that False will be returned for TTS_Stream_Input if the
10425         associated tagged type is an abstract extension. Add comments for
10426         return statement.
10427         (Expand_N_Object_Declaration): For the case of a shared passive
10428         variable, insert init proc call only after the shared variable
10429         procedures have been processed, because the IP call needs to undergo
10430         shared passive variable reference expansion, which requires these
10431         procedures to be available (and elaborated).
10432
10433 2007-09-10  Vincent Celier  <celier@adacore.com>
10434
10435         * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
10436         parameter Runtime_Project.
10437
10438 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
10439
10440         * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
10441         given a box association, the type of the component is discriminated,
10442         and the value of the discriminant is the discriminant of the enclosing
10443         type, retrieve its value from the aggregate itself, where it must have
10444         been supplied.
10445
10446         * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
10447         to remove other spurious ambiguities on arithmetic operations involving
10448         literals and addresses, on systems where Address is a visible integer
10449         type, when the operator is called in functional notation.
10450         (Try_Primitive_Operation): Within an instance, a call in prefixed form
10451         is legal when the types match, even if the operation is currently
10452         hidden.
10453
10454 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
10455
10456         * sem_ch12.adb (Build_Local_Package): A formal package with no
10457         associations is legal if all formals have defaults. It is not
10458         equivalent to a formal declared with a box.
10459
10460 2007-09-10  Sergey Rybin  <rybin@adacore.com>
10461
10462         * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
10463
10464 2007-09-10  Sergey Rybin  <rybin@adacore.com>
10465
10466         * gnat_ugn.texi: Add description of the new '-lratio' option
10467         Update 7.3.1 section about availability of the feature.
10468
10469 2007-09-10  Thomas Quinot  <quinot@adacore.com>
10470
10471         * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
10472         inserted node.
10473
10474 2007-09-10  Olivier Hainque  <hainque@adacore.com>
10475
10476         * Makefile.in: (mips-irix section): Activate build of libgmem.
10477
10478 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
10479
10480         * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
10481         x87 registers.
10482
10483 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
10484
10485         * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
10486         a debug renaming declaration specially.
10487
10488 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
10489
10490         * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
10491         which a constant renaming is treated as a normal object declaration.
10492         * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
10493         the N_Indexed_Component case.
10494         <N_Indexed_Component>: Fall through to above case.
10495         <N_Object_Renaming_Declaration>: Return true for all composite types.
10496
10497 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
10498
10499         * decl.c (make_packable_type): If the new type has been given BLKmode,
10500         try again to get an integral mode for it.
10501
10502 2007-09-07  Eric Botcazou  <ebotcazou@adacore.com>
10503
10504         Re-apply accidentally reverted change:
10505
10506         2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
10507
10508         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
10509         get_action_description_for): Replace _Unwind_Word with _uleb128_t
10510         and _Unwind_SWord with _sleb128_t.
10511
10512 2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>
10513
10514         * trans.c (convert_with_check): Update call to real_2expN.
10515
10516 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
10517
10518         * trans.c (Compilation_unit_to_gnu): Use set_cfun.
10519         * utils.c (end_subprog_body): Likewise.
10520
10521 2007-09-03  Nick Clifton  <nickc@redhat.com>
10522
10523         * Make-lang.in: Change copyright header to refer to version 3 of
10524         the GNU General Public License and to point readers at the
10525         COPYING3 file and the FSF's license web page.
10526         * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
10527         Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
10528         namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
10529         treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
10530         Likewise.
10531
10532 2007-08-31  Vincent Celier  <celier@adacore.com>
10533
10534         PR ada/4720
10535
10536         * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
10537         gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
10538         (Check_Version_And_Help): New procedure in package Switch to process
10539         switches --version and --help.
10540         Use Check_Version_And_Help in GNAT tools
10541
10542         * make.adb:  Ditto.
10543         (Compile_Sources): Make sure that sources that are "excluded" are not
10544         compiled.
10545         (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
10546         project file is used.
10547         (Version_Switch): Remove, moved to Switch
10548         (Help_Switch): Remove, moved to Switch
10549         (Display_Version): Remove, moved to Switch
10550
10551         * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
10552         package Switch to process switches --version and --help.
10553         (Display_Version): New procedure
10554
10555         * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
10556
10557 2007-08-31  Javier Miranda  <miranda@adacore.com>
10558
10559         * a-tags.adb (Internal_Tag): Protect the run-time against wrong
10560         internal tags.
10561
10562 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
10563
10564         * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
10565         (Mark_Non_Null): If the node for which we just generated an access check
10566         is a reference to an *in* parameter and the reference appears in the
10567         declarative part of a subprogram body, mark the node as known non null.
10568
10569 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
10570
10571         * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
10572         structure of E_Exception to reflect the new flag.
10573         (Is_Raised, Set_Is_Raised): New inlined routines.
10574         Update the usage of available flag to reflect the addition of Is_Raised.
10575         (Is_Raised, Set_Is_Raised): Bodies of new routines.
10576         (Write_Entity_Flags): Write the status of flag Is_Raised.
10577         (Is_Descendent_Of_Address): New entity flag, to simplify handling of
10578         spurious ambiguities when integer literals appear in the context of an
10579         address type that is a visible integer type.
10580
10581         * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
10582         exceptions never being raised.
10583         (Analyze_Raise_Statement): When analyzing an exception, mark it as being
10584         explicitly raised.
10585
10586 2007-08-31  Javier Miranda  <miranda@adacore.com>
10587
10588         * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
10589         statement when compiling under restriction No_Exceptions_Proparation.
10590
10591 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
10592
10593         * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
10594         initialization aggregate for the type, generate itype references for
10595         thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
10596
10597 2007-08-31  Gary Dismukes  <dismukes@adacore.com>
10598
10599         * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
10600         library-level package renaming, pass the declaration associated with
10601         the renaming's special debug variable to Qualify_Entity_Names to ensure
10602         that its encoded name is properly qualified.
10603
10604         * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
10605         occurring in the list of entities to qualify, and do not attempt to
10606         traverse an entity list in that case. Variables associated with
10607 `       library-level package renamings can now occur in the table.
10608
10609         * exp_dbug.ads: Revise documentation of the encoding for renaming
10610         declarations.
10611
10612 2007-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10613
10614         * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
10615         access type points to an unconstrained array.
10616
10617 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
10618
10619         * restrict.adb, namet.adb, par-util.adb: Remove redundant type
10620         conversion.
10621
10622         * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
10623         simple redundant qualifications. The check is performed whenever the
10624         expression is a non-overloaded identifier.
10625         (Resolve_Type_Conversion): Enchance the redundant type conversion check
10626         to include loop parameters.
10627         (Valid_Conversion): Avoid generation of spurious error message.
10628
10629 2007-08-31  Bob Duff  <duff@adacore.com>
10630
10631         * par-ch4.adb (P_Simple_Expression): Fold long sequences of
10632         concatenations of string literals into a single literal, in order to
10633         avoid very deep recursion in the front end, which was causing stack
10634         overflow.
10635
10636         * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
10637         string, and the right operand is a string literal (the case of "" &
10638         "..."), optimize by avoiding copying the right operand -- just use the
10639         value of the right operand directly.
10640
10641         * stringt.adb (Store_String_Chars): Optimize by growing the
10642         String_Chars table all at once, rather than appending characters one by
10643         one.
10644         (Write_String_Table_Entry): If the string to be printed is very long,
10645         just print the first few characters, followed by the length. Otherwise,
10646         doing "pn(n)" in the debugger can take an extremely long time.
10647
10648         * sem_prag.adb (Process_Interface_Name): Replace loop doing
10649         Store_String_Char with Store_String_Chars.
10650
10651 2007-08-31  Vincent Celier  <celier@adacore.com>
10652
10653         * prj-attr.adb: Add new attribute Excluded_Source_Files
10654
10655         * prj-nmsc.adb: Use attribute Excluded_Source_Files before
10656         Locally_Removed_Files.
10657
10658         * snames.ads, snames.adb: New standard name Excluded_Source_Files
10659
10660 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
10661
10662         * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
10663         clauses of subunits, ignore limited_with_clauses that are illegal and
10664         have not been fully analyzed.
10665
10666 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
10667
10668         * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
10669         flag, for effiency. It is called when analyzing arithmetic operators
10670         and also for actuals in calls that are universal_integers. The flag is
10671         set for the predefined type address, and for any type or subtype
10672         derived from it.
10673
10674         * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
10675         Universal_Integer, when the formal is a descendent of address and the
10676         call appears in user code.
10677         (Analyze_Selected_Component): if the prefix is a private extension, the
10678         tag component is visible.
10679
10680         * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
10681         entity flag.
10682
10683 2007-08-31  Robert Dewar  <dewar@adacore.com>
10684
10685         * s-fileio.adb (Open): Normalize file name to lower case in non-case
10686         sensitive file name systems to avoid unexpected mismatch in Vista.
10687
10688 2007-08-31  Vincent Celier  <celier@adacore.com>
10689
10690         * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
10691
10692 2007-08-31  Vincent Celier  <celier@adacore.com>
10693
10694         * symbols-vms.adb (Initialize): Read symbol files with continuation
10695         lines
10696         (Finalize): If symbol is long, split the line
10697
10698 2007-08-31  Vincent Celier  <celier@adacore.com>
10699
10700         * fmap.ads: Minor comment updates
10701
10702 2007-08-31  GNAT Script  <nobody@adacore.com>
10703
10704         * Make-lang.in: Makefile automatically updated
10705
10706 2007-08-31  Bob Duff  <duff@adacore.com>
10707
10708         * sinfo.ads: Minor comment fix.
10709
10710 2007-08-31  Thomas Quinot  <quinot@adacore.com>
10711
10712         * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
10713         with implementation.
10714         Documentation cleanup only.
10715
10716 2007-08-31  Sergey Rybin  <rybin@adacore.com>
10717
10718         * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
10719         gnatpp '--separate-stmt-name' option.
10720         Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
10721         option.
10722
10723         * gnat_ugn.texi: Add description for the new gnatpp
10724         '--separate-stmt-name' and '--use-on-new-line' options.
10725
10726 2007-08-31  Ben Elliston  <bje@au.ibm.com>
10727
10728         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
10729         when compiling for powerpc64-*-linux.
10730         * system-linux-ppc64.ads: New file.
10731
10732 2007-08-22  Krister Walfridsson  <cato@df.lth.se>
10733
10734         * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
10735         NetBSD.
10736
10737 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10738
10739         * misc.c (gnat_type_max_size): Constify.
10740
10741 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
10742
10743         * cstand.adb (Create_Standard): Create an entity for a zero-sized type
10744         associated with Standard_Debug_Renaming_Type, to be used as the type of
10745         the special variables whose names provide debugger encodings for
10746         renaming declarations.
10747
10748         * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
10749         (Set_Debug_Renaming_Link): Change to set Node25.
10750         (Write_Field13_Name): Remove case for E_Enumeration_Literal.
10751         (Write_Field25_Name): Add case for E_Variable to output
10752         "Debug_Renaming_Link".
10753         (Write_Field23_Name): Correct the output string for "Limited_View".
10754
10755         * exp_dbug.adb: Add with and use of Tbuild.
10756         (Debug_Renaming_Declaration): Replace creation of an enumeration type
10757         and literal with creation of a variable of type
10758         Standard_Debug_Renaming_Type whose name encodes both the renamed object
10759         and the entity of the renaming declaration.
10760         (Qualify_Entity_Name): Add the delayed qualification of the entity name
10761         part of the name of a variable that has a Debug_Renaming_Link.
10762
10763         * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
10764         special type to be associated with variables that provide debugger
10765         encodings for renaming declarations.
10766
10767 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
10768             Ed Schonberg  <schonberg@adacore.com>
10769             Javier Miranda  <miranda@adacore.com>
10770
10771         * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
10772         ancestor part given by an aggregate to test for an unchecked conversion,
10773         since this can occur in some cases when the ancestor part is a function
10774         call, and we don't want to fall into the recursive call to this
10775         procedure in that case.
10776
10777         * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
10778         stream attributes on limited types to account for user-specified
10779         attributes as well as whether Input (resp. Output) becomes available
10780         due to Read (resp. Write) being available for the type. Change Boolean
10781         variable to the more accurate name
10782         Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
10783         double-"not" predicate at beginning of return statement to more
10784         understandable form.
10785
10786         * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
10787         return has an associated N_Handled_Sequence_Of_Statements, then wrap it
10788         in a block statement and use that as the first statement of the
10789         expanded return rather than incorrectly using the handled sequence as
10790         the first statement.
10791
10792         * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
10793         operation, generate an explicit freeze node for it rather than
10794         generating extra formals, to ensure that gigi has the proper order of
10795         elaboration for anonymous subtypes in the signature of the subprograms.
10796         (Build_In_Place_Formal): Move assertion to beginning of loop.
10797         (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
10798         applied to a function call (occurs for some cases of 'Input).
10799         (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
10800         applied to a function call (occurs for some cases of 'Input).
10801
10802         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
10803         2005, generate an extended return statement enclosing the result object
10804         and 'Read call.
10805
10806         * freeze.adb (Freeze_Record_Type): Extend the current management of
10807         components that are access type with an allocator as default value: add
10808         missing support to the use of qualified expressions of the
10809         allocator (which also cause freezing of the designated type!)
10810         (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
10811         dispatching operation, since extra formals may be needed by calls to
10812         build-in-place functions (such as stream 'Input).
10813
10814         * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
10815         formals for 'Constrained and accessibility level in the case of a
10816         predefined dispatching operation.
10817
10818         * exp_util.adb (Insert_Actions): A protected body is a valid insertion
10819         point, no need to find the parent node.
10820
10821 2007-08-16  Javier Miranda  <miranda@adacore.com>
10822
10823         * exp_attr.adb (Attribute_Priority): Add missing support for entries
10824         and entry barriers.
10825
10826 2007-08-16  Javier Miranda  <miranda@adacore.com>
10827
10828         * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
10829         is not really required and can introduce regression with the debugger.
10830         The original problem is fixed with the patch written for checks.adb.
10831
10832 2007-08-16  Thomas Quinot  <quinot@adacore.com>
10833
10834         * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
10835         Range_Check on Allocated_Table.
10836
10837 2007-08-16  Vincent Celier  <celier@adacore.com>
10838
10839         * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
10840         Including_Non_Switch set to False.
10841         (Gnatmake): For the compiler, call Test_If_Relative_Path with
10842         Including_Non_Switch set to False.
10843
10844         * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
10845         parameter Including_Non_Switch, defaulted to True. When
10846         Including_Non_Switch is False, options that are not switches and
10847         appear as relative path are not converted to absolute paths.
10848
10849 2007-08-16  Nicolas Roche  <roche@adacore.com>
10850
10851         * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
10852         makefiles
10853
10854         * Make-lang.in: Update dependencies
10855
10856 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
10857
10858         * sem_ch10.adb (Has_With_Clause): If the name of the with clause
10859         currently inspected is a selected component, retrieve the entity of
10860         its selector.
10861         (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
10862         from the immediate ancestor of Main_Unit_Entity.
10863         (Install_Limited_Withed_Unit): Do not install the limited view of
10864         package P if P is reachable through an ancestor chain from package C
10865         and C also has a with clause for P in its body.
10866         (Has_Limited_With_Clause): New routine.
10867         (Has_With_Clause): New routine.
10868
10869 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
10870
10871         * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
10872         generic for an enclosing instance is a global reference, even though
10873         its scope is the enclosing instance.
10874
10875 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
10876             Javier Miranda  <miranda@adacore.com>
10877
10878         * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
10879         initialize a limited object.
10880         (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
10881         13/2 and 14/2.
10882         Make sure Has_Complex_Representation is inherited by derived type.
10883
10884 2007-08-16  Robert Dewar  <dewar@adacore.com>
10885
10886         * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
10887         exception case
10888
10889 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
10890
10891         * sem_disp.adb (Check_Dispatching_Operation): If the operation
10892         implements an operation inherited from a progenitor interface, verify
10893         that they are subtype-conformant.
10894
10895 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
10896             Bob Duff  <duff@adacore.com>
10897             Nicolas Setton  <setton@adacore.com>
10898
10899         * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
10900         (Resolve): Alphabetize local variables. Add new variable From_Lib. When
10901         the statement which is being resolved comes from a predefined library
10902         unit, all non-predefined library interpretations are skipped.
10903         (Resolve_Op_Concat): If string concatenation was folded in the parser,
10904         but the "&" is user defined, give an error, because the folding would
10905         be wrong.
10906
10907         * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
10908         the parser has folded a long sequence of concatenations of string
10909         literals.
10910
10911         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
10912         and "JMP_BUF" variables as artificial.
10913         (N_String_Literal): Do not use alloca for very long string literals. Use
10914         xmalloc/free instead. Otherwise the stack might overflow.
10915
10916         * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
10917         compiler.
10918
10919 2007-08-16  Vincent Celier  <celier@adacore.com>
10920
10921         * vms_conv.adb (Process_Argument): Ensure that project related options
10922         are not put in the -cargs section when using GNAT COMPILE.
10923
10924 2007-08-16  Robert Dewar  <dewar@adacore.com>
10925
10926         * gnat_ugn.texi: Add note on preprocessing (output file not written)
10927
10928 2007-08-16  Thomas Quinot  <quinot@adacore.com>
10929
10930         * a-tags.adb: Minor reformatting.
10931
10932 2007-08-16  Bob Duff  <duff@adacore.com>
10933
10934         * sem_type.ads, sem_ch4.adb: Minor reformatting.
10935
10936 2007-08-14  Thomas Quinot  <quinot@adacore.com>
10937
10938         * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
10939         s-osinte-interix.ads, system-interix.ads: Removed.
10940
10941 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
10942
10943         * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
10944         calls to Check_Within_Time_Bounds.
10945         ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
10946         (Difference): Account for possible rounding of the resulting difference
10947
10948 2007-08-14  Robert Dewar  <dewar@adacore.com>
10949
10950         * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
10951         par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
10952         s-osinte-solaris.adb, s-osinte-solaris.ads,
10953         s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
10954
10955         * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
10956         switch -gnatyS. Enable -gnatyS in GNAT style check mode
10957
10958 2007-08-14  Robert Dewar  <dewar@adacore.com>
10959             Ed Schonberg  <schonberg@adacore.com>
10960
10961         * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
10962         Suppress unmodified in-out parameter warning in some cases
10963         This patch is a also fairly significant change to the way suppressible
10964         checks are handled.
10965
10966         * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
10967         needed for access to concurrent record types generated by the expander.
10968         (Generate_Range_Check): When generating a temporary to capture the
10969         value of a conversion that requires a range check, set the type of the
10970         temporary before rewriting the node, so that the type is always
10971         properly placed for back-end use.
10972         (Apply_Float_Conversion_Check): Handle case where the conversion is
10973         truncating.
10974         (Get_Discriminal): Code reformatting. Climb the scope stack looking
10975         for a protected type in order to examine its discriminants.
10976
10977 2007-08-14  Robert Dewar  <dewar@adacore.com>
10978             Gary Dismukes  <dismukes@adacore.com>
10979             Ed Schonberg  <schonberg@adacore.com>
10980             Thomas Quinot  <quinot@adacore.com>
10981
10982         * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
10983         a-stwisu.adb, a-strsup.adb: Fix warnings for range
10984         tests optimized out.
10985
10986         * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
10987         (Get_Allocator_Final_List): For the case of an anonymous access type
10988         that has a specified Associated_Final_Chain, do not go up to the
10989         enclosing scope.
10990         (Expand_N_Type_Conversion): Test for the case of renamings of access
10991         parameters when deciding whether to apply a run-time accessibility
10992         check.
10993         (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
10994         aggregate code before allocator, and ahead of declaration for
10995         temporary, to prevent access before elaboration when the allocator is
10996         an actual for an access parameter.
10997         (Expand_N_Type_Conversion): On an access type conversion involving an
10998         access parameter, do not apply an accessibility check when the
10999         operand's original node was an attribute other than 'Access. We now
11000         create access conversions for the expansion of 'Unchecked_Access and
11001         'Unrestricted_Access in certain cases and clearly accessibility should
11002         not be checked for those.
11003
11004         * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
11005         includes a type conversion of a packed component that has been expanded,
11006         recover the original expression for the object, and use this expression
11007         in the post-call assignment statement, so that the assignment is made
11008         to the object and not to a back-end temporary.
11009         (Freeze_Subprogram): In case of primitives of tagged types not defined
11010         at the library level force generation of code to register the primitive
11011         in the dispatch table. In addition some code reorganization has been
11012         done to leave the implementation clear.
11013         (Expand_Call): When expanding an inherited implicit conversion,
11014         preserve the type of the inherited function after the intrinsic
11015         operation has been expanded.
11016
11017         * exp_ch2.ads, exp_ch2.adb
11018         (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
11019         of an entry formal appearing in an assignment statement does not assign
11020         to the formal.
11021         (Expand_Current_Value): Instead of calling a routine to determine
11022         whether the prefix of an attribute reference should be optimized or
11023         not, prevent the optimization of such prefixes all together.
11024
11025         * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
11026         component whose prefix is known to be of an access type is an implicit
11027         dereference and does not assign to the prefix.
11028
11029 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11030             Robert Dewar  <dewar@adacore.com>
11031
11032         * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
11033         itype is visited, make an entry into table to link associated node and
11034         new itype.
11035         Add comments and correct harmless error in Build_NCT_Hash_Tables
11036         (Array_Aggr_Subtype): Associate each itype created for an index type to
11037         the corresponding range construct, and not to the aggregate itself. to
11038         maintain a one-to-one correspondence between itype and its associated
11039         node, to prevent errors when complex expression is copied.
11040         Fix mishandling of multiple levels of parens
11041
11042         * sem_aggr.adb: Create a limited view of an incomplete type, to make
11043         treatment of limited views uniform for all visible declarations in a
11044         limited_withed package.
11045         (New_Copy_Tree): If hash table is being used and itype is visited,
11046         make an entry into table to link associated node and new itype.
11047         (Resolve_Record_Aggregate): Do not add an others box association for a
11048         discriminated record component that has only discriminants, when there
11049         is a box association for the component itself.
11050
11051         * par-ch4.adb: Fix mishandling of multiple levels of parens
11052
11053 2007-08-14  Robert Dewar  <dewar@adacore.com>
11054
11055         * comperr.adb: Fix problem with suppressing warning messages from gigi
11056
11057         * erroutc.ads, erroutc.adb, errout.ads,
11058         errout.adb (Write_Eol): Remove trailing spaces before writing the line
11059         (Write_Eol_Keep_Blanks): New procedure to write a line, including
11060         possible trailing spaces.
11061         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
11062         Fix problem with suppressing warning messages from back end
11063         Improve handling of deleted warnings
11064
11065         * gnat1drv.adb:
11066         Fix problem with suppressing warning messages from back end
11067         Handle setting of Static_Dispatch_Tables flag.
11068
11069         * prepcomp.adb:
11070         Fix problem with suppressing warning messages from back end
11071
11072         * exp_intr.adb: Improve handling of deleted warnings
11073
11074 2007-08-14  Robert Dewar  <dewar@adacore.com>
11075
11076         * debug.adb: Improve -gnatdI to cover all cases of serialization
11077         Add documentation of dZ, d.t
11078
11079         * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
11080         serialization.
11081         (Sprint_Node_Actual): Generate new output associated with implicit
11082         importation and implicit exportation of object declarations.
11083
11084 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11085             Robert Dewar  <dewar@adacore.com>
11086             Javier Miranda  <miranda@adacore.com>
11087             Gary Dismukes  <dismukes@adacore.com>
11088
11089         * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
11090         to make treatment of limited views uniform for all visible declarations
11091         in a limited_withed package.
11092         Improve warnings for in out parameters
11093         (Set_Related_Interaface/Related_Interface): Allow the use of this
11094         attribute with constants.
11095         (Write_Field26_Name): Handle attribute Related_Interface in constants.
11096         Warn on duplicate pragma Preelaborable_Initialialization
11097
11098         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
11099         generation of a freezing node to ensure proper management of null
11100         excluding access types in the backend.
11101         (Create_Extra_Formals): Test base type of the formal when checking for
11102         the need to add an extra accessibility-level formal. Pass the entity E
11103         on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
11104         originally being done in a couple of cases), to ensure that the
11105         Extra_Formals list gets set on the entity E when the first entity is
11106         added.
11107         (Conforming_Types): Add missing calls to Base_Type to the code that
11108         handles anonymous access types. This is required to handle the
11109         general case because Process_Formals builds internal subtype entities
11110         to handle null-excluding access types.
11111         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
11112         functions that need it, even when not marked Requires_Overriding.
11113         Improve warnings for in out parameters
11114         (Analyze_Function_Return): Warn for disallowed null return
11115         Warn on return from procedure with unset out parameter
11116         Ensure consistent use of # in error messages
11117         (Check_Overriding_Indicator): Add in parameter Is_Primitive.
11118         (Analyze_Function_Return): Move call to Apply_Constraint_Check before
11119         the implicit conversion of the expression done for anonymous access
11120         types. This is required to generate the code of the null excluding
11121         check (if required).
11122
11123         * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
11124         A formal parameter is never publicly referenceable outside of its body.
11125         (Check_References): For an unreferenced formal parameter in an accept
11126         statement, use the same warning circuitry as for subprogram formal
11127         parameters.
11128         (Warn_On_Unreferenced_Entity): New subprogram, taken from
11129         Output_Unreferenced_Messages, containing the part of that routine that
11130         is now reused for entry formals as described above.
11131         (Goto_Spec_Entity): New function
11132         (Check_References): Do not give IN OUT warning for dispatching operation
11133         Improve warnings for in out parameters
11134         (Test_Ref): Check that the entity is not undefinite before calling
11135         Scope_Within, in order to avoid infinite loops.
11136         Warn on return from procedure with unset out parameter
11137         Improved warnings for unused variables
11138
11139 2007-08-14  Robert Dewar  <dewar@adacore.com>
11140             Javier Miranda  <miranda@adacore.com>
11141             Gary Dismukes  <dismukes@adacore.com>
11142
11143         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
11144         (Expand_N_Attribute_Reference): Further unify the handling of the
11145         three forms of access attributes, using common code now for all three
11146         cases. Add a test for the case of applying an access attribute to
11147         an explicit dereference when the context is an access-to-interface
11148         type. In that case we need to apply the conversion to the prefix
11149         of the explicit dereference rather than the prefix of the attribute.
11150         (Attribute_Version, UET_Address): Set entity as internal to ensure
11151         proper dg output of implicit importation.
11152         (Expand_Access_To_Type): Removed.
11153         (Expand_N_Attribute_Reference): Merge the code from the three cases
11154         of access attributes, since the processing is largely identical for
11155         these cases. The substantive fix here is to process the case of a
11156         type name prefix (current instance case) before handling the case
11157         of interface prefixes.
11158
11159 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11160             Ed Schonberg  <schonberg@adacore.com>
11161             Javier Miranda  <miranda@adacore.com>
11162             Robert Dewar  <dewar@adacore.com>
11163
11164         * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
11165         (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
11166         type that is an anonymous access to controlled object, establish
11167         an associated finalization chain to avoid corrupting the global
11168         finalization list when a dynamically allocated object designated
11169         by such a component is deallocated.
11170         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
11171         functions that need it, even when not marked Requires_Overriding.
11172         (Initialize_Tag): Replace call to has_discriminants by call to
11173         Is_Variable_Size_Record in the circuitry that handles the
11174         initialization of secondary tags.
11175         (Is_Variable_Size_Record): New implementation.
11176         (Expand_N_Object_Declaration): Suppress call to init proc if there is a
11177         Suppress_Initialization pragma for a derived type.
11178         (Is_Variable_Size_Record): New subprogram.
11179         (Build_Offset_To_Top_Functions): New implementation that simplifies the
11180         initial version of this routine and also fixes problems causing
11181         incomplete initialization of the table of interfaces.
11182         (Build_Init_Procedure): Improve the generation of code to initialize the
11183         the tag components of secondary dispatch tables.
11184         (Init_Secondary_Tags): New implementation that simplifies the previous
11185         version of this routine.
11186         (Make_DT): Add parameter to indicate when type has been frozen by an
11187         object declaration, for diagnostic purposes.
11188         (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
11189         diagnose attemps to freeze a subprogram when some untagged type of its
11190         profile is a private type whose full view has not been analyzed yet.
11191         (Freeze_Array_Type): Generate init proc for packed array if either
11192         Initialize or Normalize_Scalars is set.
11193         (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
11194         constructing the new profile, copy the null_exclusion indicator for each
11195         parameter, to ensure full conformance of the new body with the spec.
11196
11197         * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
11198         Create wrappers for constructor functions that need it, even when not
11199         marked Requires_Overriding.
11200         (Covers): Handle properly designated types of anonymous access types,
11201         whose non-limited views are themselves incomplete types.
11202         (Add_Entry): Use an entity to store the abstract operation which hides
11203         an interpretation.
11204         (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
11205         (Collect_Interps): Use Empty as an actual for Abstract_Op in the
11206         initialization aggregate.
11207         (Function_Interp_May_Be_Hidden): Rename to
11208         Function_Interp_Has_Abstract_Op.
11209         (Has_Compatible_Type): Remove machinery that skips interpretations if
11210         they are labeled as potentially hidden by an abstract operator.
11211         (Has_Hidden_Interp): Rename to Has_Abstract_Op.
11212         (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
11213         (Write_Overloads): Output the abstract operator if present.
11214         (Add_Entry): Before inserting a new entry into the interpretation table
11215         for a node, determine whether the entry will be disabled by an abstract
11216         operator.
11217         (Binary_Op_Interp_May_Be_Hidden): New routine.
11218         (Collect_Interps): Add value for flag May_Be_Hidden in initialization
11219         aggregate.
11220         (Function_Interp_May_Be_Hidden): New routine.
11221         (Has_Compatible_Type): Do not consider interpretations hidden by
11222         abstract operators when trying to determine whether two types are
11223         compatible.
11224         (Has_Hidden_Interp): New routine.
11225         (Set_May_Be_Hidden_Interp): New routine.
11226         (Write_Overloads): Write the status of flag May_Be_Hidden.
11227
11228 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11229             Javier Miranda  <miranda@adacore.com>
11230
11231         * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
11232         types declared in the declarative part of a nested package body or in
11233         the proper body of a stub.
11234         (Set_All_DT_Position): Add missing check to avoid wrong assignation
11235         of the same dispatch table slot to renamed primitives.
11236         (Make_Select_Specific_Data_Table): Handle private types.
11237         (Tagged_Kind): Handle private types.
11238         (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
11239         output of implicit importation and exportation.
11240         (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
11241         first formal of the thunk is always associated with the controlling
11242         type. In addition perform the following code cleanup: remove formal
11243         Thunk_Alias which is no longer required, cleanup evaluation of the
11244         the controlling type, and update the documentation.
11245         Replace occurrence of Default_Prim_Op_Count by
11246         Max_Predef_Prims. Addition of compile-time check to verify
11247         that the value of Max_Predef_Prims is correct.
11248         (Check_Premature_Freezing): Apply check in Ada95 mode as well.
11249         (Make_DT): Add parameter to indicate when type has been frozen by an
11250         object declaration, for diagnostic purposes.
11251         (Build_Static_Dispatch_Tables): New subprogram that takes care of the
11252         construction of statically allocated dispatch tables.
11253         (Make_DT): In case of library-level tagged types export the declaration
11254         of the primary tag. Remove generation of tags (now done by Make_Tags).
11255         Additional modifications to handle non-static generation of dispatch
11256         tables. Take care of building tables for asynchronous interface types
11257         (Make_Tags): New subprogram that generates the entities associated with
11258         the primary and secondary tags of Typ and fills the contents of Access_
11259         Disp_Table. In case of library-level tagged types imports the forward
11260         declaration of the primary tag that will be declared later by Make_DT.
11261         (Expand_Interface_Conversion): In case of access types to interfaces
11262         replace an itype declaration by an explicit type declaration to avoid
11263         problems associated with the scope of such itype in transient blocks.
11264
11265 2007-08-14  Robert Dewar  <dewar@adacore.com>
11266             Ed Schonberg  <schonberg@adacore.com>
11267             Javier Miranda  <miranda@adacore.com>
11268
11269         * exp_util.ads, exp_util.adb:
11270         This patch replaces a number of occurrences of explicit tests for N_Null
11271         with calls to Known_Null. This improves tracking of null values, since
11272         Known_Null also catches null constants, and variables currently known to
11273         be null, so we get better tracking.
11274         (Ensure_Defined): create an itype reference only in the scope of the
11275         itype.
11276         (Side_Effect_Free): A selected component of an access type that
11277         denotes a component with a rep clause must be treated as not
11278         side-effect free, because if it is part of a linked structure its
11279         value may be affected by a renaming.
11280         (Expand_Subtype_From_Expr): For limited objects initialized with build
11281         in place function calls, do nothing; otherwise we prematurely introduce
11282         an N_Reference node in the expression initializing the object, which
11283         breaks the circuitry that detects and adds the additional arguments to
11284         the called function. Bug found working in the new patch for statically
11285         allocated dispatch tables.
11286         (Is_Library_Level_Tagged_Type): New subprogram.
11287         (Remove_Side_Effects): If the expression of an elementary type is an
11288         operator treat as a function call.
11289         (Make_Literal_Range): If the index type of the array is not integer, use
11290         attributes properly to compute the constraint on the resulting aggregate
11291         which is a string.
11292
11293         * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
11294         class-wide type whose base type is an incomplete private type, leave
11295         class-wide type unfrozen so that freeze nodes can be generated
11296         properly at a later point.
11297         (Freeze_Entity, array case): Handle case of pragma Pack and component
11298         size attributre clause for same array.
11299
11300 2007-08-14  Vincent Celier  <celier@adacore.com>
11301
11302         * prj.ads, prj.adb: Update Project Manager to new attribute names for
11303         gprbuild.
11304         Allow all valid declarations in configuration project files
11305         (Reset): Initialize all tables and hash tables in the project tree data
11306         Major update of the Project Manager and of the project aware tools,
11307         including gprmake, so that the same sources in the GNAT repository
11308         can be used by gprbuild.
11309         (Slash_Id): Change type to be Path_Name_Type
11310         (Slash): Return a Path_Name_Type instead of a File_Name_Type
11311
11312         * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
11313         gprbuild.
11314         Update Project Manager to new attribute names for ghprbuild
11315         Allow all valid declarations in configuration project files
11316         Major update of the Project Manager and of the project aware tools,
11317         including gprmake, so that the same sources in the GNAT repository
11318         can be used by gprbuild.
11319
11320         * prj-com.ads:
11321         Major update of the Project Manager and of the project aware tools,
11322         including gprmake, so that the same sources in the GNAT repository
11323         can be used by gprbuild.
11324
11325         * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
11326         insensitive flag for attributes with optional index.
11327         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
11328         array attribute, put the index in lower case.
11329         Update Project Manager to new attribute names for ghprbuild
11330         Allow all valid declarations in configuration project files
11331         Major update of the Project Manager and of the project aware tools,
11332         including gprmake, so that the same sources in the GNAT repository
11333         can be used by gprbuild.
11334
11335         * prj-env.ads, prj-env.adb:
11336         Major update of the Project Manager and of the project aware tools,
11337         including gprmake, so that the same sources in the GNAT repository
11338         can be used by gprbuild.
11339         (Get_Reference): Change type of parameter Path to Path_Name_Type
11340
11341         * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
11342         removing '-' from the path to start with the first character of the
11343         next directory.
11344         Major update of the Project Manager and of the project aware tools,
11345         including gprmake, so that the same sources in the GNAT repository
11346         can be used by gprbuild.
11347         Major update of the Project Manager and of the project aware tools,
11348         including gprmake, so that the same sources in the GNAT repository
11349         can be used by gprbuild.
11350
11351         * prj-nmsc.ads, prj-nmsc.adb:
11352         Update Project Manager to new attribute names for ghprbuild
11353         Allow all valid declarations in configuration project files
11354         (Search_Directories): Detect subunits that are specified with an
11355         attribute Body in package Naming. Do not replace a source/unit in the
11356         same project when the order of the source dirs are known. Detect
11357         duplicate sources/units in the same project when the order of the
11358         source dirs are not known.
11359         (Check_Ada_Name): Allow all identifiers that are not reserved words
11360         in Ada 95.
11361         Major update of the Project Manager and of the project aware tools,
11362         including gprmake, so that the same sources in the GNAT repository
11363         can be used by gprbuild.
11364         (Look_For_Sources): If the list of sources is empty, set the object
11365         directory of non extending project to nil.
11366         Change type of path name variables to be Path_Name_Type
11367         (Locate_Directory): Make sure that on Windows '/' is converted to '\',
11368         otherwise creating missing directories will fail.
11369
11370         * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
11371         prj-part.ads, prj-part.adb:
11372         Major update of the Project Manager and of the project aware tools,
11373         including gprmake, so that the same sources in the GNAT repository
11374         can be used by gprbuild.
11375
11376         * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
11377         insensitive flag for attributes with optional index.
11378         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
11379         array attribute, put the index in lower case.
11380         (Parse_Variable_Reference): Allow the current project name to be used in
11381         the prefix of an attribute reference.
11382
11383         * prj-util.ads, prj-util.adb
11384         (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
11385         defaulted to False. When True, always check against indexes in lower
11386         case.
11387
11388         * snames.ads, snames.h, snames.adb:
11389         Update Project Manager to new attribute names for gprbuild
11390         Allow all valid declarations in configuration project files
11391
11392 2007-08-14  Robert Dewar  <dewar@adacore.com>
11393             Ed Schonberg  <schonberg@adacore.com>
11394
11395         * opt.ads: Warning for non-local exception propagation now off by
11396         default
11397         New switch -gnatI to disable representation clauses
11398         Implement new pragma Implicit_Packing
11399
11400         * usage.adb:
11401         Warning for non-local exception propagation now off by default
11402         Add warning for unchecked conversion of pointers wi different
11403         conventions.
11404         New switch -gnatI to disable representation clauses
11405
11406         * usage.adb: new switch -gnatyS
11407
11408         * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
11409         note that aggregates of anonymous array types are not flagged.
11410         -gnatwc now includes membership tests optimized away
11411         -gnatw.x warnings are now off by default
11412         Added conditional compilation Appendix
11413         Add documentation of -gnatI
11414         Add documentation for new -gnatyS style check
11415         Update documentation about SAL and auto-init on Windows.
11416
11417         * gnat_rm.texi:
11418         Add documentation for pragma Check_Name and 'Enabled attribute
11419         Document that Eliminate on dispatching operation is ignored
11420         Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
11421         Document pragma Main
11422         Document pragma Implicit_Packing
11423
11424         * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
11425         different conventions
11426         New switch -gnatI to disable representation clauses
11427
11428         * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
11429         recognized, report the invalid characters including "-gnat" instead of
11430         just the first character in the switch.
11431         New switch -gnatI to disable representation clauses
11432         Set Warn_On_Object_Renames_Function true for -gnatg
11433
11434         * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
11435         Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
11436         Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
11437         to switch -aP (add directory to project search dir).
11438
11439         * par-prag.adb: Implement new pragma Implicit_Packing
11440
11441         * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
11442         type as having a non-standard representation, to force expansion on
11443         conversion to related types.
11444         (Analyze_Pragma): Warn on misspelled pragma
11445         (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
11446         Ensure consistent use of # in error messages
11447         Implement pragma Implicit_Packing
11448
11449 2007-08-14  Olivier Hainque  <hainque@adacore.com>
11450             Eric Botcazou  <ebotcazou@adacore.com>
11451
11452         * targtyps.c (get_target_maximum_default_alignment): New function.
11453         Maximum alignment
11454         that the compiler might choose by default for a type or object.
11455         (get_target_default_allocator_alignment): New function. Alignment known
11456         to be honored by the target default allocator.
11457         (get_target_maximum_allowed_alignment): New function. Maximum alignment
11458         we might accept for any type or object on the target.
11459         (get_target_maximum_alignment): Now synonym of maximum_default_alignment
11460
11461         * gigi.h (get_target_maximum_default_alignment): Declare new function.
11462         (get_target_default_allocator_alignment): Likewise.
11463         (get_target_maximum_allowed_alignment): Likewise.
11464
11465         PR ada/19037
11466         * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
11467         result of a function call, first try to use a stabilized reference for
11468         a constant renaming too.
11469         (validate_alignment): Use target_maximum_allowed_alignment instead of
11470         MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
11471         (gnat_to_gnu_entity): Use common nodes directly.
11472         (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
11473         alignment and size for the object.
11474         (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
11475         and N_Procedure_Call_Statement.
11476         (takes_address): Rename to lvalue_required_p, add third parameter
11477         'aliased' and adjust recursive calls.
11478         <N_Indexed_Component>: Update 'aliased' from the array type.
11479         <N_Selected_Component>: New case.
11480         <N_Object_Renaming_Declaration>: New Likewise.
11481         (Identifier_to_gnu): Adjust for above changes.
11482         (maybe_stabilize_reference) <CONST_DECL>: New case.
11483
11484         * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
11485         between type variants.
11486         (build_simple_component_ref): Likewise.
11487         (build_call_alloc_dealloc): Use target_default_allocator_alignment
11488         instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
11489         aligning type circuitry for allocations from the default storage pool.
11490         (build_allocator): Likewise.
11491         (build_simple_component_ref): Manually fold the reference for a
11492         constructor if the record type contains a template.
11493
11494         * utils.c (value_zerop): Delete.
11495         (gnat_init_decl_processing): Emit debug info for common types.
11496         (rest_of_record_type_compilation): If a union contains a field
11497         with a non-constant qualifier, treat it as variable-sized.
11498         (finish_record_type): Give the stub TYPE_DECL a name.
11499         (rest_of_record_type_compilation): Likewise.
11500         (convert) <CONSTRUCTOR>: New case.  Build a new constructor if
11501         types are equivalent array types.
11502         (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
11503         even if the type is not passed by reference.
11504         (static_ctors, static_dtors): Delete.
11505         (end_subprog_body): Do not record constructors and destructors.
11506         (build_global_cdtor): Delete.
11507         (gnat_write_global_declarations): Do not call build_global_cdtor.
11508
11509         * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
11510         -fRTS=rtp is specified.
11511         If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
11512         specified.
11513
11514         * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
11515         of the personality function with SJLJ exceptions.
11516
11517         * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
11518         the name of the personality function with SJLJ exceptions.
11519
11520 2007-08-14  Robert Dewar  <dewar@adacore.com>
11521             Ed Schonberg  <schonberg@adacore.com>
11522
11523         * par.ads, par.adb: Improve handling of extra right parens.
11524         (Par): Remove flag From_Limited_With_Clause.
11525
11526         * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
11527         Improve handling of extra right parens.
11528
11529 2007-08-14  Robert Dewar  <dewar@adacore.com>
11530
11531         * par-tchk.adb (TF_Semicolon): Improve error recovery
11532
11533 2007-08-14  Robert Dewar  <dewar@adacore.com>
11534             Ed Schonberg  <schonberg@adacore.com>
11535
11536         * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
11537         enumeration type, mark all literals as referenced.
11538         (Eval_Attribute, case 'Image): If the argument is an enumeration
11539         literal and names are available, constant-fold but mark nevertheless as
11540         non-static.
11541         Clean up function names.
11542         (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
11543         comment.
11544         (Requires_Simple_Name_Prefix): Removed.
11545
11546 2007-08-14  Robert Dewar  <dewar@adacore.com>
11547             Ed Schonberg  <schonberg@adacore.com>
11548
11549         * sem_ch11.adb: Improved warnings for unused variables
11550
11551         * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
11552         is a synchronized interface, the derived type is limited.
11553         (Analyze_Object_Declaration): Mark the potential coextensions in the
11554         definition and expression of an object declaration node.
11555         (Build_Derived_Type): For the completion of a private type declaration
11556         with a derived type declaration, chain the parent type's representation
11557         items to the last representation item of the derived type (not the
11558         first one) if they are not present already.
11559         (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
11560         object declaration of forward references to tags.
11561         (Access_Subprogram_Declaration): In Ada2005, anonymous access to
11562         subprogram types can appear as access discriminants of synchronized
11563         types.
11564         (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
11565         given in prefixed form as a selected component.
11566         (Process_Discriminants): If not all discriminants have defaults, place
11567         error message on a default that is present.
11568         (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
11569         extend a synchronized tagged type.
11570         Improved warnings for unused variables
11571         (Is_Visible_Component): Fix a visibility hole on a component inherited
11572         by a private extension when parent is itself declared as a private
11573         extension, and the derivation is in a child unit.
11574         (Find_Hidden_Interface): Move spec from the package body.
11575
11576 2007-08-14  Robert Dewar  <dewar@adacore.com>
11577             Ed Schonberg  <schonberg@adacore.com>
11578
11579         * sem_ch5.adb: Improve warnings on redundant assignments
11580
11581         * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
11582         parameter
11583         (Is_Synchronized_Tagged_Type): New subprogram that returns true
11584         in case of synchronized tagged types (AARM 3.9.4 (6/2)).
11585         (Safe_To_Capture_Value): Can now return True for constants, even if Cond
11586         is set to False. Improves handling of Known_[Not_]Null.
11587         (Wrong_Type): Special case address arithmetic attempt
11588         (Collect_Abstract_Interfaces): Add new formal to allow collecting
11589         abstract interfaces just using the partial view of private types.
11590         (Has_Abstract_Interfaces): Add new formal to allow checking types
11591         covering interfaces using the partial view of private types.
11592         (Is_Fully_Initialized_Type): Special VM case for uTag component. This
11593         component still needs to be defined in this case, but is never
11594         initialized as VMs are using other dispatching mechanisms.
11595         (Abstract_Interface_List): For a protected type, use base type to get
11596         proper declaration.
11597         Improve warnings on redundant assignments
11598         (Is_Variable): Handle properly an implicit dereference of a prefixed
11599         function call.
11600         (Build_Actual_Subtype): If this is an actual subtype for an
11601         unconstrained formal parameter, use the sloc of the body for the new
11602         declaration, to prevent anomalises in the debugger.
11603
11604 2007-08-14  Robert Dewar  <dewar@adacore.com>
11605
11606         * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
11607         dispatching operation
11608
11609 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11610             Gary Dismukes  <dismukes@adacore.com>
11611
11612         * exp_aggr.ads,
11613         exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
11614         expanded aggregate code before allocator, and ahead of declaration for
11615         temporary, to prevent access before elaboration when the allocator is
11616         an actual for an access parameter.
11617         (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
11618         the TSD and the table of interfaces.
11619         (Convert_To_Assignments): Augment the test for delaying aggregate
11620         expansion for limited return statements to include the case of extended
11621         returns, to prevent creation of an unwanted transient scope.
11622         (Is_Static_Dispatch_Table_Aggregate): New subprogram.
11623         (Expand_Array_Aggregate): Handle aggregates associated with
11624         statically allocated dispatch tables.
11625         (Expand_Record_Aggregate): Handle aggregates associated with
11626         statically allocated dispatch tables.
11627         (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
11628         of anonymous access type.
11629
11630 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11631
11632         * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
11633         is a variable that renames a slice, use the variable itself in the
11634         expannsion when the renamed expression itself may be modified between
11635         the declaration of the renaming and the array assignment.
11636
11637 2007-08-14  Jerome Guitton  <guitton@adacore.com>
11638
11639         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
11640         s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
11641         s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
11642         New functions; dummy implementations.
11643
11644         * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
11645         functions, used to implement the multi-tasks mode routines on VxWorks.
11646
11647         * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
11648         New functions, thin
11649         binding to the VxWorks routines which have changed between VxWorks 5
11650         and 6.
11651         (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
11652         which are not callable from a RTP.
11653
11654         * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
11655         implemented for the multi-tasks mode on VxWorks 5 and 6.
11656
11657         * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
11658
11659         * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
11660         functions.
11661
11662 2007-08-14  Vincent Celier  <celier@adacore.com>
11663
11664         * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
11665         gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
11666         mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
11667         mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
11668         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
11669         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
11670         mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
11671         procedure.
11672         (Major_Id_Name): New function.
11673         mlib-tgt.ads/mlib.tgt.adb:
11674         (Library_Major_Minor_Id_Supported): New function, default returns True
11675         Most mlib-tgt-*.adb that support shared libraries and symbolic links:
11676         (Build_Dynamic_Library): Add support for major/minor ids for shared libs
11677         Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
11678         Implementation of Library_Major_Minor_Id_Supported returns False
11679         clean.adb:
11680         (Clean_Library_Directory): If major/minor ids are supported, clean all
11681         library files.
11682         Major update of the Project Manager and of the project aware tools,
11683         including gprmake, so that the same sources in the GNAT repository
11684         can be used by gprbuild.
11685
11686 2007-08-14  Olivier Hainque  <hainque@adacore.com>
11687
11688         * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
11689         (GCC_ZCX_Support): Switch to True.
11690
11691         * s-intman-solaris.adb (Notify_Exception): Call
11692         Adjust_Context_For_Raise before raising, as expected for signal
11693         handlers in general.
11694
11695         * s-intman-posix.adb (Notify_Exception): Remove declaration of
11696         Adjust_Context_For_Raise, moved to the spec of this unit to be visible
11697         to other implementation bodies.
11698
11699         * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
11700         be visible by multiple implementation bodies.
11701
11702         * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
11703         only for conditions coming from hardware.
11704         [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
11705         adjustments to signal context prior to exception raise from signal
11706         handler.
11707         (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
11708         mode.
11709         Solaris section: (__gnat_adjust_context_for_raise): New function.
11710         Implementation of the machine context adjustments to perform prior to
11711         raise from a signal handler. Version for both sparc and x86.
11712         (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
11713         (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
11714         prior to raising as expected for any handler, before possible nested
11715         faults to make sure all the contexts in a chain have been adjusted by
11716         the time we propagate.
11717
11718 2007-08-14  Pascal Obry  <obry@adacore.com>
11719
11720         * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
11721         (SYSTEM_INFO): New record.
11722         (SetThreadIdealProcessor): New imported routine needed for supporting
11723         task_info pragma on Windows.
11724
11725         * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
11726         info can be applied to the current host.
11727         (Create_Task): Set the ideal processor if information is present.
11728
11729         * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
11730         a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
11731
11732 2007-08-14  Olivier Hainque  <hainque@adacore.com>
11733
11734         * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
11735         stack size and initial stack pointer value for a given task.
11736         (Enter_Task): Get the stack attributes of the task we are entering and
11737         let the stack checking engine know about them.
11738
11739         * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
11740         Let the stack-checking engine know about the initial sp value and stack
11741         size associated with the current task.
11742         (Set_Stack_Info): If a stack base has been notified for the current
11743         task, honor it. Fallback to the previous less accurate method otherwise.
11744
11745         * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
11746
11747 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11748
11749         * sem_ch10.adb: Create a limited view of an incomplete type, to make
11750         treatment of limited views uniform for all visible declarations in a
11751         limited_withed package.
11752         Set flag indicating that a subprogram body for a child unit has a
11753         generated spec.
11754         (Analyze_Compilation_Unit): If unit is a subprogram body that has no
11755         separate declaration, remove the unit name from visibility after
11756         compilation, so that environment is clean for subsequent compilations.
11757         (Install_Limited_Context_Clauses): Do not install a
11758         limited_private_with_clause unless the current unit is a body or a
11759         private child unit.
11760         (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
11761         in the same fashion.
11762         (Install_Limited_Withed_Unit): Do not install a limited with clause if
11763         it applies to the declaration of the current package body.
11764         (Remove_Private_With_Clauses): If there is a regular with_clause for
11765         the unit, delete Private_With_Clause from context, to prevent improper
11766         hiding when processing subsequent nested packages and instantiations.
11767
11768 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
11769
11770         * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
11771         dir/file, device:/dir/file, and device:drive_letter:/dir/file as
11772         representing absolute path names.
11773         __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
11774
11775         * cstreams.c (__gnat_full_name for VxWorks): Use
11776         __gnat_is_absolute_path to detect whether we need to add the current
11777         directory to normalize the path.
11778
11779 2007-08-14  Javier Miranda  <miranda@adacore.com>
11780
11781         * a-tags.ads,
11782         a-tags.adb (Displace): Associate a message with the raised CE
11783         exception.
11784         (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
11785         To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
11786         To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
11787         spec.
11788         (Default_Prim_Op_Count): Removed.
11789         (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
11790         Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
11791         Remove pragma Inline_Always.
11792
11793         * rtsfind.ads (Default_Prim_Op_Count): Removed
11794         (Max_Predef_Prims): New entity
11795         (RE_Expanded_Name): Removed
11796         (RE_HT_Link): Removed
11797         (RE_Iface_Tag): Remmoved
11798         (RE_Ifaces_Table): Removed
11799         (RE_Interfaces_Array): Removed
11800         (RE_Interface_Data_Element): Removed
11801         (RE_Nb_Ifaces): Removed
11802         (RE_RC_Offset): Removed
11803         (RE_Static_Offset_To_Top): Removed
11804
11805         * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
11806         formal.
11807         (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
11808         Prim_Op_Count by Max_Predef_Prims.
11809
11810 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11811             Vincent Celier  <celier@adacore.com>
11812
11813         * binde.adb (Elab_All_Links): Remove unnecessary call to
11814         Generic_Separately_Compiled (if a unit satisfies this predicate, there
11815         won't be an associated Afile).
11816         (Elab_All_Links): Fail if a referenced unit cannot be found
11817
11818         * bindgen.adb:
11819         Fix comments in bindgen regarding consistency checks done in Bcheck:
11820         the checks are made across units within a partition, not across several
11821         partitions.
11822         Fix generation of C binder file for VxWorks.
11823
11824         * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
11825         Generic_May_Lack_ALI, more descriptive of the current use of the
11826         predicate, and update documentation.
11827
11828         * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
11829         reorganization and documentation update for the case of predefined
11830         library generics (for which we do not reference an Afile).
11831
11832 2007-08-14  Robert Dewar  <dewar@adacore.com>
11833
11834         * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
11835         s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
11836         s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
11837         s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
11838         s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
11839         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
11840         s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
11841         s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
11842         exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
11843         s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
11844         s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
11845         a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
11846         s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
11847         g-altcon.adb: Minor reformatting
11848
11849         ada-tree.h: Delete empty line.
11850
11851         ali.ads: Minor reformatting
11852         Clarification of comments.
11853         Minor spelling correction
11854
11855         * exp_dbug.adb: Add Warnings Off to suppress new warning
11856
11857         * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
11858         formal
11859
11860         * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
11861         value
11862
11863         * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
11864
11865         * a-textio.ads: Reorder the standard input/output/error declarations
11866         for consistency.
11867
11868         * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
11869
11870         * par-ch2.adb: Recognize RM specially in errout
11871         Change 'R'M to RM in all error messages
11872
11873         * scng.adb: Recognize RM specially in errout
11874
11875         * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
11876         N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
11877
11878         * s-direio.adb: Add missing routine header box.
11879
11880         * sem_attr.ads: Add ??? comments
11881
11882         * sem_eval.adb: Recognize RM specially in errout
11883         Change 'R'M to RM in all error messages
11884
11885         * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
11886
11887         * s-tasinf.ads: Fix minor comment typo.
11888
11889         * a-cihama.adb: Minor comment addition
11890
11891         * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
11892         formal
11893
11894         * s-tasinf-tru64.ads: Fix minor comment typo.
11895
11896         * itypes.ads: Comment update.
11897
11898         * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
11899         anymore.
11900
11901         * argv.c: Added protection against null gnat_argv and gnat_envp.
11902
11903         * bcheck.adb (Check_Consistency): Use correct markup character ({) in
11904         warning message when Tolerate_Consistency_Errors is True.
11905
11906         * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
11907         Any_Id, as this subprogram is only applicable to *type* entities (it
11908         sets RM_Size). Instead initialize just Esize and Alignment.
11909
11910 2007-08-14  Bob Duff  <duff@adacore.com>
11911
11912         * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
11913         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
11914         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
11915         a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
11916         a-coorse.ads (Next): Applied pragma Inline.
11917         Make all Containers packages Remote_Types (unless they are already
11918         Pure).
11919         (Previous): applied pragma Inline
11920         (Elements_Type): is now a record instead of an array
11921
11922 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11923
11924         * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
11925         of Set_Item.
11926         (Set_Item): When the new item is an element of the currently allocated
11927         table passed by reference, save a copy on the stack if we're going
11928         to reallocate. Also, in Table.Set_Item, make sure we test the proper
11929         variable to determine whether to call Set_Last.
11930
11931         * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
11932         symbols-vms.adb, symbols-processing-vms-alpha.adb,
11933         symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
11934         some occurrences of the pattern
11935            T.Increment_Last;
11936            T.Table (T.Last) := Value;
11937         with a cleaner call to
11938            T.Append (Value);
11939
11940 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11941             Gary Dismukes  <dismukes@adacore.com>
11942             Thomas Quinot  <quinot@adacore.com>
11943
11944         * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
11945         derived type with interface progenitors use the analyzed formal as the
11946         parent of the actual, to create renamings for all the inherited
11947         operations in Derive_Subprograms.
11948         (Collect_Previous_Instances): new procedure within of
11949         Load_Parent_Of_Generic, to instantiate all bodies in the compilation
11950         unit being loaded, to ensure that the generation of global symbols is
11951         consistent in different compilation modes.
11952         (Is_Tagged_Ancestor): New function testing the ancestor relation that
11953         takes progenitor types into account.
11954         (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
11955         traversing over the primitives of the formal and actual types to locate
11956         any abstract subprograms of the actual type that correspond to a
11957         nonabstract subprogram of the formal type's ancestor type(s), and issue
11958         an error if such is found.
11959         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
11960         Instantiate_Package_Body, Instantiate_Subprogram_Body):
11961         Remove bogus guard around calls to Inherit_Context.
11962         (Reset_Entity): If the entity is the selector of a selected component
11963         that denotes a named number, propagate constant-folding to the generic
11964         template only if the named number is global to the generic unit.
11965         (Set_Instance_Env): Only reset the compilation switches when compiling
11966         a predefined or internal unit.
11967
11968 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11969
11970         * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
11971         parameter to determine whether operation applies to the prefix.
11972         (Complete_Object_Operation): If actual has an access type and
11973         controlling formal is not an in_parameter, reject the actual if it is
11974         an access_to_constant type.
11975         (Try_Primitive_Operation): If the type of the prefix is a formal tagged
11976         type, the candidate operations are found in the scope of declaration of
11977         the type, because the type has no primitive subprograms.
11978         (Analyze_Selected_Component): If prefix is class-wide, and root type is
11979         a private extension, only examine visible components before trying to
11980         analyze as a prefixed call.
11981         Change Entity_List to Type_To_Use, for better readability.
11982         (Has_Fixed_Op): Use base type when checking whether the type of an
11983         operator has a user-defined multiplication/division
11984         (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
11985         user-defined operators are available for fixed-point types.
11986
11987 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11988             Ed Schonberg  <schonberg@adacore.com>
11989
11990         * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
11991         formal At_Any_Place indicating, when True, that we want to test for
11992         availability of the stream attribute at any place (as opposed to the
11993         current visibility context only).
11994         (Missing_Read_Write_Attributes): A stream attribute is missing for the
11995         purpose of enforcing E.2.2(8) only if it is not available at any place.
11996         Take into account the Ada2005 pragma Has_Preelaborable_Initialization
11997         when checking the legality of an extension aggregate in a preelaborable
11998         package. Treat the literal null as a valid default expression in a
11999         component declaration for a type with preelaborable initialization.
12000         A limited interface is a legal progenitor for the designated type of a
12001         remote access to class-wide type.
12002
12003 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12004             Ed Schonberg  <schonberg@adacore.com>
12005
12006         * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
12007         reference): Use correct entity as denoted entity for the selector of
12008         the rewritten node.
12009         (Find_Direct_Name): Add comment about Generate_Reference incorrectly
12010         setting the Referenced_As_LHS flag for entities that are implicitly
12011         dereferenced.
12012         (Find_Type): If the type is an internally generated incomplete type,
12013         mark the full view as referenced, to prevent spurious warnings.
12014         (Find_Selected_Component, Has_Components): Handle properly non-limited
12015         views that are themselves incomplete types.
12016         Handle interfaces visible through limited-with clauses.
12017         (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
12018         subprogram generic actual for which we have generated a renaming.
12019         Warn when the renaming introduces a homonym of
12020         the renamed entity, and the renamed entity is directly visible.
12021
12022 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
12023             Hristian Kirtchev  <kirtchev@adacore.com>
12024
12025         * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
12026         appear in the subtree to the current allocator if it is not a static
12027         coextension.
12028         (Resolve_Allocator): Perform cleanup if resolution has determined that
12029         the allocator is not a coextension.
12030         (Resolve): Skip an interpretation hidden by an abstract operator only
12031         when the type of the interpretation matches that of the context.
12032         (Resolve): When looping through all possible interpretations of a node,
12033         do not consider those that are hidden by abstract operators.
12034         (Resolve_Actuals): When verifying that an access to class-wide object
12035         is an actual  for a controlling formal, ignore anonymous access to
12036         subprograms whose return type is an access to class_wide type.
12037         (Resolve_Slice): If the prefix of the slice is a selected component
12038         whose type depends on discriminants, build its actual subtype before
12039         applying range checks on the bounds of the slice.
12040         (Valid_Conversion): In an instance or inlined body, compare root types,
12041         to prevent anomalies between private and public views.
12042         (Resolve): Improve error message for ambiguous fixed multiplication
12043         expressions that involve universal_fixed multiplying operations.
12044
12045 2007-08-14  Javier Miranda  <miranda@adacore.com>
12046             Hristian Kirtchev  <kirtchev@adacore.com>
12047
12048         * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
12049         location to allow the correct generation of errors in case of
12050         restrictions applied to the expanded code.
12051         (Expand_Entry_Barrier): Remove all generated renamings for a barrier
12052         function if the condition does not reference them.
12053         (Expand_Entry_Body_Declarations): Mark the index constant as having a
12054         valid value.
12055
12056 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12057             Pablo Oliveira  <oliveira@adacore.com>
12058
12059         * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
12060         typecode parameters for a union (in a variant record), remove
12061         extraneous layer of Any wrapping for member label.
12062         (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
12063         elabration statements, register the package with the name server
12064         at the beginning, not at the end, of the elaboration statements so
12065         that they can create remote access to subprogram values that designate
12066         remote subprograms from the package.
12067
12068 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
12069
12070         * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
12071         values to compute the number of seconds since the Unix Epoc in order to
12072         account for Daylight Savings Time. Perform special processing for dates
12073         that are earlier than the Unix Epoc to obtain a negative number.
12074
12075 2007-08-14  Emmanuel Briot  <briot@adacore.com>
12076
12077         * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
12078         switches.
12079
12080 2007-08-14  Eric Botcazou  <ebotcazou@adacore.com>
12081
12082         * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
12083         binder-generated file is not in Ada.
12084         Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
12085         recorded in the ALI file.
12086         Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
12087
12088 2007-08-14  Vincent Celier  <celier@adacore.com>
12089
12090         * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
12091         (Output_Source): Do nothing if parameter is No_Sdep_Id
12092
12093         * make.adb (Gnatmake): Do not rebuild an archive simply because a
12094         shared library it imports has a later time stamp.
12095         (Check): Resolve the symbolic links in the path name of the object
12096         directory.
12097         Check that the ALI file is in the correct object directory
12098         Check if a file name does not correspond to the mapping of units
12099         to file names.
12100         (Display_Version): New procedure
12101         (Initialize): Process switches --version and --help
12102         Use type Path_Name_Type for path name
12103
12104 2007-08-14  Paul Hilfinger  <hilfinger@adacore.com>
12105
12106         * impunit.adb: Re-organize System.Random_Numbers and
12107         GNAT.Random_Numbers and add to builds.
12108
12109         * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
12110
12111         * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
12112
12113         * a-assert.ads, a-assert.adb: New files.
12114
12115 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
12116
12117         * layout.adb (Layout_Type): In the case of access-to-subprogram types,
12118         if AAMP_On_Target is True, then the size of the type encompasses two
12119         addresses (a static link and a subprogram address), except in the case
12120         of library-level access types.
12121
12122 2007-08-14  Vincent Celier  <celier@adacore.com>
12123
12124         * output.ads, output.adb (Write_Eol): Remove trailing spaces before
12125         writing the line.
12126         (Write_Eol_Keep_Blanks): New procedure to write a line, including
12127         possible trailing spaces.
12128         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
12129
12130 2007-08-14  Javier Miranda  <miranda@adacore.com>
12131
12132         * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
12133         null-excluding access types.
12134
12135 2007-08-14  Javier Miranda  <miranda@adacore.com>
12136
12137         * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
12138         that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
12139         of private types add missing check on matching interfaces in the
12140         partial and full declarations.
12141         (Analyze_Protected_Type): Code cleanup.
12142         (Analyze_Task_Type): Code cleanup.
12143
12144 2007-08-14  Javier Miranda  <miranda@adacore.com>
12145
12146         * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
12147         generated interface thunk.
12148
12149 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
12150
12151         * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
12152         obsolescent warning on application of 'Class to an incomplete type.
12153
12154         * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
12155         prevent obsolescent warning on application of 'Class to an incomplete
12156         type.
12157
12158 2007-08-14  Pascal Obry  <obry@adacore.com>
12159
12160         * s-fileio.adb (Is_Open): Add check for usability of the underlying
12161         file stream.
12162
12163 2007-08-14  Cyrille Comar  <comar@adacore.com>
12164
12165         * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
12166         since it is potentially used in cases implying double finalization of
12167         the same object.
12168
12169 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
12170
12171         * s-tasini.adb (Get_Stack_Info): Move this function to
12172         System.Soft_Links.Tasking because it is common to the full and the
12173         restricted run times.
12174         (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
12175         in SSL.Tasking.Init_Tasking_Soft_Links.
12176
12177         * s-solita.adb (Get_Stack_Info): Function moved from
12178         System.Tasking.Initialization because it is common to the full and the
12179         restricted run times.
12180         (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
12181
12182 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
12183
12184         * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
12185         s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
12186         (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
12187         parameter.
12188
12189         * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
12190         guard to 12K.
12191
12192 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
12193
12194         * s-veboop.adb (SU): New named number initialized to
12195         System.Storage_Unit.
12196         (True_Val): The initialization expression is revised to use SU (=
12197         Storage_Unit) rather than assuming 8 for the component size of an
12198         unpacked Boolean array.
12199
12200 2007-08-14  Tristan Gingold  <gingold@adacore.com>
12201
12202         * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
12203
12204         * tb-ivms.c: New file.
12205
12206         * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
12207
12208 2007-08-14  Geert Bosch  <bosch@adacore.com>
12209
12210         * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
12211         s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
12212         Add required linker pragmas for automatically linking with the gnalasup
12213         linear algebra support library, and the systems math library.
12214         Rename cdot to cdotu and zdot to zdotu.
12215         Update header comment to describe purpose of package.
12216
12217 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12218
12219         * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
12220         an explicitly specified Associated_Final_Chain, use that list.
12221         (Expand_N_Package_Body): Build dispatch tables of library level tagged
12222         types.
12223         (Expand_N_Package_Declaration): Build dispatch tables of library level
12224         tagged types. Minor code cleanup.
12225
12226 2007-08-14  Vincent Celier  <celier@adacore.com>
12227
12228         * gnatchop.adb (Terminate_Program): Remove exception and use
12229         Types.Terminate_Program instead.
12230
12231         * osint.ads, osint.adb (Current_Exit_Status): New global variable
12232         (Find_Program_Name): Added protection against empty name.
12233         (OS_Exit_Through_Exception): New procedure
12234
12235         * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
12236         (OS_Exit_Default): New procedure that contains the previous
12237         implementation of procedure OS_Exit.
12238         (Final_Value): Remove obsolete Interix stuff.
12239
12240 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12241
12242         * g-socket.ads: Reorganize example code so that it also works on
12243         Windows XP.
12244
12245 2007-08-14  Tristan Gingold  <gingold@adacore.com>
12246
12247         * g-trasym.ads: AIX now supports symbolic backtraces.
12248
12249 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
12250
12251         * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
12252         units being loaded to detect circularities. A circularity may be
12253         present even if the current chain of pending units to load starts from
12254         a limited_with_clause.
12255
12256         * lib-load.ads: Change profile of Load_Unit to use a with_clause
12257         rather than a boolean flag, in order to detect circularities in
12258         with_clauses.
12259
12260         * par-load.adb: Use current with_clause in calls to Load_Unit, rather
12261         than propagating the From_Limited_With flag, in order to handle
12262         properly circularities involving with_clauses.
12263
12264 2007-08-14  Nicolas Setton  <setton@adacore.com>
12265
12266         * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
12267         warnings.
12268
12269 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
12270
12271         * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
12272         to build for libgnala.
12273         libgnat: Add rules to build libgnala.a
12274         (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
12275         target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
12276         Add s-osinte-vxworks-kernel.adb to the target pairs of the
12277         kernel run-time lib for VxWorks 6, which would provide a different
12278         implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
12279         x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
12280         running ZCX by default.
12281         Add g-sttsne-locking to LynxOS version.
12282         Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
12283         On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
12284
12285         * system-darwin-x86.ads: New file.
12286
12287         * Make-lang.in: Delete files before copying onto them, so if they are
12288         read-only, the copy won't fail.
12289         Update dependencies
12290
12291 2007-08-14  Pascal Obry  <obry@adacore.com>
12292
12293         * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
12294         naming scheme.
12295
12296 2007-08-14  Vincent Celier  <celier@adacore.com>
12297
12298         * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
12299         (Gcc): Initialize Gcc_Name at the first call
12300
12301 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
12302
12303         * sem_ch7.adb (Analyze_Package_Specification): Do not install private
12304         with_clauses of the enclosing unit when analyzing the package
12305         specification of a nested instance.
12306
12307 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
12308
12309         * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
12310         (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
12311         Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
12312         layout of N_Allocator.
12313
12314 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12315
12316         * rtsfind.adb (Check_RPC): Add PCS version check.
12317
12318         * gnatvsn.ads, gnatvsn.adb: Add PCS version.
12319         (Gnat_Free_Software): New function.
12320
12321         * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
12322         the PCS_Version value from s-parint, used to check that it is consistent
12323         with what exp_dist expects.
12324
12325         * s-parint.ads (PCS_Version): New entity for checking consistency
12326         between exp_dist and PCS.
12327
12328         * gen-soccon.c: (SO_REUSEPORT): New constant.
12329
12330 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
12331
12332         * a-calfor.adb (Image (Duration; Boolean)): Change type of local
12333         variable Sub_Second to Duration in order to accomodate a larger range
12334         of arithmetic operations.
12335
12336 2007-08-14  Bob Duff  <duff@adacore.com>
12337
12338         * g-sttsne-locking.ads: Move comments from spec to body.
12339         * g-sttsne-locking.adb: Move comments from spec to body.
12340         * g-sttsne-vxworks.ads: Removed.
12341         * g-sttsne-vxworks.adb: Removed.
12342
12343 2007-08-11  Ian Lance Taylor  <iant@google.com>
12344
12345         * misc.c (gnat_get_alias_set): Change return type to
12346         alias_set_type.
12347
12348 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12349
12350         * decl.c, utils2.c: Fix whitespace in last change.
12351
12352 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12353
12354         * decl.c (compare_field_bitpos): Constify.
12355         * utils2.c (compare_elmt_bitpos): Likewise.
12356
12357 2007-07-27  Aurelien Jarno  <aurelien@aurel32.net>
12358
12359         * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
12360         anonymous access type.
12361         (pthread_sigmask): Now take an access sigset_t.
12362
12363 2007-07-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
12364
12365         * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
12366
12367 2007-06-21  Eric Botcazou  <ebotcazou@adacore.com>
12368
12369         PR tree-optimization/25737
12370         * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
12371
12372 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12373
12374         * trans.c (Attribute_to_gnu): When subtracting an
12375         offset from a pointer, use POINTER_PLUS_EXPR with
12376         NEGATE_EXPR instead of MINUS_EXPR.
12377         (gnat_to_gnu): Likewise.
12378         * utils.c (convert): When converting between
12379         thin pointers, use POINTER_PLUS_EXPR and sizetype
12380         for the offset.
12381         * utils2.c (known_alignment): POINTER_PLUS_EXPR
12382         have the same semantics as PLUS_EXPR for alignment.
12383         (build_binary_op): Add support for the semantics of
12384         POINTER_PLUS_EXPR's operands.
12385         When adding an offset to a pointer, use POINTER_PLUS_EXPR.
12386
12387 2007-06-11  Rafael Ávila de Espíndola  <espindola@google.com>
12388
12389         * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
12390         of get_signed_or_unsigned_type.
12391         * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
12392
12393 2007-06-11  Bob Duff  <duff@adacore.com>
12394             Thomas Quinot  <quinot@adacore.com>
12395
12396         * g-stsifd-sockets.adb (Create): Work around strange behavior of
12397         'bind' on windows that causes 'connect' to fail intermittently, by
12398         retrying the 'bind'.
12399         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12400
12401 2007-06-10  Duncan Sands  <baldrick@free.fr>
12402
12403         * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
12404         than to void, for the fields when making a new fat pointer type.
12405         (gnat_substitute_in_type): Now substitute_in_type.
12406         * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
12407         * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
12408         * utils.c (update_pointer_to): Update fat pointers by updating the
12409         dummy node pointers used for the fields.
12410
12411 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12412             Bob Duff  <duff@adacore.com>
12413
12414         * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
12415         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
12416         g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
12417         constant Thread_Blocking_IO, always True by default, set False
12418         on a per-runtime basis.
12419         (Need_Netdb_Buffer): New constant.
12420
12421         * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
12422         g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
12423         files.
12424
12425         * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
12426         g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
12427         Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
12428         child package Task_Safe_NetDB
12429         (Host_Error_Messages): Add stub body.
12430         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12431
12432         * g-soccon-mingw.ads: Add Windows-specific constants.
12433         (Need_Netdb_Buffer): New constant.
12434         (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
12435         wrapper and import inet_addr(3) from the standard sockets library
12436         directly instead.
12437         (In_Addr): Add alignment clause.
12438         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12439
12440 2007-06-06  Robert Dewar  <dewar@adacore.com>
12441
12442         * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
12443         s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
12444         s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
12445         s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
12446         s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
12447         s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
12448         a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
12449         a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
12450         a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
12451         g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
12452         g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
12453         i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
12454         s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
12455         s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
12456         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
12457         s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
12458         s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
12459         s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
12460         s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
12461         s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
12462         s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
12463         s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
12464         s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
12465         s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
12466         s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
12467         s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
12468         s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
12469         s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
12470         s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
12471         s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
12472         s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
12473         a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
12474         Unchecked_* by Ada.Unchecked_*
12475
12476 2007-06-06  Robert Dewar  <dewar@adacore.com>
12477
12478         * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
12479         s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
12480         g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
12481         output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
12482         g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
12483         a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
12484
12485         * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
12486         s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
12487         s-tasloc.adb, s-tasloc.ads: New files.
12488
12489 2007-06-06  Bob Duff  <duff@adacore.com>
12490
12491         * g-expect-vms.adb:
12492         (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
12493         * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
12494         (Send_Signal, Close): Raise Invalid_Process if the process id is
12495         invalid.
12496         (Pattern_Matcher_Access): Is now a general access type to be able to
12497         use aliased string.
12498
12499 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12500             Arnaud Charlet  <charlet@adacore.com>
12501
12502         * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
12503         (SIGEMT is now used instead of SIGTERM on AIX).
12504
12505         * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
12506         (Time_Slice_Supported): Set to True.
12507         Use SIGEMT instead of SIGTERM as SIGADAABORT.
12508
12509 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
12510
12511         * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
12512         (Time, Time)): Use To_Relative_Time rather than manual calculation to
12513         express the bounds of Duration as Time. Raise Time_Error when the
12514         result is greater or equal to the higher bound of Duration (on the
12515         margin case).
12516         ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
12517         Ada_High_And_Leaps.
12518         ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
12519         Ada_High_And_Leaps.
12520         ("-" (Time, Time)): Reorder code.
12521         (All_Leap_Seconds): Removed.
12522         (Arithmetic_Operations.Add): Remove sign related kludge.
12523         (Arithmetic_Operations.Difference): Control the leaps seconds processing
12524         with flag Leap_Support.
12525         (Arithmetic_Operations.Subtract): Remove sign related kludge.
12526         (Check_Within_Time_Bounds): New procedure.
12527         (Clock): Control the leap seconds processing with flag Leap_Support.
12528         (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
12529         (Formatting_Operations.Split): Control the leap seconds processing with
12530         flag Leap_Support.
12531         (Formatting_Operations.Time_Of): Control the leaps seconds processing
12532         with flag Leap_Support. Adjust the year, month and day (if applicable)
12533         when the value of day seconds designates a new day.
12534         (Split): Use parameter associations for better readability. Integrate
12535         flag Is_Ada_05.
12536         (Time_Of): Use parameter associations for better readability. Integrate
12537         flag Is_Ada_05.
12538
12539         * a-calfor.adb (Split): Use parameter associations for better
12540         readability. Integrate flag Is_Ada_05.
12541         (Time_Of): Remove flag Leap_Checks. Use parameter associations for
12542         better readability. Integrate flag Is_Ada_05.
12543
12544 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12545
12546         * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
12547         s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
12548         s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
12549         s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
12550         s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
12551         s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
12552         s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
12553         s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
12554         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
12555         s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
12556         s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
12557         time when entering this routine to detect a backward clock setting
12558         (manual setting or DST adjustment), to avoid waiting for a longer delay
12559         than needed.
12560         (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
12561         Remove handling of deferred priority change, and replace by setting the
12562         task priority directly, as required by AI-188.
12563         Update comments.
12564         (Max_Task_Image_Length): New constant.
12565         Replace Warnings (Off) by Unreferenced pragma, cleaner.
12566         (Dynamic_Priority_Support): Removed, no longer needed.
12567         (Poll_Base_Priority_Change): Ditto.
12568         (Set_Ceiling): Add this procedure to change the ceiling priority
12569         associated to a lock. This is a dummy implementation because dynamic
12570         priority ceilings are not supported by the underlying system.
12571
12572         * a-dynpri.adb (Set_Priority): Take into account case where Target is
12573         accepting a RV with its priority boosted.
12574         Remove handling of deferred priority change, and replace by setting the
12575         task priority directly, as required by AI-188.
12576
12577         * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
12578         Succeeded = True.
12579         Remove handling of deferred priority change, and replace by setting the
12580         task priority directly, as required by AI-188.
12581         (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
12582         of Self_Id earlier.
12583
12584         * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
12585         (Poll_Base_Priority_Change): Removed.
12586         Code clean up: use SSL.Current_Target_Exception.
12587
12588         * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
12589         to run as this is a potentially dispatching point.
12590         (Call_Synchronous): Use Local_Defer_Abort.
12591         (Callable): Relax assertion.
12592         (Selective_Wait): Relax assertion in case abort is not allowed.
12593         Remove handling of deferred priority change, and replace by setting the
12594         task priority directly, as required by AI-188.
12595
12596         * s-tasuti.adb (Make_Passive): Adjust assertions.
12597         Remove handling of deferred priority change, and replace by setting the
12598         task priority directly, as required by AI-188.
12599
12600 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12601
12602         * system-vxworks-sparcv9.ads, system-solaris-x86.ads,
12603         system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
12604         system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
12605         system-vxworks-mips.ads, system-vxworks-alpha.ads,
12606         system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
12607         system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
12608         system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
12609         system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
12610         system-solaris-sparcv9.ads, system-vms.ads, system.ads,
12611         system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
12612         system-linux-ia64.ads: Document mapping between Ada and OS priorities.
12613         This patch changes the largest non-binary modulus from 2**31-1 to
12614         2**32-1.
12615         (Compiler_System_Version): Removed, no longer used.
12616         Clean up system files by removing flags only used on a single target.
12617         Also remove obsolete flags, only used during bootstrap from system.ads
12618         (Address): Add a pragma Preelaborable_Initialization.
12619
12620         * system-aix.ads:  Ditto.
12621         (GCC_ZCX_Support): Set to true.
12622         Update priority range on AIX and map Ada priorities to target
12623         priorities appropriately for different scheduling policies.
12624
12625         * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
12626
12627 2007-06-06  Vincent Celier  <celier@adacore.com>
12628
12629         * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
12630         mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
12631
12632         * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
12633         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
12634         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
12635         mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
12636         mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
12637         MLib.Tgt, containing the default versions of the exported subprograms.
12638         For each platform, create a specific version of the body of new child
12639         package MLib.Tgt.Specific that contains only the body of subprograms
12640         that are different from the default.
12641         (Archive_Builder_Append_Options): New function.
12642
12643 2007-06-06  Matthew Gingell  <gingell@adacore.com>
12644
12645         * s-osinte-aix.adb: Map Ada priorities to target priorities
12646         appropriately for different scheduling policies.
12647
12648 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12649
12650         * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
12651         its C counterpart.
12652         Remove references to Unchecked_Conversion, and use Ada.xxx instead.
12653         Replace Unchecked_Conversion by Ada.Unchecked_Conversion.
12654
12655 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
12656
12657         * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
12658         Noop on VMS, added for interface commonality.
12659
12660 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
12661             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12662             Olivier Hainque  <hainque@adacore.com>
12663
12664         * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
12665         renamed expression of a full renaming at toplevel.
12666         (gnat_to_gnu_entity, case object): If not defining, do not look inside
12667         the values the constant is initialized to if it is an N_Allocator.
12668         (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
12669         TYPE_SIZE_UNIT of inner types after the stride is elaborated.
12670         (make_aligning_type): Accept an extra ROOM argument for storage to be
12671         made available before the aligned field, and an extra BASE_ALIGN
12672         argument for callers to pass the alignment guaranteed to be honored for
12673         the whole aligning object. Avoid call to finish_record_type, which only
12674         interferes with the sizes we want to set.
12675         (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
12676         make_aligning_type for super-aligned objects on stack.
12677         (components_to_record): Pass the adjusted size of the type when creating
12678         fields in the qualified union for the variant part.
12679         (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
12680         (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
12681         packed array type.
12682         (maybe_pad_type): Set TYPE_USER_ALIGN.
12683         (make_aligning_type): Likewise.
12684         ALIGN argument is unsigned int.
12685         (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
12686         (gnat_to_gnu_param): Likewise, for parameters.
12687         (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
12688         if it is constant and stems from a function call.
12689         (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
12690         of the record is specified.  Adjust accordingly.
12691         (adjust_packed): New static function.
12692         (gnat_to_gnu_field): Use it to adjust the packedness setting.
12693         (components_to_record): Likewise.
12694         (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
12695         side-effects if the object is deemed constant.
12696         (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
12697         type instead of merely finalizing it.  Tidy.
12698         <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
12699         <E_Access_Type>: Likewise.
12700         (defer_debug_incomplete_list): Rename to defer_finalize_list.
12701         (defer_debug_level): Delete.
12702         (gnat_to_gnu_entity) <debug_deferred>: Likewise
12703         <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
12704         type.
12705         <E_Record_Type>: Do not explicitly defer finalizing the type.
12706         Adjust for write_record_type_debug_info renaming.
12707         <E_Subprogram_Type>: Likewise.
12708         Finalize deferred types right after deferred incomplete types are
12709         expanded.
12710         (rest_of_type_decl_compilation): New global function.
12711         (components_to_record): Rename defer_debug parameter to do_not_finalize.
12712         (components_to_record): Propagate the packedness to the fields of the
12713         qualified union type if there is a variant part.
12714         (gnat_to_gnu_entity) <E_Array_Type>: Use new function
12715         instead of inline code to adjust the XUT field offsets.
12716         (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
12717         <E_Record_Subtype>: Do not let finish_record_type compute the sizes
12718         and write the debug info if the type derives from a discriminated one.
12719         (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
12720         <E_Array_Subtype>: Likewise.
12721         <E_String_Literal_Subtype>: Likewise.
12722         (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
12723         an alignment clause.
12724         (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
12725         before giving warning.
12726         (prepend_one_attribute_to): New function, helper to prepend an attribute
12727         to an attribute list.
12728         (gnat_to_gnu_entity) <E_Procedure>: Use it.
12729         (prepend_attributes): Likewise.
12730         (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
12731         <E_Array_Type>: Declare the padding type for the element type, if any.
12732         <E_Array_Subtype>: Likewise.
12733         (defer_limited_with): New variable.
12734         (Gigi_Equivalent_Type): New function.
12735         (gnat_to_gnu_entity): Use it at start and use result throughout.
12736         (gnat_to_gnu_entity, case E_Access_Type): Rework to use
12737         Gigi_Equivalent_Type, support Limited_With, allow two levels of
12738         indirection, precompute if unconstrained array to simplify logic, and
12739         use defer_limited_with to defer elaboration of some types from limited
12740         with.
12741         (finalize_from_with_types): New function.
12742
12743 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
12744             Eric Botcazou  <ebotcazou@adacore.com>
12745             Tristan Gingold  <gingold@adacore.com>
12746             Olivier Hainque  <hainque@adacore.com>
12747
12748         * trans.c (Identifier_to_gnu): Change test for deferred constant by
12749         adding guard that the entity is an E_Constant before testing presence
12750         of Full_view (and remove unnecessary test that entity is not a type).
12751         For a CONST_DECL used by reference, manually retrieve
12752         the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
12753         (struct language_function): Move from utils.c to here.
12754         (struct parm_attr): New structure.
12755         (parm_attr, parm_attr vector, parm_attr GC vector): New types.
12756         (f_parm_attr_cache): New macro.
12757         (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
12758         expressions for the 'First, 'Last and 'Length attributes of the
12759         unconstrained array IN parameters.
12760         (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
12761         Allocate the information structure for the function earlier, as well
12762         as the language-specific part.
12763         If the parameter attributes cache has been populated, evaluate the
12764         cached expressions on entry.
12765         (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
12766         N_Procedure_Call_Statement and N_Indexed_Component.
12767         (Pragma_to_gnu): Translate inspection_point to an asm statement
12768         containaing a comment and a reference to the object (either its address
12769         for BLKmode or its value).
12770         (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
12771         to go to DECL_INITIAL. Together with the size constraint relaxation
12772         in create_var_decl, enlarges the set of situations in which an
12773         identifier may be used as an initializer without implying elaboration
12774         code.
12775         (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
12776         DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
12777         node.
12778         (maybe_stabilize_reference): Remove lvalues_only parameter.
12779         (gnat_stabilize_reference): Adjust for above change.
12780         (gnat_to_gnu): Do not set location information on the result
12781         if it is a reference.
12782         (add_cleanup): Add gnat_node parameter and set the location of the
12783         cleanup to it.
12784         (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
12785         (Exception_Handler_to_gnu_zcx): Likewise.
12786         (gigi): Remove the cgraph node if the elaboration procedure is empty.
12787         (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
12788         the former right after the latter.
12789         (start_stmt_group): Make global.
12790         (end_stmt_group): Likewise.
12791         (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
12792         vars.
12793         (gnu_program_error_label_stack): Likewise.
12794         (gigi): Initialize them.
12795         (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
12796         (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
12797         New cases.
12798         (push_exception_label_stack): New function.
12799         (takes_address): New function.
12800
12801         * utils.c (struct language_function): Move to trans.c from here.
12802         (unchecked_convert): Do not wrap up integer constants in
12803         VIEW_CONVERT_EXPRs.
12804         (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
12805         the latter for aggregate types, unexpected by later passes, and relax an
12806         arbitrary size constraint on the former.
12807         (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
12808         to compare the sizes.
12809         (convert_vms_descriptor): When converting to a fat pointer type, be
12810         prepared for a S descriptor at runtime in spite of a SB specification.
12811         (shift_unc_components_for_thin_pointers): New function.
12812         (write_record_type_debug_info): For variable-sized fields, cap the
12813         alignment of the pointer to the computed alignment.
12814         (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
12815         If REP_LEVEL is 2, do not compute the sizes.
12816         (build_vms_descriptor): Adjust for new prototype of finish_record_type.
12817         (build_unc_object_type): Likewise.
12818         (declare_debug_type): New function.
12819
12820         * ada-tree.def: USE_STMT: removed (not emitted anymore).
12821
12822         * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
12823         no statement is expandable anymore.
12824         (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
12825         (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
12826         when the user requested it explicitely.
12827         (gnat_post_options): By default, set flag_eliminate_unused_debug_types
12828         to 0 for Ada.
12829         (get_alias_set): Return alias set 0 for a type if
12830         TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
12831
12832         * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
12833         (DECL_FUNCTION_STUB): New accessor macro.
12834         (SET_DECL_FUNCTION_STUB): New setter macro.
12835
12836         * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
12837
12838         * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
12839         declarations.
12840
12841 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
12842
12843         * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
12844         Rename to Abort_Task_Interrupt to be able to keep the same interface
12845         as the rest of the targets.
12846
12847         * s-osinte-vxworks.ads s-osinte-vxworks.adb
12848         (To_VxWorks_Priority): Remove explicit "in" mode indicator
12849
12850         * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
12851         New files.
12852
12853 2007-06-06  Robert Dewar  <dewar@adacore.com>
12854
12855         * a-chahan.ads: Remove obsolescent pragmas
12856
12857         * a-chlat1.ads: Minor reformatting
12858
12859 2007-06-06  Robert Dewar  <dewar@adacore.com>
12860
12861         * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
12862         for Errout
12863
12864         * errout.adb: New Finalize/Compilation_Errors/Output_Messages
12865         implementation
12866
12867         * errout.ads (Finalize): Changed interface
12868         (Output_Messages): New procedure
12869         (Compilation_Errors): New Interface
12870
12871         * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
12872         Finalize/Output_Messages interface for Errout
12873         (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
12874         Errout.
12875
12876 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12877             Olivier Hainque  <hainque@adacore.com>
12878             Robert Dewar  <dewar@adacore.com>
12879
12880         * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
12881         check.
12882         (Raise_Current_Excep): Call Debug_Raise_Exception just before
12883         propagation starts, to let debuggers know about the event in a reliable
12884         fashion.
12885         (Local_Raise): Moved to System.Exceptions
12886         More convenient to have this as a separate unit
12887
12888         * s-except.adb, s-except.ads: New files.
12889
12890         * a-exextr.adb (Unhandled_Exception): Delete - replaced by
12891         Debug_Unhandled_Exception in System.Exceptions where it belongs
12892         together with a couple of other debug helpers.
12893         (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
12894         the former Unhandled_Exception.
12895
12896         * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
12897         (Warn_No_Exception_Propagation): New procedure
12898         (Warn_If_No_Propagation): Rewritten for new warning generation
12899         (Expand_Exception_Handlers): New warning generation
12900         (Expand_N_Raise_xxx_Error): Rewritten for new warnings
12901         (Add_Exception_Label): Use Special_Exception_Package_Used for test
12902         instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
12903         (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
12904         even if restriction is set (makes life easier in Check_Returns)
12905         (Expand_Local_Exception_Handlers): Follow renamed entity chain when
12906         checking exception identities.
12907         (Expand_Local_Exception_Handlers): Do not optimize when all others case
12908         (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
12909         block for handler (used by Check_Returns)
12910         (Expand_Local_Exception_Handlers): Local_Raise now takes an address
12911         (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
12912         remove all exception handlers when optimizing local raise statements.
12913         (Find_Local_Handler): Use Get_Renamed_Entity
12914         (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
12915         marked analyzed after expanding exception handlers, do not generate
12916         redundant cleanup actions, because they have been constructed already.
12917
12918 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12919
12920         * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
12921         presence of this categorization pragma is mandated by the language.
12922         (Limited_Controlled): Add missing pragma Preelaborable_Initialization
12923         for this type.
12924
12925 2007-06-06  Vincent Celier  <celier@adacore.com>
12926             Robert Dewar  <dewar@adacore.com>
12927
12928         * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
12929         butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
12930         err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
12931         fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
12932         lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
12933         makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
12934         par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
12935         prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
12936         prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
12937         sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
12938         uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
12939         ali.ads, ali.adb:
12940         Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
12941         package Namet. Make File_Name_Type and Unit_Name_Type types derived from
12942         Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
12943         Use variables of types File_Name_Type and Unit_Name_Type in error
12944         messages.
12945         (Get_Name): Add parameter Ignore_Special, and set it reading file name
12946         (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
12947         here.
12948         Define flags Flag217-Flag230 with associated subprograms
12949         (Flag_Word5): New record type.
12950         (Flag_Word5_Ptr): New access type.
12951         (To_Flag_Word5): New unchecked conversion.
12952         (To_Flag_Word5_Ptr): Likewise.
12953         (Flag216): New function.
12954         (Set_Flag216): New procedure.
12955
12956 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12957
12958         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
12959         instead of 'Size.
12960
12961         * a-stwifi.ads, a-stzfix.ads: Minor reformatting
12962
12963 2007-06-06  Javier Miranda  <miranda@adacore.com>
12964
12965         * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
12966         the package.
12967         (Object_Specific_Data_Array): This is now internal to the package.
12968         (Object_Specific_Data): This is now internal to the package.
12969         (Select_Specific_Data_Element): This is now internal to the package.
12970         (Select_Specific_Data_Array): This is now internal to the package.
12971         (Select_Specific_Data): This is now internal to the package.
12972         (Offset_To_Top_Function_Ptr): This is now public.
12973         (To_Offset_To_Top_Function_Ptr): Removed.
12974         (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
12975          local to subprogram Offset_To_Top.
12976         (Predefined_DT): Removed.
12977         (Typeinfo_Ptr): Removed.
12978         (OSD): This function is now internal to this package.
12979         (SSD): This function is now internal to this package.
12980         (DT): New function that displaces the pointer to the table of primitives
12981          to get access to the enclosing wrapper record.
12982         (IW_Membership): Code cleanup.
12983         (Offset_To_Top): Code cleanup.
12984         (Predefined_DT): Removed.
12985         (Register_Interface_Tag): Removed.
12986         (Set_Interface_Table): Removed.
12987         (Set_Offset_Index): Removed.
12988         (Set_Offset_To_Top): Code cleanup.
12989         (Set_OSD): Removed.
12990         (Set_Signature): Removed.
12991         (Set_SSD): Removed.
12992         (Set_Tagged_Kind): Removed.
12993         (Typeinfo_Ptr): Removed.
12994         (TSD): Removed.
12995         (Displace): Add missing check on null actual.
12996
12997         * exp_disp.ads, exp_disp.adb
12998         (Select_Expansion_Utilities): Removed.
12999         (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
13000         (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
13001         the interface requires a new parameter.
13002         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
13003         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
13004         calls to subprograms Build_T, Build_S, etc. by the corresponding code.
13005         Done to remove package Select_Expansion_Utilities.
13006         (Make_DT): New implementation for statically allocated dispatch tables.
13007         (Make_Secondary_DT): Moved to the scope of Make_DT.
13008         (Register_Primitive): Code cleanup plus incoporate the use of the new
13009         function DT_Address_Attribute.
13010         (Expand_Interface_Thunk): The profile of this subprogram has been
13011         changed to return the Thunk_Id and the corresponding code.
13012         (Fill_DT_Entry): Removed. Its functionality is now provided by
13013         subprogram Register_Primitive.
13014         (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
13015         subprogram Register_Primitive.
13016         (Register_Primitive): New subprogram that incorporates the previous
13017         functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
13018         (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
13019         was only required to call Make_DT_Access_Action, which is now removed.
13020         (Ada_Actions): Removed
13021         (Action_Is_Proc): Removed
13022         (Action_Nb_Arg): Removed
13023         Replace all the calls to Make_DT_Access_Action by direct calls to
13024         Make_Procedure_Call_Statement or Make_Function_Call.
13025         (Set_DTC_Entity_Value): New subprogram.
13026         (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
13027         (Expand_Interface_Thunk): Add missing support for primitives that are
13028         functions with a controlling result (case in which there is no need
13029         to generate the thunk).
13030
13031         * exp_atag.ads, exp_atag.adb
13032         (Build_DT): New subprogram that displaces the pointer to reference the
13033         base of the wrapper record.
13034         (Build_Typeinfo_Offset): Removed.
13035         (RTE_Tag_Node): Removed.
13036         (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
13037         (Build_Get_RC_Offset): Removed.
13038         (Build_Inherit_Predefined_Prims): Removed.
13039         (Build_Inherit_TSD: Removed.
13040         (Build_New_TSD): Removed.
13041         (Build_Set_External_Tag): Removed.
13042         (Build_Set_Predefined_Prim_Op_Address): Add documentation.
13043         (Build_Set_Prim_Op_Address): Add documentation.
13044         (Build_Set_TSD): Removed.
13045
13046         * rtsfind.ads, rtsfind.adb
13047         (Load_Fail): If load fails and we are not in configurable run-time
13048         mode, then raise Unrecoverable_Error.
13049         (Text_IO_Kludge): Generate an error message if a run-time library is
13050         not available in a given run-time (ie. zfp run-time).
13051         (RTE_Record_Component): Add code to check that the component we search
13052         for is not found in two records in the given run-time package.
13053         (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
13054         (RE_DT_Predef_Prims_Offset): New entity
13055         (RE_Static_Offset_To_Top): New entity
13056         (RE_HT_Link): New entity.
13057         (System_Address_Image): Addition of this run-time package.
13058         (RE_Address_Image): New entity.
13059         (RE_Abstract_Interface): Removed.
13060         (RE_Default_Prim_Op_Count): Removed.
13061         (RE_DT_Entry_Size): Removed.
13062         (RE_DT_Min_Prologue_Size): Removed.
13063         (RE_DT_Prologue_Size): Removed.
13064         (RE_Ifaces_Table_Ptr): Removed.
13065         (RE_Interface_Data_Ptr): Removed.
13066         (RE_Type_Specific_Data): Removed.
13067         (RE_Primary_DT): Removed.
13068         (RE_Register_Interface_Tag): Removed.
13069         (RE_Set_Offset_Index): Removed.
13070         (RE_Set_OSD): Removed.
13071         (RE_Set_SSD): Removed.
13072         (RE_Set_Signature): Removed.
13073         (RE_Set_Tagged_Kind): Removed.
13074         (RE_Address_Array): New entity.
13075         (RE_DT): New entity.
13076         (RE_Iface_Tag): New entity.
13077         (RE_Interfaces_Table): New entity.
13078         (RE_No_Dispatch_Table): New entity.
13079         (RE_NDT_Prims_Ptr): New entity.
13080         (RE_NDT_TSD): New entity.
13081         (RE_Num_Prims): New entity.
13082         (RE_Offset_To_Top_Function_Ptr): New entity.
13083         (RE_OSD_Table): New entity.
13084         (RE_OSD_Num_Prims): New entity.
13085         (RE_Predef_Prims): New entity
13086         (RE_Predef_Prims_Table_Ptr): New entity.
13087         (RE_Primary_DT): New entity.
13088         (RE_Signature): New entity.
13089         (RE_SSD): New entity.
13090         (RE_TSD): New entity.
13091         (RE_Type_Specific_Data): New entity.
13092         (RE_Tag_Kind): New entity.
13093
13094 2007-06-06  Thomas Quinot  <quinot@adacore.com>
13095
13096         * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
13097         C imported variable.
13098         (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
13099         on entry.
13100
13101 2007-06-06  Robert Dewar  <dewar@adacore.com>
13102
13103         * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
13104         character
13105
13106 2007-06-06  Vincent Celier  <celier@adacore.com>
13107
13108         * a-tifiio.adb (Put, internal): For negative numbers, check that there
13109         is room for at least one digit and the minus sign.
13110         (Put.Put_Character): Never put a character outside of the range of
13111         string To.
13112
13113 2007-06-06  Olivier Hainque  <hainque@adacore.com>
13114             Eric Botcazou  <ebotcazou@adacore.com>
13115
13116         * utils2.c (build_allocator): Provide the extra arguments to
13117         make_aligning_type for super-aligned objects allocated from the default
13118         pool. Leave enough room for a pointer before the aligning field, and
13119         store the system's allocator return value there.
13120         (build_call_alloc_dealloc): When releasing a super-aligned object,
13121         retrieve the system's allocator return value from where build_allocator
13122         has stored it, just ahead of the adjusted address we are passed.
13123         (build_call_raise): Handle properly the generation of line numbers when
13124         the node is marked No_Location.
13125         (compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
13126         by using DECL_UID on ties.
13127         (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
13128         main variant.
13129         (build_call_raise): Handle converting exception into goto; support new
13130         argument KIND.
13131         (build_component_ref): Add new arg to build_call_raise.
13132
13133 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
13134
13135         * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
13136         "." in the case of nnn.xxx when nnn terminates with an underscore.
13137         Parse the remaining "#" or ":" in the case of nnn#.xxx#
13138
13139 2007-06-06  Robert Dewar  <dewar@adacore.com>
13140
13141         * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
13142
13143 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
13144             Vincent Celier  <celier@adacore.com>
13145             Robert Dewar  <dewar@adacore.com>
13146
13147         * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
13148         needed.
13149         (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
13150         ((destructor)) for adafinal, even when switch -a is used.
13151         Do not issue pragma Linker_Destructor for adafinal when switch -a is
13152         used.
13153         (Gen_Object_Files_Options): Add formatting of Linker Options, when
13154         Output_Linker_Option_List is set. Suppress this formatting when
13155         Zero_Formatting is set.
13156         Add case for CLI_Target.
13157         (System_Restrictions_Used): New flag, used to avoid generating with of
13158         System_Restrictions and initialization of the data unless there is
13159         some use of System.Restrictions in the partition.
13160         (Check_System_Restrictions_Used): New procedure
13161
13162         * s-stalib.adb: Remove with of System.Restrictions. No longer needed
13163         since we only with this unit in the binder file if it is used elsewhere
13164         in the partition.
13165
13166 2007-06-06  Vincent Celier  <celier@adacore.com>
13167
13168         * bindusg.adb: Add line for @<response file>
13169         Add lines for new switches -R and -Z
13170
13171         * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
13172         hierarchy in the list of files of the closure when -R is used
13173         (Gnatbind): Accept arguments starting with '@' to indicate response
13174         files and take the arguments from the response files.
13175         If List_Closure is set, display the referenced files
13176
13177 2007-06-06  Javier Miranda  <miranda@adacore.com>
13178             Robert Dewar  <dewar@adacore.com>
13179             Ed Schonberg  <schonberg@adacore.com>
13180
13181         * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
13182         which the address-clause is applied to in-mode actuals (allowed by
13183         13.1(22)).
13184         (Apply_Discriminant_Check): Do not generate a check if the type is
13185         constrained by a current instance.
13186         (Activate_Division_Check): New procedure
13187         (Activate_Overflow_Check): New procedure
13188         (Activate_Range_Check): New procedure
13189         Call these new Activate procedures instead of setting flags directly
13190         (Apply_Array_Size_Check): Removed, no longer needed.
13191         Code clean up: remove obsolete code related to GCC 2.
13192         (Get_E_Length): Protect against bomb in case scope is standard
13193         (Selected_Range_Checks): If the node to be checked is a conversion to
13194         an unconstrained array type, and the expression is a slice, use the
13195         bounds of the slice to construct the required constraint checks.
13196         Improve NOT NULL error messages
13197         (Apply_Constraint_Check): If the context is a null-excluding access
13198         type, diagnose properly the literal null.
13199
13200 2007-06-06  Pascal Obry  <obry@adacore.com>
13201
13202         * clean.adb (Clean_Archive): Use untouched casing for the archive name
13203         and the corresponding .deps file.
13204         (Clean_Interface_Copy_Directory): Use untouched casing for the library
13205         src directory. Minor code-clean-up. Use untouched casing for files
13206         read into the library src dir.
13207         (Clean_Library_Directory): Idem.
13208         (Parse_Cmd_Line): Accept new switch -aP
13209
13210 2007-06-06  Javier Miranda  <miranda@adacore.com>
13211             Ed Schonberg  <schonberg@adacore.com>
13212             Robert Dewar  <dewar@adacore.com>
13213             Eric Botcazou  <ebotcazou@adacore.com>
13214             Arnaud Charlet  <charlet@adacore.com>
13215
13216         * einfo.ads, einfo.adb (Available_View): New synthesized attribute
13217         applicable to types that have the With_Type flag set. Returns the
13218         non-limited view of the type, if available, otherwise the type itself.
13219         For class-wide types, there is no direct link in the tree, so we have
13220         to retrieve the class-wide type of the non-limited view of the Etype.
13221         New attributes Static_Initialization and Static_Elaboration_Desired.
13222         Remove the pragma Thread_Body, and the associated flag
13223         Is_Thread_Body in entities, and all related code.
13224         (Suppress_Value_Tracking_On_Call): New flag
13225         E_Exception has Esize and Alignment fields
13226         (Universal_Aliasing): New function.
13227         (Set_Universal_Aliasing): New procedure.
13228         (Write_Entity_Flags): Deal with Universal_Aliasing flag.
13229         (Check_Nested_Access): New procedure.
13230         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
13231         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
13232         (Related_Interface): New attribute. Present in dispatch table pointer
13233         components of records. Set to point to the entity of the corresponding
13234         interface type.
13235         (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
13236         (Original_Access_Type): Remove, not needed.
13237         (Root_Type): Handle properly subtypes of class-wide-types.
13238         Update comments.
13239
13240         * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
13241         class-wide types visible through limited-with clauses.
13242         (Try_Primitive_Operation): When examining all primitive operations of a
13243         tagged type, do not consider subprograms labeled as hidden unless they
13244         belong to a private generic type with a tagged parent.
13245         (Try_Object_Operation): Extensive rewriting, to handle properly various
13246         overloading cases, when several ancestors may have class-wide operations
13247         that are possible candidates, and when the overloaded functions return
13248         array types and have defaulted parameters so that the call may be
13249         interpreted as an indexing.
13250         (Analyze_Allocator): Remove Mark_Allocator and its invocation.
13251         (Process_Function_Call): use Next, rather than Next_Actual, to analyze
13252         successive actuals before analyzing the call itself.
13253         (Try_Primitive_Operation): A primitive operation is compatible with the
13254         prefix if the prefix has a synchronized type and the type of the formal
13255         is its corresponding record, as can be the case when the primitive
13256         operation is declared outside of the body of the type.
13257         (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
13258         perform homonym traversal, looking for class-wide operation matches
13259         (formerly done in statements of Try_Class_Wide_Operation). Matches on
13260         access parameters are now restricted to anonymous access types.
13261         (Mark_Allocator): An allocator with a discriminant association parent is
13262         a coextension.
13263         (Try_One_Prefix_Interpretation): If the type of the object is
13264         incomplete, as can be happen when it is a limited view obtained through
13265         a limited_with_clause, the selected component is not part of a prefixed
13266         call.
13267         (Complete_Object_Operation): Diagnose properly an object that is not
13268         aliased when the corresponding controlling formal is an access
13269         parameter.
13270         (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
13271         ambiguous calls in prefixed notation, where two primitives differ only
13272         in that the controlling argument of one is an access parameter.
13273
13274         * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
13275         whether a function that returns an unconstrained type can be inlined.
13276         (Process_Formals): Diagnose properly the illegal use of an incomplete
13277         type in the profile of an access_to_subprogram declaration.
13278         (Check_Synchronized_Overriding): Nothing check for concurrent types, the
13279         operations are attached to the corresponding record.
13280         (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
13281         When processing a primitive of a concurrent type which implements an
13282         interface change the type of all controlling formals to that of the
13283         corresponding record type.
13284         (Check_Synchronized_Overriding): Relax the conditional logic when trying
13285         to determine the tagged type to which a primitive belongs.
13286         (Check_Conventions): Capture condition to ignore a primitive operation
13287         (which is shared between the loop in Check_Conventions and the one in
13288         Check_Convention) in a new local function Skip_Check.
13289         (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
13290         confusion with Check_Conventions' own Prim_Op local variable.
13291         (Create_Extra_Formals): Test for a tagged result type rather than a
13292         controlling result when determining whether to add a BIP_Alloc_Form
13293         formal and a BIP_Final_List formal to the function.
13294         (Check_Conformance); For parameters that are anonymous access types,
13295         subtype conformance requires that the not null and the constant
13296         indicators must match
13297         (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
13298         to retrieve the appropriate type when processing a concurrent type
13299         declared within a generic. Minor comment reformatting. Change invocation
13300         of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
13301         mitive.
13302         (Analyze_Subprogram_Body): If the return type of a function is an
13303         anonymous access to the limited view of a class-wide type, and the
13304         non-limited view of the type is available, update the type of the
13305         function so that code can be generated.
13306         (Process_Formals): In case of access-subtype itype whose designated
13307         type is also an itype (situation that happens now with access to
13308         subprograms) we mark the access-type itype with the Has_Delayed_Freeze
13309         attribute to avoid backend problems.
13310         (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
13311         init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
13312         anonymous types' designated types are same before testing
13313         Subtypes_Statically_Match.
13314         (Create_Extra_Formals): Test for a named access parameter that is a
13315         controlling formal as an additional condition for adding an
13316         accessibility level formal. This can occur in the subp type created for
13317         dispatching calls in Expand_Dispatching_Call, and allows calling
13318         Create_Extra_Formals from that procedure rather than special-casing the
13319         extra formals there.
13320         (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
13321         when the function has a controlling result.
13322         (Check_Returns): Add much more knowledge of the optimization of local
13323         raise statements to gotos, to retain proper warnings in this case.
13324         (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
13325         nodes when looking for last statement.
13326
13327         * sem_type.ads, sem_type.adb (Specific_Type): Add support for
13328         class-wide types visible through limited with clauses.
13329         (Add_One_Interp): If the operands are anonymous access types, the
13330         predefined operator on universal_access is immediately visibles
13331         (Find_Unique_Type): Handle anonymous access to subprogram types just as
13332         other anonymous access types.
13333         (Disambiguate): Take into account CIL convention.
13334         (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
13335
13336 2007-06-06  Robert Dewar  <dewar@adacore.com>
13337
13338         * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
13339         sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
13340         elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
13341         Fix lower bound of tables.
13342         Add rep clauses.
13343
13344         * nlists.adb: Ditto.
13345         (Prev_Node, Next_Node): Change index type to Int so that it properly
13346         covers the range First_Node_Id - 1 up.
13347
13348 2007-06-06  Javier Miranda  <miranda@adacore.com>
13349             Ed Schonberg  <schonberg@adacore.com>
13350             Bob Duff  <duff@adacore.com>
13351             Hristian Kirtchev  <kirtchev@adacore.com>
13352
13353         * exp_aggr.ads, exp_aggr.adb:
13354         (Build_Record_Aggr_Code): Add missing initialization of secondary tags
13355         in extension aggregates.
13356         (Flatten): Other conditions being met, an aggregate is static if the
13357         low bound given by component associations is different from the low
13358         bound of the base index type.
13359         (Packed_Array_Aggregate_Handled): If the component type is itself a
13360         packed array or record, the front-end must expand into assignments.
13361         (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
13362         Init_Pr, instead of Ancestor_Is_Expression.
13363         (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
13364         coextension chain root, either generate a list controller or use the
13365         already existing one.
13366         (Static_Array_Aggregate): New procedure to construct a positional
13367         aggregate that can be handled by the backend, when all bounds and
13368         components are compile-time known constants.
13369         (Expand_Record_Aggregate): Force conversion of aggregates of tagged
13370         types covering interface types into assignments.
13371         (Replace_Type): move to Build_Record_Aggr_Code.
13372         (Expand_Record_Aggr_Code): if the target of the aggregate is an
13373         interface type, convert to the definite type of the aggregate itself,
13374         so that needed components are visible.
13375         (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
13376         components and the context is an extended return statement do not
13377         create a transient block for it, to prevent premature finalization
13378         before the return is executed.
13379         (Gen_Assign): Do not generate a call to deep adjust routine if the
13380         component type is itself an array of controlled (sub)-components
13381         initialized with an inner aggregate.
13382         (Component_Check): New name for Static_Check. This name is now more
13383         appropriate, and documentation is added which was missing.
13384         (Component_Check): Add test for bit aligned component value
13385         (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
13386         Tagged_Comps, name is more appropriate given added function below.
13387         (Component_Not_OK_For_Backend): Check for bit aligned component ref.
13388
13389 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
13390             Javier Miranda  <miranda@adacore.com>
13391             Robert Dewar  <dewar@adacore.com>
13392
13393         * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
13394         Terminated: Add unchecked type conversion from System.Address to
13395         System.Tasking.Task_Id when calling the predefined primitive
13396         _disp_get_task_id.
13397         Disable new Ada 05 accessibility check for JVM.NET targets, which
13398         cannot be implemented in a practical way.
13399         (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
13400         the sources always references the tag of the actual object. Therefore,
13401         if 'Tag is applied in the sources to class-wide interface objects we
13402         generate code that displaces "this" to reference the base of the object.
13403         (Expand_N_Attribute_Reference, case Size): Return specified size if
13404         known to front end.
13405         (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
13406         has code that displaces the pointer of the object to manage interface
13407         types. However this code must not be executed when the prefix is a
13408         subprogram. This bug caused the wrong expansion of the internally
13409         generated assignment that fills the dispatch table when the primitive
13410         is a function returning a class-wide interface type.
13411         (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
13412         Set_Attribute_Name for Name_Unaligned_Valid.
13413
13414 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13415             Gary Dismukes  <dismukes@adacore.com>
13416
13417         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
13418         If the initialization is the equivalent aggregate of the initialization
13419         procedure of the type, do not remove it.
13420         (Expand_N_Attribute_Definition_Clause): Exclude access variables
13421         initialized to null from having their expression reset to empty and
13422         note this exception in the comment.
13423
13424 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
13425             Robert Dewar  <dewar@adacore.com>
13426             Ed Schonberg  <schonberg@adacore.com>
13427             Gary Dismukes  <dismukes@adacore.com>
13428
13429         * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
13430         Add "with" and "use" clauses for Sem_Attr.
13431         (Expand_Current_Value): Do not replace occurences of attribute
13432         references where the prefix must be a simple name.
13433
13434         * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
13435         Namet. Add new arrays Attribute_Name_Modifies_Prefix and
13436         Attribute_Requires_Simple_Name_Prefix.
13437         (Name_Modifies_Prefix): Body of new function.
13438         (Requires_Simple_Name_Prefix): Body of new function.
13439         (Resolve_Attribute, case Access): Improve error message for case of
13440         mismatched conventions.
13441         (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
13442         incomplete type.
13443         (Analyze_Attribute, case 'Access): If the type of the prefix is a
13444         constrained subtype for a nominal unconstrained type, use its base type
13445         to check for conformance with the context.
13446         (Resolve_Attribute): Remove test of the access type being associated
13447         with a return statement from condition for performing accessibility
13448         checks on access attributes, since this case is now captured by
13449         Is_Local_Anonymous_Access.
13450         (Analyze_Access_Attribute): Set Address_Taken on entity
13451         (Analyze_Attribute, case Address): Set Address_Taken on entity
13452         (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
13453         validating an access attribute whose prefix is a current instance.
13454         (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
13455         applied to dispatching operations, if freezing is required then we set
13456         the attribute Has_Delayed_Freeze in the prefix's entity.
13457         (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
13458         current scope if access of local subprogram taken
13459         (Analyze_Access_Attribute): Check legality of self-reference even if the
13460         expression comes from source, as when a single component association in
13461         an aggregate has a box association.
13462         (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
13463         the prefix if it is a protected operation and the attribute is
13464         Unrestricted_Access.
13465         (Resolve_Attribute, case 'Access): Set the Etype of the attribute
13466         reference to the base type of the context, to force a constraint check
13467         when the context is an access subtype with an explicit constraint.
13468         (Analyze_Attribute, case 'Class): If the prefix is an interface and the
13469         node is rewritten as an interface conversion. leave unanalyzed after
13470         resolution, to ensure that type checking against the context will take
13471         place.
13472
13473 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13474             Javier Miranda  <miranda@adacore.com>
13475             Robert Dewar  <dewar@adacore.com>
13476
13477         * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
13478         wrapper when the full view of the controlling type of an inherited
13479         function that dispatches on result implements interfaces.
13480         (Expand_N_Object_Declaration): In cases where the type of the
13481         declaration is anonymous access, create finalization list for it.
13482         (Expand_N_Object_Declaration): Generate a persistent_bss directive only
13483         if the object has no explicit initialization, to match description of
13484         functionality of pragam Persistent_BSS.
13485         (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
13486         new function to build static aggregates, to replace initialization call
13487         when static initialization is desired.
13488         (Freeze_Type): Generate a list controller for an access type whenever
13489         its designated type has controlled anonymous access discriminants.
13490         (Build_Equivalent_Aggregate): New procedure to compute a static
13491         aggregate to be used as default initialization for composite types,
13492         instead of a generating a call to the initialization procedure for the
13493         type.
13494         (Build_Initialization_Call): When available, replace a call to the
13495         initialization procedure with a copy of the equivalent static aggregate
13496         for the type.
13497         (Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
13498         declarations for objects of a class-wide interface type, rather than
13499         just identifiers, to prevent visibility problems.
13500         (Expand_N_Object_Declaration): When expanding the declaration for an
13501         object of a class-wide interface type, preserve the homonym chain of
13502         the original entity before exchanging it with that of the generated
13503         renaming declaration.
13504         (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
13505         active, because there is no way to handle the exception.
13506         (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
13507         to do a minimum decoration of the Access_Disp_Table list.
13508         (Expand_Record_Controller): Avoid the addition of the controller between
13509         the component containing the tag of a secondary dispatch table and its
13510         adjacent component that stores the offset to the base of the object.
13511         This latter component is only generated when the parent type has
13512         discriminants ---documented in Add_Interface_Tag_Components).
13513         (Apply_Array_Size_Check): Removed, no longer needed.
13514         (Expand_N_Full_Type_Declaration): If the type has anonymous access
13515         components, create a Master_Entity for it only if it contains tasks.
13516         (Build_Init_Procedure): Suppress the tag assignment compiling under
13517         no run-time mode.
13518         (Freeze_Record_Type): Remove code associated with creation of dispatch
13519         table.
13520         (Init_Secondary_Tags): Update type of actuals when generating calls to
13521         Ada.Tags.Set_Offset_To_Top
13522         (Stream_Operation_OK): Disable use of streams compiling under no
13523         run-time mode
13524         (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
13525         if Has_Init_Expression set.
13526         (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
13527         Register_Primitive, which provides the same functionality.
13528         (Requires_Init_Proc): Return false in case of interface types.
13529         (Add_Secondary_Tables): Use the new attribute Related_Interface to
13530         cleanup the code.
13531         (Predefined_Primitive_Freeze): Do not assume that an internal entity
13532         is always associated with a predefined primitive because the internal
13533         entities associated with interface types are not predefined primitives.
13534         Therefore, the call to Is_Internal is replaced by a call to the
13535         function Is_Predefined_Dispatching_Operation.
13536         (Make_Eq_If): When generating the list of comparisons for the
13537         components of a given variant, omit the controller component that is
13538         present if the variant has controlled components.
13539
13540 2007-06-06  Javier Miranda  <miranda@adacore.com>
13541             Hristian Kirtchev  <kirtchev@adacore.com>
13542             Bob Duff  <duff@adacore.com>
13543
13544         * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
13545         handle the creation of finalization lists and calls for nested
13546         coextensions when the root of the chains is part of a return statement.
13547         (Inside_A_Return_Statement): New function inside Complete_Coextension_
13548         Finalization.
13549         (Expand_Record_Equality): Skip components that are interface types.
13550         (Displace_Allocator_Pointer): Add missing support for interface subtypes
13551         (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
13552         with Rewrite_Coextension. Change the condition for detecting coextension
13553         root nodes.
13554         (Is_Local_Access_Discriminant): Removed.
13555         (Rewrite_Coextension): New routine which rewrites a static coextension
13556         as a temporary and uses its unrestricted access in the construction of
13557         the outer object.
13558         (Complete_Coextension_Finalization): New routine. Generate finalization
13559         attachment calls to all delayed coextensions.
13560         (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
13561         the allocator is not a coextension itself and has delayed coextensions.
13562         If the current allocator is controlled, but also a coextension, delay
13563         the generation of the finalization attachment call.
13564         Rename local variable "Node" to "Nod" in order to avoid confusion with
13565         "Elists.Node".
13566         (Expand_Allocator_Expression): Call Adjust for initialized allocators of
13567         limited types that are not inherently limited. Such an allocator is
13568         illegal, but is generated by the expander for a return statement, to
13569         copy the result onto the secondary stack. This is the only case where a
13570         limited object can be copied. Generate code to displace the pointer
13571         to the object if the qualified expression is a class-wide interface
13572         object. Such displacement was missing and hence the copy of the object
13573         was wrong.
13574         (Apply_Accessibility_Check): Handle allocated objects initialized in
13575         place.
13576         (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
13577         and Expand_Allocator_Expression. Allocating class-wide interface objects
13578         this routine displaces the pointer to the allocated object to reference
13579         the component referencing the corresponding secondary dispatch table.
13580         Expand_Allocator_Expression): Add missing support to allocate class-wide
13581         interface objects initialized with a qualified expression.
13582         (Get_Allocator_Final_List): Test for an anonymous access type that is a
13583         function result type, and use the finalization list associated with the
13584         function scope in that case (such an anonymous type should not be
13585         treated like an access parameter's type).
13586
13587 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13588             Gary Dismukes  <dismukes@adacore.com>
13589             Javier Miranda  <miranda@adacore.com>
13590
13591         * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
13592         controlled type, use Make_Handler_For_Ctrl_Operation to construct the
13593         required exception handler.
13594         (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
13595         properly the case of a function whose return type is a limited
13596         class-wide interface type. Modify the code of the accessibility
13597         check to handle class-wide interface objects. In this case we need to
13598         displace "this" to reference the primary dispatch table to get access
13599         to the TSD of the object (to evaluate its accessibility level).
13600         (Expand_N_Extended_Return_Statement): Test for a tagged result type
13601         rather than a controlling result as one of the conditions for
13602         generating tests of the implicit BIP_Alloc_Form formal. The
13603         initialization assignment is also handled according to whether the
13604         result is tagged instead of controlling.
13605         In the case where the init assignment is inserted in the "then" part of
13606         the allocation conditional, rewrite the target to be a dereference of
13607         the implicit BIP_Object_Access formal.
13608         If the returned value is unconstrained and created on the secondary
13609         stack, mark the enclosing block and function so that the secondary
13610         stack is not reclaimed on return.
13611         Treat returns from functions with controlling results similarly to
13612         returns from functions with unconstrained result subtypes.
13613         If the object returned is unconstrained, and an allocator must be
13614         created for it, analyze the allocator once the block for the extended
13615         return is installed, to ensure that finalizable components
13616         of the expression use the proper finalization list. Guard the call to
13617         Move_Final_List with a check that there is something to finalize.
13618         (Make_Tag_Ctrl_Assignment): Use "old" handling
13619         of controlled type assignment for virtual machines, since new code uses
13620         unsupported features (such as direct access to bytes in memory).
13621
13622 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
13623             Ed Schonberg  <schonberg@adacore.com>
13624
13625         * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
13626         accessibility actual, check for the case of an aliased object that has
13627         been rewritten as an Access attribute, and assign Prev to Prev_Orig so
13628         we fall into processing for the attribute rather than the name of the
13629         object.
13630         (Expand_Inline_Call): If an actual is a literal, and the corresponding
13631         formal has its address taken in the body, create a temporary to capture
13632         value.  If the return type is a limited interface, do not treat the
13633         return value as Controlled.
13634         (Is_In_Place_Function):  If the return type is a limited interface,
13635         treat as returning in place. The actual returned object may not always
13636         be limited, but the caller has to assume that it is returned in place.
13637         (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
13638         context of an allocator, use the correct finalization chain (that is,
13639         the chain belonging to the access type, rather than the chain belonging
13640         to the current scope).
13641         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
13642         result type rather than a controlling result as a precondition for
13643         adding an allocation form actual to a build-in-place call.
13644         (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
13645         (Freeze_Subprogram): Code cleanup. Remove all the code that register the
13646         primitive in the dispatch tables. This work is now done by Make_DT when
13647         the type is frozen.
13648         (Register_Predefined_DT_Entry): Removed.
13649         (Add_Return): If end label is not present, use sloc of last statement
13650         for generated return statement in procedure, for better gdb behavior
13651         on expanded code.
13652         (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
13653         object address nodes to ensure proper processing by routines like
13654         Insert_After*.
13655         (Expand_Call): Fix generation of validity check for parameter
13656         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
13657         the allocation form parameter if the result subtype is constrained,
13658         except when the function has a controlling result.
13659         (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
13660         rather than Is_Controlled and Has_Controlled_Component, since we want to
13661         include class-wide result types in this treatment. Also test for a
13662         controlling result, since that also requires passing a finalization
13663         list.
13664         (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
13665         even when the result subtype is constrained, to handle calls involving
13666         controlling results.
13667         (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
13668         is now called even when the result subtype is constrained, to handle
13669         calls involving controlling results.
13670         (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
13671         on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
13672         now performs the test).
13673         (Make_Build_In_Place_Call_In_Object_Declaration):
13674         Add_Alloc_Form_Actual_* is now called even when the result subtype is
13675         constrained, to handle calls involving controlling results.
13676         (Add_Return): Accomodate rewritten pattern from local raise to goto
13677         transformation, so that we still recognize an transfer statement
13678         and do the right thing here in that case.
13679         (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
13680         and end of subprogram code.
13681         (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
13682         support for primitives that are functions (without formals) with a
13683         controlling result.
13684         (Inherited_From_Formal): If the actual subtype has not generic parent
13685         type, it is not an actual for a formal derived type, and there is no
13686         operation to inherit from the formal.
13687
13688 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13689             Thomas Quinot  <quinot@adacore.com>
13690
13691         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
13692         inserted cleanup code appropriately for GDB use.
13693         (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
13694         exception handler for Deep_Adjust or Deep_Finalize.
13695         (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
13696         Raise_From_Controlled_Operation is available, use a call to that
13697         subprogram instead of a plain "raise Program_Error" node to raise
13698         Program_Error if an exception is propagated from an Adjust or Finalize
13699         operation.
13700         (Insert_Actions_In_Scope_Around): If the statement to be wrapped
13701         appears in the optional statement list of a triggering alternative, the
13702         scope actions can be inserted directly there, and not in the list that
13703         includes the asynchronous select itself.
13704
13705 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13706             Robert Dewar  <dewar@adacore.com>
13707             Hristian Kirtchev  <kirtchev@adacore.com>
13708
13709         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
13710         generated exception handler appropriately when debugging generated code.
13711         Deal properly with No_Exception_Propagation restriction mode.
13712         (Expand_N_Abort_Statement): Add an unchecked type conversion from
13713         System.Address to System.Tasking.Task_Id when processing the result of
13714         the predefined primitive _disp_get_task_id.
13715         (Expand_N_Asynchronous_Select): Clarify comment.
13716         (Expand_N_Protected_Type_Declaration): Minor code cleanup.
13717         (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
13718         (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
13719         (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
13720         privals and for generated call to Complete_Entry_Body, for better gdb
13721         behavior.
13722         (Copy_Result_Type): Utility to construct a parameter and result profile
13723         for protected functions whose return type is an anonymous access to
13724         subprogram.
13725         (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
13726         call the above.
13727         (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
13728         point when the local-raise-to-goto transformation has taken place.
13729
13730 2007-06-06  Javier Miranda  <miranda@adacore.com>
13731             Nicolas Setton  <setton@adacore.com>
13732
13733         * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
13734         functionality when the backend is generating code.
13735         Otherwise any serious error
13736         reported by the backend calling the frontend routine Error_Msg
13737         changes the Compilation_Mode to Check_Semantics, disables the
13738         functionality of this routine and causes the generation of
13739         spureous additional errors.
13740
13741         * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
13742         debugging information now generated by the compiler for fat-pointer
13743         types.
13744         Document the contents of DW_AT_producer in the GNAT Vendor extensions to
13745         DWARF2/3.
13746         Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
13747
13748 2007-06-06  Thomas Quinot  <quinot@adacore.com>
13749
13750         * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
13751         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
13752         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
13753         For a remote call to a function with a classwide return type, apply an
13754         E.4(18) check to the returned value.
13755         (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
13756         stream attributes of the designated type of an RACW, as they are not
13757         dispatching primitive operations.
13758
13759 2007-06-06  Geert Bosch  <bosch@adacore.com>
13760
13761         * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
13762         negative literal
13763         (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
13764         positive
13765         (Do_Divide_Fixed_Universal): Handle case of negative Frac.
13766         (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
13767         positive
13768         (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
13769
13770 2007-06-06  Javier Miranda  <miranda@adacore.com>
13771
13772         * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
13773         attribute compiling package Ada.Tags under No_Run_Time_Mode.
13774
13775 2007-06-06  Javier Miranda  <miranda@adacore.com>
13776
13777         * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
13778         deallocation of class-wide interface objects.
13779         (Expand_Dispatching_Constructor_Call): Take into account that if the
13780         result of the dispatching constructor is an interface type, the
13781         function returns a class-wide interface type; otherwise the returned
13782         object would be actual. The frontend previously accepted returning
13783         interface types because Expand_Interface_Actuals silently performed
13784         the management of the returned type "as if" it were a class-wide
13785         interface type.
13786         (Expand_Dispatching_Constructor_Call): Replace call to
13787         Make_DT_Access_Action by direct call to Make_Function_Call.
13788
13789 2007-06-06  Robert Dewar  <dewar@adacore.com>
13790             Ed Schonberg  <schonberg@adacore.com>
13791
13792         * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
13793         compute masking constant, since we now set Esize properly to the
13794         underlying size.
13795         (Create_Packed_Array_Type): Set proper Esize value adjusted as required
13796         to match the alignment.
13797         (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
13798         packed arrays of 8 bits or less.
13799
13800         * freeze.adb (Freeze_Entity): When freezing the formals of a
13801         subprogram, freeze the designated type of a parameter of an access type
13802         only if it is an access parameter.
13803         Increase size of C convention enumeration object
13804         (Freeze_Entity, array type case): Make sure Esize value is properly
13805         adjusted for the alignment if it is known.
13806         (Freeze_Entity, array type case): When checking bit packed arrays for
13807         the size being incorrect, check RM_Size, not Esize.
13808         (Freeze_Record_Type): Check for bad discriminated record convention
13809         (In_Exp_Body): Return true if the body is generated for a subprogram
13810         renaming, either an attribute renaming or a renaming as body.
13811         (Check_Itype): If the designated type of an anonymous access component
13812         is a non-protected subprogram type, indicate that it is frozen, to
13813         prevent out-of-scope freeze node at some subsequent call.
13814         (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
13815         only if the subprogram is neither imported nor exported, as well as the
13816         NCA descriptor class if the subprogram is exported.
13817
13818 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13819             Arnaud Charlet  <charlet@adacore.com>
13820             Robert Dewar  <dewar@adacore.com>
13821             Gary Dismukes  <dismukes@adacore.com>
13822
13823         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
13824         default initialization on an imported object, when there is no
13825         initialization call generated for it.
13826         (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
13827         restriction
13828
13829         * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
13830         Static_Elaboration_Desired.
13831         Remove pragma Thread_Body.
13832         Implement a new pragma No_Body
13833         Removes the Explicit_Overriding pragma
13834         Remove Optional_Overriding pragma
13835         (Prag): Deal with Universal_Aliasing.
13836         (Name_CIL, Name_CIL_Constructor, Convention_CIL,
13837         Pragma_CIL_Constructor): New names.
13838
13839         * sem_cat.adb (Validate_Object_Declaration): An initialization that
13840         uses the equivalent aggregate of a type must be treated as an implicit
13841         initialization.
13842         (Get_Categorization): Check a unit for pragma Preelaborate only if it
13843         has none of the other categories.
13844         (Process_Import_Or_Interface_Pragma): Report an error for an attempt
13845         to apply Import to an object renaming declaration.
13846
13847         * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
13848         from a C++ class should be declared as limited and that it will be
13849         considererd limited.
13850         (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
13851         should be declared as limited and that it will be considererd limited.
13852         (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
13853         (Analyze_Pragma, case Export): Diagnose export of enumeration literal
13854         (Analyze_Pragma): Deal with Universal_Aliasing.
13855         (Sig_Flags): Likewise.
13856         (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
13857         (Overflow_Checks_Unsuppressed): New flag.
13858         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
13859         (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
13860         case of JVM or .NET targets, and compiling user code.
13861         Add debugging convenience routine rv
13862
13863 2007-06-06  Robert Dewar  <dewar@adacore.com>
13864
13865         * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
13866         are interface type.
13867         (Build_Elementary_Input_Call): For floating-point use right type in the
13868         absence of strange size or stream size clauses.
13869         (Build_Elementary_Write_Call): Same fix
13870         (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
13871         set to value that does not match base type size.
13872
13873 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13874
13875         * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
13876         object of a limited type can be initialized with a call to a function
13877         that returns in place. If the limited type has unknown discriminants,
13878         and the underlying type is a constrained composite type, build an actual
13879         subtype from the function call, as is done for private types.
13880         (Side_Effect_Free): An expression that is the renaming of an object or
13881         whose prefix is the renaming of a object, is not side-effect free
13882         because it may be assigned through the renaming and its value must be
13883         captured in a temporary.
13884         (Has_Controlled_Coextensions): New routine.
13885         (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
13886         as is done for other limited types.
13887         (Non_Limited_Designated_Type): new predicate.
13888         (Make_CW_Equivalent_Type): Modified to handle class-wide interface
13889         objects.
13890         Remove all handling of with_type clauses.
13891
13892         * par-ch10.adb: Remove all handling of with_type clauses.
13893
13894         * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
13895         checksum if the main source could not be parsed.
13896         (Loat_Unit): When processing a child unit, determine properly whether
13897         the parent unit is a renaming when the parent is itself a child unit.
13898         Remove handling of with_type clauses.
13899
13900         * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
13901         (Set_Is_Static_Coextension): New procedure.
13902         (Has_Local_Raise): New function
13903         (Set_Has_Local_Raise): New procedure
13904         (Renaming_Exception): New field
13905         (Has_Init_Expression): New flag
13906         (Delay_Finalize_Attach): Remove because flag is obsolete.
13907         (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
13908         Remove all handling of with_type clauses.
13909         (Exception_Junk): Can now be set in N_Block_Statement
13910
13911 2007-06-06  Vincent Celier  <celier@adacore.com>
13912             Robert Dewar  <dewar@adacore.com>
13913
13914         * frontend.adb (Frontend): Return immediately if the main source could
13915         not be parsed, because of preprocessing errors.
13916
13917         * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
13918         (Gnat1drv): Exit with errors if the main source could not be parsed,
13919         because of preprocessing errors.
13920         (Check_Rep_Info): New procedure
13921
13922 2007-06-06  Robert Dewar  <dewar@adacore.com>
13923
13924         * g-hesorg.ads, g-heasor.ads,
13925         g-busorg.ads, g-bubsor.ads: Update documentation
13926         GNAT.Heap/Bubble_Sort_G is now pure
13927
13928 2007-06-06  Robert Dewar  <dewar@adacore.com>
13929
13930         * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
13931
13932 2007-06-06  Robert Dewar  <dewar@adacore.com>
13933             Ed Schonberg  <schonberg@adacore.com>
13934
13935         * g-comlin.ads, g-comlin.adb:
13936         Add new warning for renaming of function return objects
13937
13938         * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
13939         (Tree_Read): Use size of object instead of type'object_size, since the
13940         latter is incorrect for packed array types.
13941         (Tree_Write): Same fix
13942
13943         * opt.ads: Add new warning for renaming of function return objects
13944         (Generating_Code): New boolean variable used to indicate that the
13945         frontend as finished its work and has called the backend to process
13946         the tree and generate the object file.
13947         (GCC_Version): Is now private
13948         (Static_Dispatch_Tables): New constant declaration.
13949         (Overflow_Checks_Unsuppressed): New flag.
13950         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
13951         (List_Closure): New flag for gnatbind (-R)
13952         Zero_Formatting: New flag for gnatbind (-Z)
13953         (Special_Exception_Package_Used): New flag.
13954         (Warn_On_Unrepped_Components): New flag.
13955
13956         * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
13957         unit is a compilation unit, rather than relying on its scope, so that
13958         Standard can be renamed.
13959         (Analyze_Object_Renaming): Add new warning for renaming of function
13960         return objects.
13961         Also reject attempt to rename function return object in Ada 83 mode.
13962         (Attribute_Renaming): In case of tagged types, add the body of the
13963         generated function to the freezing actions of the type.
13964         (Find_Type): A protected type is visible right after the reserved word
13965         "is" is encountered in its type declaration. Set the entity and type
13966         rather than emitting an error message.
13967         (New_Scope): Properly propagate Discard_Names to inner scopes
13968         (Check_Nested_Access): New procedure.
13969         (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
13970         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
13971
13972         * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
13973         Add new warning for renaming of function return objects
13974         (Check_References): Suppress warnings for objects whose type or
13975         base type has Warnings suppressed.
13976         (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
13977         (Set_Warning_Switch): Include new -gnatwc in -gnatwa
13978
13979 2007-06-06  Vincent Celier  <celier@adacore.com>
13980             Emmanuel Briot  <briot@adacore.com>
13981             Olivier Hainque  <hainque@adacore.com>
13982
13983         * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
13984         absolute value of Header.Block_Size when displaying the freed physical
13985         memory in traces.
13986         (Allocate): Compute Storage_Address using Integer_Address, not
13987         Storage_Offset, because the range of Storage_Offset may not be large
13988         enough.
13989         (Configure): New parameter Low_Level_Traces
13990         (Allocate, Deallocation, Free_Physically): Added low-level traces
13991         (Configure): new parameter Errors_To_Stdout.
13992         (Output_File): new subprogram
13993         (Deallocate, Dereference): Send error messages to the proper stream
13994         (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
13995         documented. Previous code would send it to the current output file
13996         defined in GNAT.IO, which might not be stdout
13997         (Is_Valid): Adjust comment to mention that a positive reply means that
13998         Header_Of may be used to retrieve the allocation header associated with
13999         the subprogram Storage address argument. Return False early if this
14000         address argument is misaligned.
14001
14002 2007-06-06  Vincent Celier  <celier@adacore.com>
14003
14004         * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
14005         switch -P
14006         (ASIS_Main): New global variable
14007         (Get_Closure): New procedure
14008         (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
14009         check, metric or pretty. Call Get_Closure in this case.
14010         (Check_Files): For GNAT LIST, check all sources of all projects when
14011         All_Projects is True.
14012         (GNATCmd): Accept -U for GNAT LIST
14013
14014 2007-06-06  Vincent Celier  <celier@adacore.com>
14015
14016         * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
14017         has been specified
14018         Correct error message when invocation of the linker fails
14019         Add explicit size clause for the C imported variables
14020         Object_List_File_Supported and Using_GNU_Linker to emphasize that
14021         we expect char size.
14022         Read target parameters earlier, since this is needed to set
14023         Target_VM properly. Also do not use -static/shared-libgcc for non GCC
14024         targets.
14025
14026 2007-06-06  Vincent Celier  <celier@adacore.com>
14027
14028         * gnatls.adb:
14029         Add 3 spaces before the default project directory when displaying
14030         the project search path.
14031         Add new command line switch '-l' to display license information.
14032
14033 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
14034
14035         * gmem.c: Add support for timestamps on memory operations.
14036
14037         * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
14038         operations (not used currently, just foundation for future
14039         enhancements). Add possibility to perform full dump of gmem.out file.
14040         (Print_Back_Traces): Declare accesses to root arrays constants since
14041         they aren't modified.
14042         (Print_Back_Traces): allocate root arrays on the heap rather than stack.
14043
14044 2007-06-06  Vincent Celier  <celier@adacore.com>
14045
14046         * gnatsym.adb: Update Copyright notice
14047         (Parse_Cmd_Line): Accept new switch -D
14048         (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
14049          file.
14050
14051         * prj.ads (Policy): New policy Direct
14052         (Yes_No_Unknown): New enumeration type
14053         (Project_Data): New component Libgnarl_Needed
14054
14055         * prj-nmsc.adb (Check_For_Source): When recording a source file make
14056         use the untouched pathname casing.
14057         (Get_Directories): Ensure that the Display_Exec_Directory is using the
14058         proper casing on non case-sensitive platforms like Windows.
14059         (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
14060         on all platforms, as it is not possible to know which one is allowed
14061         before processing the project files.
14062         (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
14063         specified when symbol policy is Direct. Check that when there is a
14064         symbol file defined (either by default or with attribute
14065         Library_Symbol_File) it is not the same as the reference symbol file.
14066         (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
14067         (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
14068         extending projects.
14069         (Record_Ada_Source): Record a source that has been locally removed in an
14070         imported project.
14071
14072         * symbols.ads (Policy): New policy Direct
14073
14074         * symbols-vms.adb (Initialize): Take new policy Direct in case
14075         statement
14076
14077 2007-06-06  Vincent Celier  <celier@adacore.com>
14078
14079         * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
14080         Correct obvious bug (return Dir; instead of return Directory;).
14081         (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
14082
14083 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14084
14085         * g-pehage.adb (Produce): Open output files in Binary mode, so that
14086         they have UNIX line endings (LF only) even on Windows, and thus pass
14087         all GNAT style checks.
14088
14089 2007-06-06  Emmanuel Briot  <briot@adacore.com>
14090
14091         * g-regpat.adb (Quote): Fix improper quoting of '.'
14092
14093 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14094
14095         * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
14096         default, set False on a per-runtime basis.
14097         (Need_Netdb_Buffer): New constant.
14098
14099         * g-socket.ads, g-socket.adb: Import new package
14100         GNAT.Sockets.Thin.Task_Safe_NetDB.
14101         (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
14102         binding to obtain proper message.
14103         (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
14104         Replace various occurrences of Arry (Arry'First)'Address with the
14105         equivalent Arry'Address (GNAT always follows implementation advice from
14106         13.3(14)).
14107         (Get_Host_By_Address, Get_Host_By_Name,
14108         Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
14109         instead, rely on platform-specific task safe netdb operations provided
14110         by g-socthi.
14111
14112         * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
14113         parameter Process_Blocking_IO.
14114         (Host_Error_Messages): Add stub body.
14115         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
14116         (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
14117         Safe_Getservbyport): Move functions into new child package
14118         Task_Safe_NetDB.
14119         (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
14120         Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
14121         (In_Addr): Add alignment clause.
14122
14123 2007-06-06  Robert Dewar  <dewar@adacore.com>
14124
14125         * g-trasym.ads, g-traceb.ads: Update list of supported targets
14126         Add note about symbolic traceback
14127
14128 2007-06-06  Pascal Obry  <obry@adacore.com>
14129
14130         * hostparm.ads (Normalized_CWD): Use the host directory separator
14131         instead of the hardcoded forward slash which is not the proper
14132         character on Windows for example.
14133         (Java_VM): Removed.
14134
14135 2007-06-06  Vincent Celier  <celier@adacore.com>
14136             Arnaud Charlet  <charlet@adacore.com>
14137
14138         * a-clrefi.adb, a-clrefi.ads: New files
14139
14140         * impunit.adb: Add s-os_lib in the list of user visible units.
14141         (Non_Imp_File_Names_95): Add a-clrefi to this list
14142         Remove obsolete run-time entries.
14143         (Non_Imp_File_Names_05): Add Ada 2005 entries for:
14144          "a-exetim" -- Ada.Execution_Time
14145          "a-extiti" -- Ada.Execution_Time.Timers
14146
14147         * mlib-prj.ads, mlib-prj.adb
14148         (Build_Library): Use untouched object dir and library dir. At the
14149         same time makes sure that the checks are done using the canonical
14150         form. Removes hard-coded directory separator and use the proper host
14151         one instead.
14152         (Process_Project): Do not look in object directory to check if libgnarl
14153         is needed for a library, if there is no object directory.
14154         (Build_Library): Scan the ALI files to decide if libgnarl is needed for
14155         linking.
14156         (Build_Library): When invoking gnatbind, use a response file if the
14157         total size of the arguments is too large.
14158
14159         * Makefile.rtl: (g-sttsne): New object file.
14160         Add entry for a-clrefi, s-utf_32, System.Exceptions
14161
14162         * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
14163         (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
14164         (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
14165         Change g-string to s-string, g-os_lib to s-os_lib
14166         Change all g-utf_32 references to s-utf_32
14167
14168 2007-06-06  Tristan Gingold  <gingold@adacore.com>
14169             Olivier Hainque  <hainque@adacore.com>
14170
14171         * init.c: Do not adjust IP of an imported VMS exception of ia64.
14172         LIB$STOP is called to raise an exception and the IP of the exception
14173         is the instruction right after the call.
14174         (__gnat_adjust_context_for_raise, AIX): Implement.
14175         (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
14176          adjust_context_for_raise before Raise_From_Signal_Hanler.
14177         (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
14178         siginfo is passed to the handler, necessary to let the zcx propagation
14179         engine unwind past it.
14180
14181 2007-06-06  Olivier Hainque  <hainque@adacore.com>
14182
14183         * initialize.c (__gnat_initialize for vxworks):  Update documentation
14184         on the ZCX support, using different sets of crtstuff objects than with
14185         GCC 3.4.
14186
14187 2007-06-06  Robert Dewar  <dewar@adacore.com>
14188
14189         * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
14190         spec from body
14191         (Layout_Type): Fix recomputation of size from alignment.
14192
14193 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14194             Javier Miranda  <miranda@adacore.com>
14195
14196         * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
14197         association in an instance.
14198         (Copy_Generic_Node): If the node is a string literal, no need to copy
14199         its descendants.
14200         (Is_Generic_Formal): For a formal subprogram, the declaration is the
14201         grandparent of the entity.
14202         (Analyze_Formal_Interface_Type): Transform into a full type declaration,
14203         to simplify handling of formal interfaces that derive from other formal
14204         interfaces.
14205         (Instantiate_Subprogram_Body): The defining unit name of the body of
14206         the instance should be a defining identifier.
14207         (Install_Formal_Packages): make global to the package, for use in
14208         instantiations of child units.
14209         (Analyze_Package_Instantiation): Do not attempt to set information on an
14210         enclosing master of an entry when expansion is disabled.
14211         (Instantiate_Type): If the actual is a tagged synchronized type and the
14212         generic ancestor is an interface, create a generic actual for the
14213         corresponding record.
14214         (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
14215         declaration, to ensure that the interface list is processed correctly.
14216         (Inline_Instance_Body): If enclosing scope is an instance body, remove
14217         its entities from visibiility as well.
14218         (Pre_Analyze_Actuals): if the actual is an allocator with  constraints
14219         given with a named association, analyze the expression only, not the
14220         discriminant association itself.
14221         (Reset_Entity): If the analysis of a selected component is transformed
14222         into an expanded name in the prefix of a call with parameters, do not
14223         transform the original node into an expanded name, to prevent visibility
14224         errors in the case of nested generics.
14225         (Check_Private_View): For an array type, check whether the index types
14226         may need exchanging.
14227
14228 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
14229             Vincent Celier  <celier@adacore.com>
14230
14231         * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
14232         since both are separated.
14233         Add support for imported CIL packages.
14234         Add further special handling of "value_type" for CIL.
14235         Add special handling of pragma Import for CIL.
14236
14237         * make.ads, make.adb: When switch -eS is used, direct all outputs to
14238         standard output instead of standard error, except errors.
14239         (Absolute_Path): Use untouched casing for the parent directory.
14240         (Add_Library_Search_Dir): Use the untouched directory name.
14241         (Add_Source_Search_Dir): Idem.
14242         (Change_To_Object_Directory): Update output to use proper casing.
14243         (Create_Binder_Mapping_File): Use the untouched filename to set
14244         ALI_Name.
14245         (Gnatmake): Use untouched library and executable directory names.
14246         (Insert_Project_Sources): Use untouched filename for spec and body.
14247         (Is_In_Object_Directory): Use untouched object directory.
14248         (Mark_Directory): Idem.
14249         (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
14250         contains the non-canonical filename in all cases.
14251         (Change_To_Object_Directory): In verbose mode, display the name of the
14252         object directory we're changing to.
14253         (Compile_Sources): Make sure, when a project file is used, to compile
14254         the body of the unit, when there is one, even when only the spec is
14255         recorded in an ALI file.
14256         (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
14257         spec to the body.
14258         (Report_Compilation_Failed): New procedure
14259         (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
14260         procedures moved from the spec to the body.
14261         (Extract_Failure): Removed, not used
14262         Replace explicit raises of exception Bind_Failed and Link_Failed with
14263         calls to Make_Failed with the proper message.
14264         Replace explicit raises of exception Compilation_Failed with calls to
14265         procedure Report_Compilation_Failed.
14266         (Initialize): Create mapping files unconditionally when using project
14267         files.
14268
14269         * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
14270         Pragma_CIL_Constructor): New names.
14271
14272         * targparm.ads, targparm.adb
14273         (Compiler_System_Version): Removed, no longer used.
14274         (Get_Target_Parameters): Relax checks on system.ads validity. Add
14275         handling of two new system flags: JVM and CLI.
14276
14277 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
14278             Arnaud Charlet  <charlet@adacore.com>
14279
14280         * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
14281         time, use the default s-interr body that provides interrupt support
14282         based on signals.
14283         (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
14284         a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
14285         g-soccon.ads, and s-taprop.adb for the marte run time.
14286         (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
14287         timers are supported on marte.
14288         (EH_MECHANISM for marte): Do not use ZCX.
14289         (THREADSLIB for marte): Use -lmarte.
14290         Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
14291         Add mlib-tgt-specific.o to gnatmake objects
14292         mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
14293         longer of MLib.Tgt.
14294         (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
14295         6, either kernel or rtp, use a specialized version of s-osinte.ads.
14296
14297 2007-06-06  Pascal Obry  <obry@adacore.com>
14298
14299         * mkdir.c (__gnat_mkdir): Add support for UTF-8.
14300
14301 2007-06-06  Vincent Celier  <celier@adacore.com>
14302
14303         * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
14304         separator, use instead the proper host directory separator.
14305         (Copy_ALI_Files): Make sure that an already existing ALI file in the
14306         ALI copy dir is writable, before doing the copy.
14307
14308         * mlib-utl.ads, mlib-utl.adb:
14309         (Gcc): If length of command line is too long, put the list of object
14310         files in a response file, if this is supported by the platform.
14311         (Ar): If invocation of the archive builder is allowed to be done in
14312         chunks and building it in one shot would go above an OS dependent
14313         limit on the number of characters on the command line, build the archive
14314         in chunks.
14315
14316 2007-06-06  Vincent Celier  <celier@adacore.com>
14317
14318         * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
14319         of specified object file is not equal to base name of source.
14320
14321 2007-06-06  Javier Miranda  <miranda@adacore.com>
14322             Hristian Kirtchev  <kirtchev@adacore.com>
14323             Ed Schonberg  <schonberg@adacore.com>
14324
14325         * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
14326         the full type declaration.
14327         (Analyze_Component_Declaration): Add local variable E to capture the
14328         initialization expression of the declaration. Replace the occurences of
14329         Expression (N) with E.
14330         (OK_For_Limited_Init_In_05): Allow initialization of class-wide
14331         limited interface object with a function call.
14332         (Array_Type_Declaration): If the declaration lacks subtype marks for
14333         indices, create a simple index list to prevent cascaded errors.
14334         (Is_Null_Extension): Ignore internal components created for secondary
14335         tags when checking whether a record extension is a null extension.
14336         (Check_Abstract_Interfaces): Add missing support for interface subtypes
14337         and generic formals.
14338         (Derived_Type_Declaration): Add missing support for interface subtypes
14339         and generic formals.
14340         (Analyze_Object_Declaration): If an initialization expression is
14341         present, traverse its subtree and mark all allocators as static
14342         coextensions.
14343         (Add_Interface_Tag_Component): When looking for components that may be
14344         secondary tags, ignore pragmas that can appear within a record
14345         declaration.
14346         (Check_Abstract_Overriding): an inherited function that dispatches on
14347         result does not need to be overriden if the controlling type is a null
14348         extension.
14349         (Mentions_T): Handle properly a 'class attribute in an anonymous access
14350         component declaration, when the prefix is an expanded name.
14351         (Inherit_Component): If the derivation is for a private extension,
14352         inherited components remain visible and their ekind should not be set
14353         to Void.
14354         (Find_Type_Of_Object): In the case of an access definition, always set
14355         Is_Local_Anonymous_Access. We were previously not marking the anonymous
14356         access type of a return object as a local anonymous type.
14357         (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
14358         range with character literal bounds.
14359         (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
14360         (Access_Subprogram_Declaration): Indicate that the type declaration
14361         depends on an incomplete type only if the incomplete type is declared
14362         in an open scope.
14363         (Analyze_Subtype_Declaration): Handle properly subtypes of
14364         synchronized types that are tagged, and that may appear as generic
14365         actuals.
14366         (Access_Subprogram_Declaration): An anonymous access to subprogram can
14367         appear as an access discriminant in a private type declaration.
14368         (Add_Interface_Tag_Components): Complete decoration of the component
14369         containing the tag of a secondary dispatch table and the component
14370         containing the offset to the base of the object (this latter component
14371         is only generated when the parent type has discriminants --as documented
14372         in this routine).
14373         (Inherit_Components): Use the new decoration of the tag components to
14374         improve the condition that avoids inheriting the components associated
14375         with secondary tags of the parent.
14376         (Build_Discriminanted_Subtype): Indicate to the backend that the
14377         size of record types associated with dispatch tables is known at
14378         compile time.
14379         (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
14380         (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
14381         to include task, protected, and synchronized interfaces as limited
14382         interfaces.
14383         (Process_Discriminants): Remove the setting of
14384         Is_Local_Anonymous_Access on the type of (anonymous) access
14385         discriminants of nonlimited types.
14386         (Analyze_Interface_Type_Declaration): Complete the decoration of the
14387         class-wide entity it is is already present. This situation occurs if
14388         the limited-view has been previously built.
14389         (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
14390         field.
14391         (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
14392         Related_Interface.
14393
14394 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14395
14396         * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
14397         of the type that specify the position of interface tags when the type
14398         inherits discriminated array components from the parent type.
14399         If a component is initialized with a box, check for the presence of a
14400         default expression in its declaration before using its default
14401         initialization procedure.
14402         (Resolve_Record_Aggregate): If a component is box-initialized, and the
14403         component type has a discriminants, create a partial aggregate for it
14404         by copying the discriminants of the component subtype.
14405         Reject attempt to initialize a discriminant with a box.
14406         (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
14407         associated with dispatch tables is known at compile time.
14408         (Get_Value): If an association in a record aggregate has a box
14409         association, and the corresponding record component has a default
14410         expression, always copy the default expression, even when the
14411         association has a single choice, in order to create a proper
14412         association for the expanded aggregate.
14413
14414 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14415             Robert Dewar  <dewar@adacore.com>
14416
14417         * par-ch12.adb (P_Generic_Associations): The source position of an
14418         Others association is that of the others keyword, not that of the token
14419         that follows the box.
14420         (P_Formal_Type_Definition): Handle formal access types that carry a
14421         not null indicator.
14422
14423         * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
14424         multiple identifier are present, save Scan_State before scanning the
14425         colon, to ensure that separate trees are constructed for each
14426         declaration.
14427         (P_Identifier_Declarations): For object declaration, set new flag
14428         Has_Init_Expression if initialization expression present.
14429         (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
14430         Improve NOT NULL error messages
14431
14432 2007-06-06  Robert Dewar  <dewar@adacore.com>
14433
14434         * par-ch4.adb: (P_Name): Recover from literal used as name
14435
14436 2007-06-06  Vincent Celier  <celier@adacore.com>
14437
14438         * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
14439         defaulted to False.
14440         In the "not" case, recursive call with Complemented set to True.
14441         Do not allow "or" or "and" operators when Complemented is True.
14442
14443 2007-06-06  Vincent Celier  <celier@adacore.com>
14444
14445         * prj.adb (Project_Empty): Gives default value for new component
14446         Libgnarl_Needed
14447
14448         * prj-attr.ads: Minor reformatting
14449
14450         * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
14451         directory using the untouched casing.
14452         (For_All_Source_Dirs): Idem.
14453
14454         * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
14455         directories specified with switches -aP.
14456         (Add_Search_Project_Directory): New procedure
14457         (Initialize_Project_Path): Put the directories in table
14458         Search_Directories in the project search path.
14459         (Initialize_Project_Path): For VMS, transform into canonical form the
14460         project path.
14461
14462 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
14463
14464         * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
14465         true if configurable run-time or No_Run_Time is set.
14466         (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
14467         processing an unit which is not the one being compiled.
14468
14469 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
14470
14471         * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
14472         Replace UC by Ada.UC
14473
14474         * s-bitops.adb: Get rid of System.Pure_Exceptions.
14475         Replace UC by Ada.UC
14476
14477 2007-06-06  Robert Dewar  <dewar@adacore.com>
14478
14479         * scng.adb: (Check_End_Of_Line): Deal with very long lines
14480
14481 2007-06-06  Robert Dewar  <dewar@adacore.com>
14482
14483         * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
14484         Remove no longer used nodes.
14485
14486 2007-06-06  Javier Miranda  <miranda@adacore.com>
14487             Ed Schonberg  <schonberg@adacore.com>
14488             Robert Dewar  <dewar@adacore.com>
14489
14490         * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
14491         on obsolescent withed unit in case of limited-withed units.
14492         (Analyze_Compilation_Unit): Add guard to code that removed an
14493         instantiation from visibility, to prevent compiler aborts when
14494         instantiation is abandoned early on.
14495         (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
14496         current unit being analyzed, and Distinguish local incomplete types
14497         from limited views of types declared elsewhere.
14498         (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
14499         to state that the class-wide entity is shared by the limited-view
14500         and the full-view.
14501         (Analyze_With_Clause): Improve placement of flag for case of
14502         unimplemented unit.
14503         (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
14504         manner similar to GNAT.Current_Exception. This is a violation of
14505         restriction (No_Exception_Propagation), and also inhibits the
14506         optimization of local raise to goto.
14507         (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
14508         and if so set Most_Recent_Exception_Used flag in Opt, and also check
14509         for violation of restriction No_Exception_Propagation.
14510
14511 2007-06-06  Javier Miranda  <miranda@adacore.com>
14512             Hristian Kirtchev  <kirtchev@adacore.com>
14513             Gary Dismukes  <dismukes@adacore.com>
14514
14515         * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
14516         use of entity Exception_Occurrence if it is not available in the
14517         target run-time.
14518
14519         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
14520         concurrent types are declared within an Ada 2005 generic, build their
14521         corresponding record types since they are needed for overriding-related
14522         semantic checks.
14523         (Analyze_Protected_Type): Rearrange and simplify code for testing that a
14524         protected type does not implement a task interface or a nonlimited
14525         interface.
14526         (Analyze_Task_Type): Rearrange and simplify code for testing that a task
14527         type does not implement a protected interface or a nonlimited interface.
14528         (Single_Task_Declaration, Single_Protected_Declaration): use original
14529         entity for variable declaration, to ensure that debugging information
14530         is correcty generated.
14531         (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
14532         routines if the expander is not active.
14533         (Analyze_Task_Body): Mark all handlers to stop optimization of local
14534         raise, since special things happen for task exception handlers.
14535
14536         * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
14537         concurrent types declared within a generic.
14538         (Check_Dispatching_Operation): Do not emit warning about late interface
14539         operations in the context of an instance.
14540         (Check_Dispatching_Call): Remove restriction against calling a
14541         dispatching operation with a limited controlling result.
14542         (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
14543         Register_Interface_DT_Entry by calls to Register_Primitive.
14544         (Check_Dispatching_Formals): Handle properly a function with a
14545         controlling access result.
14546
14547 2007-06-06  Robert Dewar  <dewar@adacore.com>
14548             Arnaud Charlet  <charlet@adacore.com>
14549
14550         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
14551         Check for restriction No_Implementation_Attributes if in Ada 95 mode.
14552         (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
14553         (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
14554         message when using a VM, since this attribute is not supported.
14555         (Analyze_Record_Representation_Clause): Give unrepped component warnings
14556
14557         * usage.adb: Add new warning for renaming of function return objects
14558         Indicate that -gnatwp and -gnatwP concern front-end inlining
14559         Add line for -gnatyg
14560         Add usage information for -gnatw.c/C
14561
14562 2007-06-06  Robert Dewar  <dewar@adacore.com>
14563             Ed Schonberg  <schonberg@adacore.com>
14564
14565         * sem_ch5.adb
14566         (Find_Var): Do not consider function call in test for infinite loop
14567         warning if warnings set off for function entity.
14568         (One_Bound): Do not create a temporary for a loop bound if it is a
14569         character literal.
14570         (Analyze_Assignment): Traverse the right hand side of an assignment and
14571         mark all allocators as static coextensions.
14572         (Analyze_Assignment): Exempt assignments involving a dispatching call
14573         to a function with a controlling access result from the check requiring
14574         the target to be class-wide.
14575
14576 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
14577             Ed Schonberg  <schonberg@adacore.com>
14578             Robert Dewar  <dewar@adacore.com>
14579             Javier Miranda  <miranda@adacore.com>
14580
14581         * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
14582         chain of coextensions when an allocator serves as the root of such a
14583         chain.
14584         (Propagate_Coextensions): Remove the test for the root being an
14585         allocator.
14586         (Resolve_Allocator): Add condition to ensure that all future decoration
14587         occurs on an allocator node. Add processing and cleanup for static
14588         coextensions.
14589         (Valid_Conversion): If the operand type is the limited view of a
14590         class-wide type, use the non-limited view is available to determine
14591         legality of operation.
14592         (Ambiguous_Character): move to spec, for use elsewhere.
14593         (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
14594         (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
14595         character literals.
14596         (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
14597         Do_Division_Check flag explicitly.
14598         (Resolve_Actuals): If the actual is of a synchronized type, and the
14599         formal is of the corresponding record type, this is a call to a
14600         primitive operation of the type, that is declared outside of the type;
14601         the actual must be unchecked-converted to the type of the actual
14602         (Resolve_Call): Kill all current values for any subprogram call if
14603         flag Suppress_Value_Tracking_On_Call is set.
14604         (Resolve_Type_Conversion): Generate error message the the operand
14605         or target of interface conversions come from a limited view.
14606         (Check_Infinite_Recursion): Ignore generated calls
14607         (Check_Allocator_Discrim_Accessibility): New procedure for checking
14608         that an expression that constrains an access discriminant in an
14609         allocator does not denote an object with a deeper level than the
14610         allocator's access type.
14611         (Resolve_Allocator): In the case of an allocator initialized by an
14612         aggregate of a discriminated type, check that associations for any
14613         access discriminants satisfy accessibility requirements by calling
14614         Check_Allocator_Discrim_Accessibility.
14615         (Resolve_Equality_Op): Handle comparisons of anonymous access to
14616         subprogram types in the same fashion as other anonymous access types.
14617         (Resolve_Concatenation_Arg): Remove initial character '\' in an error
14618         message that is not a continuation message.
14619         (Resolve_Type_Conversion): Add missing support for conversion to
14620         interface type.
14621         (Resolve_Actuals): Introduce a transient scope around the call if an
14622         actual is a call to a function returning a limited type, because the
14623         resulting value must be finalized after the call.
14624         (Resolve_Actuals): If the call was given in prefix notations, check
14625         whether an implicit 'Access reference or implicit dereference must be
14626         added to make the actual conform to the controlling formal.
14627
14628 2007-06-06  Robert Dewar  <dewar@adacore.com>
14629             Javier Miranda  <miranda@adacore.com>
14630
14631         * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
14632         (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
14633         overriding of an inherited private subprogram now there is no need to
14634         inherit its dispatching slot and reduce the size of the dispatch table.
14635         Set_All_DT_Position now ensures that the same slot is now assigned to
14636         both entities. This is required to statically build the dispatch table.
14637         (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
14638         of calling Set_All_DT_Position to re-evaluate the position of the
14639         entries in the dispatch table. Such reevaluation is not desired if
14640         the tagged type is already frozen.
14641
14642 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
14643             Gary Dismukes  <dismukes@adacore.com>
14644             Robert Dewar  <dewar@adacore.com>
14645             Javier Miranda  <miranda@adacore.com>
14646
14647         * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
14648         reference acts as an lvalue when the attribute name modifies the prefix
14649         (Is_Coextension_Root): New routine.
14650         (Mark_Static_Coextensions): New routine.
14651         (Type_Access_Level): Revise code for checking the level of the
14652         anonymous access type of a return object.
14653         (Safe_To_Capture_Value): Not safe to capture if Address_Taken
14654         (Matches_Prefixed_View_Profile): Remove the no longer necessary
14655         retrieval of the corresponding controlling record type.
14656         (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
14657         concurrent types declared within a generic as well as class wide types.
14658         Emit a mode incompatibility error whenever a protected entry or routine
14659         override an interface routine whose first parameter is not of mode
14660         "out", "in out" or access to variable.
14661         (Overrides_Synchronized_Primitive): Rename to
14662         Find_Overridden_Synchronized_Primitive.
14663         (Collect_Interface_Components): New subprogram that collects all the
14664         components of a tagged record containing tags of secondary dispatch
14665         tables.
14666         (Add_Global_Declaration): New procedure
14667         (Abstract_Interface_List): Handle properly the case of a subtype of a
14668         private extension.
14669         (Type_Access_Level): In the case of a type whose parent scope is a
14670         return statement, call Type_Access_Level recursively on the enclosing
14671         function's result type to determine the level of the return object's
14672         type.
14673         (Build_Elaboration_Entity): Build name of elaboration entity from the
14674         scope chain of the entity, rather than the unit name of the file name.
14675         (Check_Nested_Access): New procedure.
14676         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
14677         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
14678         (Get_Renamed_Entity): Utility routine for performing common operation
14679         of chasing the Renamed_Entity field of an entity.
14680
14681 2007-06-06  Robert Dewar  <dewar@adacore.com>
14682
14683         * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
14684         elaboration model
14685         (Check_A_Call): Add check for entry call which was causing blowup
14686
14687 2007-06-06  Olivier Hainque  <hainque@adacore.com>
14688
14689         * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
14690         special code on ia64-vms to handle major incompatibilities between the
14691         GCC unwinding ABI and the VMS Condition Handling Facility, both calling
14692         this routine with a very different set of arguments and expectations on
14693         the return value.
14694
14695 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14696
14697         * socket.c (__gnat_close_signalling_fd): New function.
14698         (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
14699         __gnat_safe_getservbyname, __gnat_safe_getservbyport):
14700         New supporting functions for task safe Netdb operations.
14701
14702 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14703             Olivier Hainque  <hainque@adacore.com>
14704
14705         * a-except-2005.ads, a-except-2005.adb
14706         (Raise_From_Controlled_Operation): New procedure in
14707         (private part of) Ada.Exceptions (standard runtime version). Used to
14708         provide informational exception message when Program_Error is raised as
14709         a result of an Adjust or Finalize operation propagating an exception.
14710         (Rmsg_28): Fix description for E.4(18) check.
14711         (Raise_Current_Excep): Call Debug_Raise_Exception just before
14712         propagation starts, to let debuggers know about the event in a reliable
14713         fashion.
14714         Take the address of E and dereference to make sure it is homed on stack
14715         and prevent the stores from being deleted, necessary for proper
14716         debugger behavior on "break exception" hits.
14717         (Local_Raise): Moved to System.Exceptions
14718
14719         * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
14720         exception message from the current occurrence and raise Program_Error
14721         has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
14722
14723 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
14724             Arnaud Charlet  <charlet@adacore.com>
14725
14726         * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
14727         lock, if needed.
14728
14729         * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
14730         priority associated to a lock.
14731
14732         * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
14733         assertion to take into account case of no abort restriction.
14734         (Initialize_Protection_Entries): Add initialization for the field
14735         New_Ceiling associated to the protected object.
14736         (Unlock_Entries): Change the ceiling priority of the underlying lock, if
14737         needed.
14738
14739         * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
14740         since this function needs to be set consistently with Update_Exception.
14741
14742         * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
14743         since this function needs to be set consistently with Update_Exception.
14744
14745         * s-taskin.ads: Update comments on
14746         Interrupt_Server_Blocked_On_Event_Flag.
14747         (Unbind_Handler): Fix handling of server_task wakeup
14748         (Server_Task): Set self's state so that Unbind_Handler can take
14749         appropriate actions.
14750         (Common_ATCB): Now use a constant from System.Parameters to determine
14751         the max size of the Task_Image field.
14752
14753         * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
14754         Initialize_Analyzer function.
14755         ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
14756         take into account case of no abort restriction.
14757         ([Vulnerable_]Complete_Master): Modify assertion.
14758
14759         * s-tataat.adb (Finalize): Use the nestable versions of
14760         Defer/Undefer_Abort.
14761
14762         * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
14763
14764         * s-tpobop.ads: Update comments.
14765
14766         * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
14767         of locking the object manually, to avoid inconsistencies between
14768         Lock/Unlock_Entry assertions.
14769
14770         * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
14771         terminating
14772         application and System.Parameters.No_Abort is True.
14773         Update comments on Interrupt_Server_Blocked_On_Event_Flag.
14774         (Unbind_Handler): Fix handling of server_task wakeup
14775         (Server_Task): Set self's state so that Unbind_Handler can take
14776         appropriate actions.
14777
14778 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14779
14780         * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
14781         declarations instead of an explicit null body, for conciseness.
14782
14783 2007-06-06  Robert Dewar  <dewar@adacore.com>
14784
14785         * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
14786         illegal aggregate and the type is still Any_Composite.
14787         (Subtypes_Statically_Match): Fix problem of empty discriminant list
14788
14789 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14790
14791         * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
14792         to prevent subsequent expansion.
14793
14794 2007-06-06  Robert Dewar  <dewar@adacore.com>
14795
14796         * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
14797
14798 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14799             Robert Dewar  <dewar@adacore.com>
14800
14801         * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
14802         exceptions.
14803         (Write_Itype): Handle case of string literal subtype, which
14804         comes up in this context.
14805         (Update_Itype): when debugging expanded code, update sloc of itypes
14806         associated with defining_identifiers and ranges, for gdb use.
14807         (Sprint_Node_Actual): Add static keyword to object or exception
14808         declaration output if Is_Statically_Allocated is True.
14809         (Sprint_End_Label): Set entity of end marker for a subprogram, package,
14810         or task body, so that the tree carries the proper Sloc information for
14811         debugging use.
14812         (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
14813
14814 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
14815
14816         * s-secsta.adb (Chunk): Ensure this object has a static size known at
14817         compile time, to avoid dynamic memory allocation
14818         (Elaboration code): Only use dynamic memory allocation when needed.
14819
14820 2007-06-06  Quentin Ochem  <ochem@adacore.com>
14821
14822         * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
14823         "Overflow_Guard".
14824         (Stack_Analyzer): Added field "Overflow_Guard"
14825         (Task_Result): Added field "Overflow_Guard".
14826         (Index_Str): New constant.
14827         (Task_Name_Str): New constant.
14828         (Actual_Size_Str): New constant.
14829         (Pattern_Array_Element_Size): New constant.
14830         (Get_Usage_Range): New subprogram.
14831         (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
14832         Now align the output.
14833         Added comments.
14834         (Initialize): Added value for Overflow_Guard.
14835         (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
14836         Update the value of the overflow guard according to the actual
14837         beginning of the pattern array.
14838         (Initialize_Analyzer): Added parameter Overflow_Guard.
14839         Take this parameter into accound when computing the max size.
14840         (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
14841         (Report_Result): Removed extra useless procedure.
14842         Updated call to Output_Result.
14843         Moved full computation of the Task_Result here.
14844
14845 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14846
14847         * g-soccon-darwin.ads, gen-soccon.c: Add new constant
14848         Thread_Blocking_IO, always True by default, set False on a per-runtime
14849         basis.
14850         Add Windows-specific constants
14851         Add new constant Need_Netdb_Buffer.
14852         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
14853         not, whether to use getXXXbyYYY_r.
14854
14855         * gsocket.h: Add new constant Need_Netdb_Buffer.
14856         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
14857         not, whether to use getXXXbyYYY_r.
14858
14859 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
14860
14861         * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
14862         than their first call.
14863         Add type Dummy_Communication_Block used in the generation of the pre-
14864         defined dispatching primitive _disp_asynchronous_select.
14865         (Storage_Element): Put Pragma Universal_Aliasing on it.
14866
14867 2007-06-06  Vincent Celier  <celier@adacore.com>
14868
14869         * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
14870         function.
14871
14872         * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
14873         letter if it is not followed by a '/' or a '\'.
14874         (Windows): New Boolean function
14875
14876         * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
14877         Ada 2005.
14878         (Containing_Directory): On Windows, keep at least one '/' or '\' after a
14879         drive letter.
14880         (Containing_Directory): Raise Use_Error when the directory is a root
14881         directory.
14882         (Extension): When returning the result, use a conversion to Result_Type,
14883         not a qualification.
14884
14885 2007-06-06  Robert Dewar  <dewar@adacore.com>
14886
14887         * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
14888         (Set_Style_Check_Options): Recognize new -gnatyg style switch
14889
14890         * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
14891         Warn_On_Non_Local_Exception to False, to turn off warnings for
14892         No_Exception_Propagation in ZFP runtime.
14893         (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
14894         back-ends.
14895         (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
14896
14897 2007-06-06  Vincent Celier  <celier@adacore.com>
14898
14899         * switch-b.adb (Scan_Binder_Switches): Add processing for new
14900         switches -R and -Z
14901
14902         * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
14903         (Scan_Make_Switches): Recognize new switch -aP
14904
14905 2007-06-06  Matthew Gingell  <gingell@adacore.com>
14906             Jose Ruiz  <ruiz@adacore.com>
14907
14908         * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
14909         VxWorks task descriptor in the Ada run time, call a C subprogram
14910         (__gnat_get_stack_info) that extracts the required information.
14911
14912         * sysdep.c: Back out temporary lynxos workaround.
14913         (__gnat_get_stack_info): Add this procedure that passes to the Ada run
14914         time the stack information associated to the currently executing task.
14915         Only VxWorks systems require this function.
14916
14917 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
14918
14919         * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
14920         add the stack bias if the offset is computed from a frame address.
14921         (__gnat_backtrace): Adjust for above change.
14922
14923 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14924
14925         * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
14926         PE_Non_Transportable_Actual.
14927         (By_Descriptor_Last): New constant.
14928         (By_Copy_Return): Likewise.
14929
14930 2007-06-06  Vincent Celier  <celier@adacore.com>
14931
14932         * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
14933         is.
14934
14935         * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
14936         /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
14937         /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
14938         Add missing comment for /OPTIMIZE=SPACE
14939         Add entry for OPTIMIZE=SPACE
14940         Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
14941         Add documentation for new qualifiers corresponding to -gnatw.c/.C
14942
14943 2007-06-06  Vincent Celier  <celier@adacore.com>
14944             Robert Dewar  <dewar@adacore.com>
14945
14946         * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
14947         -gnatw.C)
14948
14949         * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
14950         Document gnatbind switch -a
14951         (case Constructions): Document that variables declarations are allowed
14952         for previously declared variables.
14953         Fix external lib project example
14954         -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
14955         Indicate that "#if not X or Y then" is not allowed in input files to
14956         gnatprep.
14957         Document gnatw.x and gnatw.X warning flags
14958         Mention -Winline switch to activate warnings when back-end inlining is
14959         ineffective.
14960         Add gnatcheck rule descriptions
14961         Describe how to use the GNAT driver to call a tool on a closure.
14962         Describe how to run project-wide checks or metrics.
14963         Document gnatbind's -R option
14964         Updated to account for Ada 2005 support
14965
14966         * gnat_rm.texi (Case Construction): Allow variable declarations for
14967         previously declared variables.
14968         (Representation Clauses and Pragmas): Lift restriction on alignment
14969         clauses for record types.
14970         (Ada.Characters.*): Fix typo in reference to A.3.3(27).
14971         Document No_Exception_Propagation restriction
14972         Document No_Body pragma
14973         Updated to account for Ada 2005 support; corrected some typos
14974         (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
14975
14976         * gnat-style.texi: Make it clear that we never use mode IN for
14977         procedures or functions
14978
14979         * ug_words: Add entries for -gnatw.x and -gnatw.X
14980         Add entries for -gnatw.c/.C
14981
14982 2007-06-06  Pascal Obry  <obry@adacore.com>
14983             Vincent Celier  <celier@adacore.com>
14984
14985         * makegpr.adb (Add_Archive_Path): Use untouched object and library
14986         dirs and library name.
14987         (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
14988         comments.
14989         (Build_Library): Idem.
14990         (Compile_Individual_Sources): Idem.
14991         (Compile_Link_With_Gnatmake): Idem.
14992         (Compile_Sources): Idem.
14993         (Get_Imported_Directories): Idem.
14994         (Link_Executables): Idem. Same change for the executable dir.
14995         (Check_Compilation_Needed): C_Source_Path new variable containing
14996         the canonical form of Source_Path to check against the source names
14997         in the dependency file.
14998         (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
14999         verbose mode, display the name of the object directory we're changing
15000         to.
15001         (Saved_Switches): New name of table X_Switches
15002         (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
15003         (Usage): New line for switch -aP
15004         (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
15005         testing if a directory should be added to the search path.
15006
15007 2007-06-06  Javier Miranda  <miranda@adacore.com>
15008
15009         * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
15010         a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
15011         declaration after freezing point of all its associated tagged types;
15012         otherwise such types are frozen too early.
15013
15014 2007-06-06  Robert Dewar  <dewar@adacore.com>
15015
15016         * a-reatim.adb: Documentation addition
15017
15018         * g-cgideb.adb: Minor code reorganization
15019
15020         * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
15021         mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
15022         s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
15023
15024         * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
15025         function.  Change name New_Scope to Push_Scope
15026         (Get_Debug_Flag_K): Remove unused obsolete function.
15027
15028         * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
15029         Push_Scope.
15030
15031         * makeusg.adb: Update Copyright notice
15032         Add line for switch -aP
15033
15034         * makeusg.adb: Fix wording of some usage messages
15035
15036         * s-assert.adb (Raise_Assert_Failure): Add call to
15037         Debug_Raise_Assert_Failure.
15038
15039         * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
15040         (2, Standard'Alignment) for compatibility with AAMP (where alignment
15041         is restricted to 1).
15042
15043         * s-wchjis.adb: Remove use of System.Pure_Exceptions
15044
15045         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
15046         node location to No_Location when we're not debugging the expanded
15047         code.
15048
15049 2007-05-22  Alexandre Oliva  <aoliva@redhat.com>
15050
15051         * misc.c (enumerate_modes): Consider log2_b to always be one.
15052
15053 2007-05-14  Rafael Ávila de Espíndola  <espindola@google.com>
15054
15055         * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
15056
15057 2007-05-02  Pascal Obry  <obry@adacore.com>
15058
15059         * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
15060         to use Stream_IO.File_Type. This is needed to make use of the UTF-8
15061         encoding support of Stream_IO.
15062         (Write_Unit): Idem.
15063
15064         * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
15065         filename and corresponding encoding to match the OS requirement.
15066         (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
15067         routine will fail on specific devices like CON: AUX: ...
15068
15069         PR ada/29856: Add missing braces
15070
15071 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15072
15073         PR ada/31660
15074         * ada-tree.h (lang_tree_node): Fix typo in chain_next.
15075
15076 2007-04-21  Jan Hubicka  <jh@suse.cz>
15077
15078         * misc.c (gnat_expand_body): Don't call target for destructors,
15079         avoid redundant check on syntax errors.
15080
15081 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15082
15083         * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
15084         instead of checking GIMPLE_STMT_P in chain_next.
15085
15086 2007-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
15087
15088         PR ada/31576
15089         * system-linux-alpha.ads: Disable constant condition warning for the
15090         Default_Bit_Order variable.
15091         * system-linux-s390.ads: Likewise.
15092         * system-linux-s390x.ads: Likewise.
15093         * system-linux-sparc.ads: Likewise.
15094
15095 2007-04-06  Javier Miranda  <miranda@adacore.com>
15096             Matt Heaney  <heaney@adacore.com>
15097             Robert Dewar  <dewar@adacore.com>
15098
15099         a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
15100         a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
15101         a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
15102         a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
15103         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
15104         a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
15105         a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
15106         a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
15107         a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
15108         a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
15109         a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
15110         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
15111         a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
15112         a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
15113         a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
15114         a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
15115         a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
15116         i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
15117         unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
15118         a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
15119         a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
15120         a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
15121         expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
15122         s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
15123         s-taprop-tru64.adb, s-taprop-irix.adb,
15124         s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
15125         s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
15126         s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
15127         s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
15128         s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
15129         a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
15130         a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
15131         g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
15132         s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
15133         s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
15134         s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
15135         s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
15136         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
15137         s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
15138         a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
15139         a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
15140         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
15141         a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
15142         a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
15143         a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
15144         access types.
15145         Update documentation.
15146         Minor rewording.
15147
15148 2007-04-06  Robert Dewar  <dewar@adacore.com>
15149
15150         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
15151         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
15152         system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
15153         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
15154         system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
15155         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
15156         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
15157         system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
15158         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
15159         system-hpux-ia64.ads, targparm.adb,
15160         targparm.ads (Functions_Return_By_DSP_On_Target): Removed
15161
15162         * system.ads: Move Functions_Return_By_DSP to obsolete section,
15163         kept for bootstrap purposes only.
15164
15165 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
15166
15167         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
15168         s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
15169         s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
15170         (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
15171
15172 2007-04-06  Robert Dewar  <dewar@adacore.com>
15173
15174         * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
15175         (Local_Raise): New dummy procedure called when a raise is converted
15176         to a local goto. Used for debugger to detect that the exception
15177         is raised.
15178
15179         * debug.adb: Document new d.g flag (expand local raise statements to
15180         gotos even if pragma Restriction (No_Exception_Propagation) is not set)
15181
15182         * exp_sel.adb: Use Make_Implicit_Exception_Handler
15183
15184         * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
15185         suppress warnings for unused handlers.
15186         (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
15187         warnings for raise statements not handled locally.
15188         (Get_RT_Exception_Entity): New function
15189         (Get_Local_Call_Entity): New function
15190         (Find_Local_Handler): New function
15191         (Warn_If_No_Propagation): New procedure
15192         (Expand_At_End_Handler): Call Make_Implicit_Handler
15193         (Expand_Exception_Handlers): Major additions to deal with local handlers
15194         (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
15195         Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
15196         for local raise
15197
15198         * exp_ch11.ads (Get_RT_Exception_Entity): New function
15199         (Get_Local_Call_Entity): New function
15200
15201         * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
15202         of restrictions that the binder will never suggest adding.
15203
15204         * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
15205         to No_Elist.
15206
15207         * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
15208         be with'ed in the presence of pragma Restriction
15209         (No_Exception_Propagation).
15210
15211         * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
15212
15213         * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
15214         parameter, then the handler is not a suitable target for a local raise,
15215         and this is a violation of restriction No_Exception_Propagation.
15216         (Analyze_Handled_Statements): Analyze choice parameters in exception
15217         handlers before analyzing statement sequence (needed for proper
15218         detection of local raise statements).
15219         (Analyze_Raise_Statement): Reraise statement is a violation of the
15220         No_Exception_Propagation restriction.
15221
15222         * s-rident.ads: Add new restriction No_Exception_Propagation
15223
15224         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
15225         function, like Make_Exception_Handler but sets Local_Raise_Statements
15226         to No_List.
15227         (Add_Unique_Serial_Number): Deal with case where this is called during
15228         processing of configuration pragmas.
15229
15230 2007-04-06  Thomas Quinot  <quinot@adacore.com>
15231             Pat Rogers  <rogers@adacore.com>
15232             Pascal Obry  <obry@adacore.com>
15233
15234         * g-stsifd-sockets.adb: New file.
15235
15236         * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
15237         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
15238         g-socthi-vms.adb: Move signalling
15239         fd management to a nested package, so that they can conveniently be
15240         moved to a subunit that is shared across Windows, VMS, and VxWorks
15241         (Ada implementation) or completed with imported bodies from socket.c
15242         (UNIX case).
15243         (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
15244         subprograms.
15245         (Check_Selector): Use Read_Signalling_Fd to read and discard data from
15246         the signalling file descriptor.
15247         (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
15248         signalling file descriptor.
15249         (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
15250         instead of creating a pair of sockets for signalling here.
15251
15252         * g-socthi.adb: Ditto.
15253         Set the runtime process to ignore SIGPIPEs on platforms that support
15254         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
15255
15256         * g-socthi-mingw.adb: Ditto.
15257         (WS_Version): Use Windows 2.2.
15258         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
15259
15260         * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
15261         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
15262
15263         * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
15264         added GNAT byte swapping facility
15265         Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
15266
15267         * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
15268
15269         * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
15270         New subprograms.
15271         (__gnat_create_signalling_fds): New subprogram.
15272         Set the runtime process to ignore SIGPIPEs on platforms that support
15273         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
15274
15275 2007-04-06  Hristian Kirtchev  <kirtchev@adacore.com>
15276             Vincent Celier  <celier@adacore.com>
15277
15278         * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
15279         New version of Ada.Calendar which supports the new upper bound of Ada
15280         time (2399-12-31 86_399.999999999).
15281         The following modifications have been made to the package:
15282          - New representation of time as count of nanoseconds since the start of
15283            Ada time (1901-1-1 0.0).
15284          - Target independent Split and Time_Of routines which service both
15285            Ada 95 and Ada 2005 code.
15286          - Target independent interface to the Ada 2005 children of Calendar.
15287          - Integrated leap seconds into Ada 95 and Ada 2005 mode.
15288          - Handling of non-leap centenial years.
15289          - Updated clock function.
15290          - Updated arithmetic and comparison operators.
15291
15292         * a-caldel.adb (To_Duration): Add call to target independent routine in
15293         Ada.Calendar to handle the conversion of time to duration.
15294
15295         * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
15296         (UTC Offset).
15297         If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
15298         set off to 0.
15299         (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
15300         targets do not have a natural time zone, GMT is used as a default.
15301         (__gnat_get_task_options): New.
15302
15303         * a-direct.adb (Modification_Time): Add with and use clauses for
15304         Ada.Calendar and Ada.
15305         Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
15306         since it is no longer needed.
15307         (Duration_To_Time): Removed.
15308         (OS_Time_To_Long_Integer): Removed.
15309         (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
15310         Formatting Time_Of routines which automatically handle time zones,
15311         buffer periods and leap seconds.
15312
15313         * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
15314         target independent routines in Ada.Calendar.
15315
15316         * a-calfor.ads, a-calfor.adb:
15317         Code cleanup and addition of validity checks in various routines.
15318         (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
15319         Ada.Calendar.
15320
15321         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
15322         independent routine in Ada.Calendar.
15323
15324 2007-04-06  Olivier Hainque  <hainque@adacore.com>
15325
15326         * adaint.c:
15327         (convert_addresses): Adjust prototype and dummy definition to expect an
15328          extra file_name argument.
15329
15330         * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
15331         filling the now expected file_name argument with the appropriate
15332         argv[0] expansion.
15333         (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
15334         (tracebk): Array of void * instead of char *, corresponding to what
15335          convert_addresses expects.
15336         (exename): New static global, to hold the executable file name to be
15337         used in all convert_addresses invocations.
15338         (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
15339         change.
15340         (__gnat_gmem_a2l_initialize): Resolve exename.
15341         (__gnat_convert_addresses): Use exename as the convert_addresses
15342         file_name argument.
15343
15344         * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
15345         "convert_addresses", now expecting a filename argument. Import the
15346         necessary entities to compute the filename to use and pass it to
15347         convert_addresses.
15348
15349 2007-04-06  Matt Gingell  <gingell@adacore.com>
15350
15351         * system-aix.ads: Back out previous change.
15352         (Functions_Return_By_DSP): Removed
15353
15354 2007-04-06  Pascal Obry  <obry@adacore.com>
15355
15356         * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
15357         or the monotonic used by Ada.Real_Time) to compute the sleep duration
15358         on Windows.
15359
15360 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
15361
15362         * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
15363         function. Its value changes in different VxWorks versions, and it is
15364         now handled by the function __gnat_get_task_options.
15365
15366         * s-taprop-vxworks.adb (Create_Task): Call the function
15367         __gnat_get_task_options to get the required options for creating a task.
15368
15369 2007-04-06  Pascal Obry  <obry@adacore.com>
15370             Thomas Quinot  <quinot@adacore.com>
15371
15372         * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
15373         dealing with filename.
15374         (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
15375         filename from a standard string to a wide-string depending on the
15376         encoding value.
15377         (__gnat_freopen): Idem.
15378         (__gnat_current_time): New function (wrapper for time(3) standard C
15379         function).
15380
15381         * g-os_lib.ads (Current_Time): New function. Returns the current
15382         system time as an OS_Time value.
15383
15384         * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
15385         (Monotonic_Clock): Same.
15386
15387 2007-04-06  Quentin Ochem  <ochem@adacore.com>
15388
15389         * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
15390         not on a natural.
15391         (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
15392
15393 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
15394
15395         * a-retide.adb: Add elaboration code to ensure that the tasking run
15396         time is initialized when using delay operations even when no task is
15397         created.
15398
15399 2007-04-06  Javier Miranda  <miranda@adacore.com>
15400
15401         * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
15402         component Num_Prim_Ops.
15403         (Set_Num_Prim_Ops): Removed.
15404         Remove all the assertions because all the routines of this
15405         package are inline always.
15406         (Get_Offset_Index): Add support to primary dispatch tables.
15407         Move the documentation about the dispatch table to a-tags.ads
15408         (Set_External_Tag): Removed
15409         (Inherit_TSD): Removed.
15410         (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
15411         moved to a-tags.ads
15412         (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
15413         Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
15414         of the TSD field "Table" because this field has been renamed to
15415         "Ifaces_Table".
15416         (Inherit_CPP_DT): Removed.
15417         (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
15418         Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
15419         declarations have been moved to a-tags.ads
15420         (Check_Size): Removed.
15421         (Expanded_Name): Updated to get access to the new field of TSD
15422         containing the address of the expanded name.
15423         (Get_Access_Level/Set_Access_Level): Removed.
15424         (Get_Predefined_Prim_Op_Address): Removed.
15425         (Set_Predefined_Prim_Op_Address): Removed.
15426         (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
15427         (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
15428         (Set_Expanded_Name): Removed.
15429         (Inherit_DT): Removed.
15430         (Inherit_CPP_DT): Removed.
15431         (Set_RC_Offset): Removed.
15432         (Set_TSD): Removed.
15433         (Base_Address): New function that displaces "this" to point to the base
15434         of the object (that is, to point to the primary tag of the object).
15435
15436 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15437             Javier Miranda  <miranda@adacore.com>
15438
15439         * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
15440         anonymous access component, do not create a master_id if type already
15441         has one, as may happen if the type is a subcomponent of a packed array
15442         type.
15443         (Build_Init_Procedure, Component_Needs_Simple_Initialization,
15444         Initialize_Tag): Remove code associated with the old CPP pragmas.
15445         CPP_Virtual and CPP_Vtable are no longer supported.
15446         (Build_Offset_To_Top_Internal): Add support for concurrent record types
15447         (Build_Offset_To_Top_Functions): Add support for concurrent record types
15448         (Freeze_Record_Type): Remove call to
15449         Init_Predefined_Interface_Primitives.
15450         (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
15451         code required to initialize the tags of the secondary dispatch tables.
15452         This leaves the algoritm more clear.
15453         (Init_Secondary_Tags): Add support for concurrent record types
15454         (Make_Predefined_Primitive_Specs): Code cleanup.
15455         (Predefined_Primitive_Bodies): Code cleanup.
15456         (Build_Master_Renaming): New local subprogram.
15457         (Expand_N_Full_Type_Declaration): Build the master_id associated with
15458         anonymous access to task type components.
15459         (Expand_N_Subtype_Indication): The bounds of a range constraint in a
15460         subtype indication are resolved during analysis, and must not be done
15461         here.
15462         (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
15463
15464 2007-04-06  Geert Bosch  <bosch@adacore.com>
15465             Ed Schonberg  <schonberg@adacore.com>
15466             Javier Miranda  <miranda@adacore.com>
15467             Bob Duff  <duff@adacore.com>
15468
15469         * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
15470         for conversion of a Float_Type'Truncation to integer.
15471
15472         * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
15473         check if a node is an attribute that can be handled directly by the
15474         back end.
15475         (Expand_N_Attribute_Reference): Suppress expansion of floating-point
15476         attributes that can be handled directly by the back end.
15477         (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
15478         use new predicate Is_Access_Protected_Subprogram_Type.
15479         (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
15480         and Unchecked_Union if it is generated as part of the default  Output
15481         procedure for a type with default discriminants.
15482         (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
15483         if we are compiling under restriction No_Dispatching_Calls.
15484         (Constrained): Use Underlying_Type, in case the type is private without
15485         discriminants, but the full type has discriminants.
15486         (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
15487         call to Build_Get_Access_Level.
15488         (Expand_N_Attribute_Reference): The use of 'Address with class-wide
15489         interface objects requires a call to the run-time subprogram that
15490         returns the base address of the object.
15491         (Valid_Conversion): Improve error message on illegal attempt to store
15492         an anonymous access to subprogram value into a record component.
15493
15494         * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
15495         null".
15496         (Simplify_Type_Conversion): New procedure that performs simplification
15497         of Int_Type (Float_Type'Truncation (X)).
15498         (Resolve_Type_Conversion): Call above procedure after resolving operand
15499         and before performing checks. This replaces the existing ineffective
15500         code in Exp_Ch4.
15501         (Set_String_Literal_Subtype): When creating the internal static lower
15502         bound subtype for a string literal, use a newly created copy of the
15503         subtree representing the lower bound.
15504         (Resolve_Call): Exclude build-in-place function calls from transient
15505         scope treatment. Update comments to describe this exception.
15506         (Resolve_Equality_Op): In case of dispatching call check violation of
15507         restriction No_Dispatching_Calls.
15508         (Resolve_Call): If the call returns an array, the context imposes the
15509         component type of the array, and the function has one non-defaulted
15510         parameter, rewrite the call as the indexing of a call with a single
15511         parameter, to handle an Ada 2005 syntactic ambiguity for calls written
15512         in prefix form.
15513         (Resolve_Actuals): If an actual is an allocator for an access parameter,
15514         the master of the created object is the innermost enclosing statement.
15515         (Remove_Conversions): For a binary operator, check if type of second
15516         formal is numeric, to check if an abstract interpretation is present
15517         in the case of exponentiation as well.
15518
15519 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15520             Bob Duff  <duff@adacore.com>
15521
15522         * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
15523         copying a parameter list in a call, set properly the First_Named_Formal
15524         and Next_Named_Formal fields in the new list and in the enclosing call.
15525         (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
15526         names, to ease typing in the debugger. Improve comments.
15527         (Watch_Node): New variable, intended to be set in the debugger.
15528         (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
15529         called when the watched node is created.
15530         (New_Node_Debugging_Output): Combined version of local procedures
15531         New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
15532         with a parameter so that conditional breakpoints like "if Node = 12345"
15533         work.
15534         (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
15535         Add Elist1 function
15536
15537 2007-04-06  Thomas Quinot  <quinot@adacore.com>
15538             Ed Schonberg  <schonberg@adacore.com>
15539             Gary Dismukes  <dismukes@adacore.com>
15540
15541         * checks.ads, checks.adb (Selected_Range_Checks): No range check is
15542         required for a conversion between two access-to-unconstrained-array
15543         types.
15544         (Expr_Known_Valid): Validity checks do not apply to discriminants, but
15545         to discriminant constraints on discriminant objects. This rule must
15546         apply as well to discriminants of protected types in private components.
15547         (Null_Exclusion_Static_Checks): If No_Initialization is set on an
15548         object of a null-excluding access type then don't require the
15549         the object declaration to have an expression and don't emit a
15550         run-time check.
15551
15552 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
15553             Eric Botcazou  <botcazou@adacore.com>
15554
15555         * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
15556         and made constant.
15557
15558         * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
15559         Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
15560         carry any.
15561
15562         * fe.h (Compiler_Abort): Add third parameter.
15563
15564         * misc.c (internal_error_function): Build third argument from current
15565         input location and pass it to Compiler_Abort.
15566
15567 2007-04-06  Gary Dismukes  <dismukes@adacore.com>
15568
15569         * cstand.adb (Create_Standard): When the target's storage unit size is
15570         greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
15571         Standard_String.
15572
15573 2007-04-06  Nicolas Roche  <roche@adacore.com>
15574
15575         * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
15576         absolute path can have the following form: device:/a/b. In this case
15577         '/' should be inserted between the path and the filename.
15578
15579 2007-04-06  Olivier Hainque  <hainque@adacore.com>
15580             Eric Botcazou  <botcazou@adacore.com>
15581
15582         * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
15583         VAR_DECL to a CONST_DECL we make for a public constant when we know the
15584         corresponding definition has created the so made visible variable.
15585         Handle anonymous access to protected subprogram.
15586         (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
15587         object with an address clause volatile.  Re-enable original fix.
15588         <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
15589         too.
15590         (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
15591         associated with either the Equivalent or Root type, instead of the
15592         naked type node.
15593         (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
15594         subtree for every field of a global record type.
15595         (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
15596         discriminants, invoke again variable_size on its newly computed sizes.
15597
15598 2007-04-06  Robert Dewar  <dewar@adacore.com>
15599             Thomas Quinot  <quinot@adacore.com>
15600             Ed Schonberg  <schonberg@adacore.com>
15601             Bob Duff  <duff@adacore.com>
15602
15603         * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
15604         (Next_Component_Or_Discriminant): New function and procedure
15605         (First_Index, First_Literal, Master_Id,
15606         Set_First_Index, Set_First_Literal, Set_Master_Id):
15607         Add missing Ekind assertions.
15608         (Is_Access_Protected_Subprogram_Type): New predicate.
15609         (Has_RACW): New entity flag, set on package entities to indicate that
15610         the package contains the declaration of a remote accecss-to-classwide
15611         type.
15612         (E_Return_Statement): This node type has the Finalization_Chain_Entity
15613         attribute, in case the result type has controlled parts.
15614         (Requires_Overriding): Add this new flag, because "requires
15615         overriding" is subtly different from "is abstract" (see AI-228).
15616         (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
15617         Is_Abstract_Type. Make sure these are called only when appropriate.
15618         (Has_Pragma_Unreferenced_Objects): New flag
15619
15620         * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
15621         class-wide, the tag of the right-hand side must be an exact match, not
15622         an ancestor of that of the object on left-hand side.
15623         (Move_Activation_Chain): New procedure to create the call to
15624         System.Tasking.Stages.Move_Activation_Chain.
15625         (Expand_N_Extended_Return_Statement): Generate code to call
15626         System.Finalization_Implementation.Move_Final_List at the end of a
15627         return statement if the function's result type has controlled parts.
15628         Move asserts to Build_In_Place_Formal.
15629         (Move_Final_List): New function to create the call statement.
15630         (Expand_N_Assignment_Statement): In case of assignment to a class-wide
15631         tagged type, replace generation of call to the run-time subprogram
15632         CW_Membership by call to Build_CW_Membership.
15633         (Expand_N_Return_Statement): Replace generation of call to the run-time
15634         subprogram Get_Access_Level by call to Build_Get_Access_Level.
15635         (Expand_N_Simple_Function_Return): Replace generation of call to the
15636         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
15637
15638         * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
15639         Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
15640         access to protected operations.
15641         (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
15642         master and chain actual parameters to a build-in-place function call
15643         involving tasks.
15644         (BIP_Formal_Suffix): Add new enumeration literals to complete the case
15645         statement.
15646         (Make_Build_In_Place_Call_In_Allocator,
15647         Make_Build_In_Place_Call_In_Anonymous_Context,
15648         Make_Build_In_Place_Call_In_Assignment,
15649         Make_Build_In_Place_Call_In_Object_Declaration): Call
15650         Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
15651         (Expand_Inlined_Call): If the subprogram is a null procedure, or a
15652         stubbed procedure with a null body, replace the call with a null
15653         statement without using the full inlining machinery, for efficiency
15654         and to avoid invalid values in source file table entries.
15655
15656         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
15657         renamings of calls to build-in-place functions.
15658
15659         * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
15660         provides the functionality of RTE_Available to record components.
15661         (RTU_Entity): The function Entity has been renamed to RTU_Entity
15662         to avoid undesired overloading.
15663         (Entity): New subprogram that returns the entity for the referened
15664         unit. If this unit has not been loaded, it returns Empty.
15665         (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
15666         Remove no longer used entities.
15667         (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
15668         (RE_Type_Specific_Data): New entity.
15669         (RE_Move_Any_Value): New entity.
15670         (RE_TA_A, RE_Get_Any_Type): New entities.
15671         (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
15672          RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
15673          RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
15674         (Entity): New subprogram that returns the entity for the referened
15675         unit. If this unit has not been loaded, it returns Empty.
15676         (RTE): Addition of a new formal that extends the search to the scopes
15677         of the record types found in the chain of the package.
15678
15679         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
15680         "abstract subprograms must be visible" message, whether or not the type
15681         is an interface; that is, remove the special case for interface types.
15682         (Analyze_Function_Return): Remove error message "return of task objects
15683         is not yet implemented" because this is now implemented.
15684         (Create_Extra_Formals): Add the extra master and activation chain
15685         formals in case the result type has tasks.
15686         Remove error message "return of limited controlled objects is not yet
15687         implemented".
15688         (Create_Extra_Formals): Add the extra caller's finalization list formal
15689         in case the result type has controlled parts.
15690         (Process_Formals): In case of access formal types there is no need
15691         to continue with the analysis of the formals if we already notified
15692         errors.
15693         (Check_Overriding_Indicator): Add code to check overriding of predefined
15694         operators.
15695         (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
15696         flags for formals that do not require them,.
15697         (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
15698         hidden entity is use visible or directly visible.
15699         (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
15700         Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
15701         Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
15702         New_Overloaded_Entity): Split Is_Abstract flag into
15703         Is_Abstract_Subprogram and Is_Abstract_Type.
15704
15705         * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
15706         a return statement's finalization list to the caller's list, used for
15707         build-in-place functions with result type with controlled parts.
15708         Remove no longer used entities.
15709
15710         * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
15711         longer needed, because the full type is now limited, and therefore a
15712         pass-by-reference type.
15713         (Foreign_Task_Level): New constant.
15714
15715         * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
15716         move tasks from the activation chain belonging to a return statement to
15717         the one passed in by the caller, and update the master to the one
15718         passed in by the caller.
15719         (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
15720         of unactivated tasks, so we don't kill the ones that are being returned
15721         by a build-in-place function.
15722         (Create_Task): Ignore AI-280 for foreign threads.
15723
15724 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15725             Robert Dewar  <dewar@adacore.com>
15726             Bob Duff  <duff@adacore.com>
15727             Gary Dismukes  <dismukes@adacore.com>
15728
15729         * errout.adb (Unwind_Internal_Type): Use predicate
15730         Is_Access__Protected_Subprogram_Type.
15731
15732         * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
15733         (Freeze_Entity, packed array case): Do not override explicitly set
15734         alignment and size clauses.
15735         (Freeze_Entity):  An entity declared in an outer scope can be frozen if
15736         the enclosing subprogram is a child unit body that acts as a spec.
15737         (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
15738         (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
15739         Remove all code for DSP option
15740
15741         * layout.adb (Layout_Record_Type): Use First/
15742         Next_Component_Or_Discriminant
15743         (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
15744         to handle properly the anonymous access case.
15745
15746         * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
15747         for all access attributes, because overload resolution should work the
15748         same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
15749         causes the error message for the ambiguous "X'Access = Y'Access" and
15750         "X'Unrestricted_Access = Y'Access" and so forth to match.
15751         (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
15752         now that anonymous access to protected operations have their own kind.
15753         (Resolve_Attribute): In case of dispatching call check the violation of
15754         restriction No_Dispatching_Calls.
15755         (Check_Array_Type): Check new -gnatyA array index style option
15756
15757         * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
15758         attempt to derive from a synchronized tagged type.
15759         (Analyze_Type_Declaration): If there is a incomplete tagged view of the
15760         type, inherit the class-wide type already created, because it may
15761         already have been used in a self-referential anonymous access component.
15762         (Mentions_T): Recognize self-referential anonymous access components
15763         that use (a subtype of) the class-wide type of the enclosing type.
15764         (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
15765         Derived_Type for Prev formal on call to
15766         Check_Anonymous_Access_Components rather than Empty.
15767         (Make_Incomplete_Type_Declaration): Add test for case where the type has
15768         a record extension in deciding whether to create a class-wide type,
15769         rather than just checking Tagged_Present.
15770         (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
15771         to stand-alone object declarations as well as component declarations.
15772         (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
15773         prevent accidental overwriting when enclosing package appears in
15774         a limited_with_clause.
15775         (Array_Type_Declaration): If the component type is an anonymous access,
15776         the associated_node for the itype is the type declaration itself.
15777         (Add_Interface_Tag_Components): Modified to support concurrent
15778         types with abstract interfaces.
15779         (Check_Abstract_Interfaces): New subprogram that verifies the ARM
15780         rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
15781         (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
15782         to complete the decoration of synchronized interface types. Add also
15783         a call to Check_Abstract_Interfaces to verify the ARM rules.
15784         (Derive_Interface_Subprograms): Modified to support concurrent types
15785         with abstract interfaces.
15786         (Analyze_Subtype_Indication): Resolve the range with the given subtype
15787         mark, rather than delaying the full resolution depending on context.
15788         (Analyze_Component_Declaration,Analyze_Interface_Declaration,
15789         Analyze_Object_Declaration,Analyze_Subtype_Declaration,
15790         Array_Type_Declaration,Build_Derived_Record_Type,
15791         Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
15792         Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
15793         Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
15794         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
15795         called only when appropriate.
15796         (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
15797         to private type.
15798         (Analyze_Subtype_Declaration): For an access subtype declaration, create
15799         an itype reference for the anonymous designated subtype, to prevent
15800         scope anonmalies in gigi.
15801         (Build_Itype_Reference): New utility, to simplify construction of such
15802         references.
15803
15804 2007-04-06  Vincent Celier  <celier@adacore.com>
15805
15806         * errutil.adb (Initialize): Initialize warnings table, if all warnings
15807         are suppressed, supply an initial dummy entry covering all possible
15808         source locations.
15809
15810         * make.adb (Scan_Make_Arg): Reject options that should start with "--"
15811         and start with only one, such as "-RTS=none".
15812         (Collect_Arguments): Do not check for sources outside of projects.
15813         Do not collect arguments if project is externally built.
15814         (Compile_Sources): Do nothing, not even check if the source is up to
15815         date, if its project is externally built.
15816         (Compile): When compiling a predefined source, add -gnatpg
15817         as the second switch, after -c.
15818         (Compile_Sources): Allow compilation of Annex J renames without -a
15819         (Is_In_Object_Directory): Check if the ALI file is in the object
15820         even if there is no project extension.
15821         (Create_Binder_Mapping_File): Only put a unit in the mapping file for
15822         gnatbind if the ALI file effectively exists.
15823         (Initialize): Add the directory where gnatmake is invoked in front of
15824         the path if it is invoked from a bin directory, even without directory
15825         information, so that the correct GNAT tools will be used when spawned
15826         without directory information.
15827
15828         * makeusg.adb: Change switch -S to -eS
15829         Add lines for new switches -we, -wn and -ws
15830         Add line for new switch -p
15831
15832         * prj-proc.adb (Process): Set Success to False when Warning_Mode is
15833         Treat_As_Error and there are warnings.
15834
15835         * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
15836         -gnatww Change gnatmake switch -S to -eS
15837         (Scan_Make_Switches): Code reorganisation. Process separately multi
15838         character switches and single character switches.
15839         (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
15840         False when switch is not recognized by gnatmake.
15841         (Scan_Make_Switches): Set Setup_Projects True when -p or
15842         --create-missing-dirs is specified.
15843
15844         * fname.adb (Is_Predefined_File_Name): Return True for annex J
15845         renamings Calendar, Machine_Code, Unchecked_Conversion and
15846         Unchecked_Deallocation only when Renamings_Included is True.
15847
15848         * par.adb: Allow library units Calendar, Machine_Code,
15849         Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
15850         when -gnatg is not specified.
15851         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
15852         there is no need to generate always a record_definition_node in case
15853         of synchronized interface types.
15854         (SIS_Entry_Active): Initialize global variable to False
15855         (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
15856         indicate cases where AI-447 says "not null" is legal.
15857
15858         * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
15859
15860         * makegpr.adb (Check_Compilation_Needed): Take into account dependency
15861         files with with several lines starting with the object fileb name.
15862         (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
15863         is specified.
15864         (Initialize): Add the directory where gprmake is invoked in front of the
15865         path, if it is invoked from a bin directory or with directory
15866         information, so that the correct GNAT tools will be used when invoked
15867         directly.
15868         (Check_Compilation_Needed): Process correctly backslashes on Windows.
15869
15870         * vms_data.ads: Update switches/qualifiers
15871
15872 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15873             Thomas Quinot  <quinot@adacore.com>
15874
15875         * exp_aggr.adb:
15876         If the array component is a discriminated record, the array aggregate
15877         is non-static even if the component is given by an aggregate with
15878         static components.
15879         (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
15880         (Convert_Aggr_In_Allocator): If the allocator is for an access
15881         discriminant and the type is controlled. do not place on a finalization
15882         list at this point. The proper list will be determined from the
15883         enclosing object.
15884         (Build_Record_Aggr_Code): If aggregate has box-initialized components,
15885         initialize record controller if needed, before the components, to ensure
15886         that they are properly finalized.
15887         (Build_Record_Aggr_Code): For the case of an array component that has a
15888         corresponding array aggregate in the record aggregate, perform sliding
15889         if required.
15890
15891 2007-04-06  Javier Miranda  <miranda@adacore.com>
15892             Gary Dismukes  <dismukes@adacore.com>
15893             Ed Schonberg  <schonberg@adacore.com>
15894
15895         * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
15896         run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
15897
15898         * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
15899         accessibility on class-wide allocators if the allocator occurs at the
15900         same scope level as the allocator's type. The check is guaranteed to
15901         succeed in that case, even when the expression originates from a
15902         parameter of the containing subprogram.
15903         (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
15904         under No_Dispatching_Calls restriction. During the semantic analysis
15905         we already notified such violation.
15906         (Tagged_Membership): Constant folding. There is no need to check
15907         the tag at run-time if the type of the right operand is non
15908         class-wide abstract.
15909         Replace call to Is_Ancestor by call to Is_Parent
15910         to support concurrent types with interface types.
15911         (Expand_N_Allocator): Add an assertion associated with the generation
15912         of the master_id.
15913         (Expand_N_Slice): Do not enable range check to nodes associated
15914         with the frontend expansion of the dispatch table.
15915         (Is_Local_Access_Discriminant): Subsidiary function to
15916         Expand_N_Allocator.
15917         (Tagged_Membership): Replace generation of call to the run-time
15918         subprogram CW_Membership by call to Build_CW_Membership.
15919         (Expand_Allocator_Expression): Replace generation of call to the
15920         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
15921
15922         * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
15923         initialize most the TSD components by means of an aggregate.
15924         Modify the declaration of the object containing the TSD
15925         because we now expand code that has a higher level of abstraction.
15926         The TSD has a discriminant containing the Inheritance Depth Level,
15927         value that is used in the membership test but also to fix the size
15928         of the table of ancestors.
15929         (Expand_Interface_Conversion): Insert function body at the closest place
15930         to the conversion expression, to prevent access-before-elaboration
15931         errors in the backend.
15932         Code improved to reduce the size of the dispatch table if
15933         compiling under restriction No_Dispatching_Calls plus code cleanup.
15934         Code reorganization plus removal of calls to Set_Num_Prim_Ops
15935         (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
15936         (Expand_Dispatching_Call): Minor code reorganization plus addition of
15937         code to return immediately if compiling under No_Dispatching_Calls
15938         restriction.
15939         (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
15940         CPP_Virtual and CPP_Vtable are no longer supported.
15941         (Expand_Interface_Conversion): Add missing support for interface type
15942         derivations.
15943         (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
15944         Is_Parent to support concurrent types with interfaces.
15945         (Init_Predefined_Interface_Primitives): Removed.
15946         (Make_Secondary_DT): Modified to support concurrent record types.
15947         (Set_All_DT_Position): Modified to support concurrent record types.
15948         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
15949         with Get_External_Tag, Inherit_TSD, Set_External_Tag.
15950         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
15951         with CW_Membership.
15952         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
15953         with Get_Access_Level, Get_Predefined_Prim_Op_Address,
15954         Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
15955         Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
15956         Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
15957         (Expand_Dispatching_Call): Replace generation of call to the run-time
15958         subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
15959         calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
15960         Address.
15961         (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
15962         the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
15963         Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
15964         Build_Set_Prim_Op_Address.
15965         (Get_Remotely_Callable): Subprogram removed.
15966         (Init_Predefined_Interface_Primitives): Replace generation of call to
15967         the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
15968         Prims.
15969
15970         * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
15971         First (Parameter_Associations ()) with the call to First_Actual that
15972         returns an actual parameter expression for both named and positional
15973         associations.
15974
15975         * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
15976         check violation of restriction No_Dispatching_Calls.
15977         (Check_Controlling_Type): A formal of a tagged incomplete type is a
15978         controlling argument.
15979
15980         * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
15981         First/Next_Component_Or_Discriminant
15982         (Insert_Actions): Add entries for new N_Push and N_Pop nodes
15983         (Find_Implemented_Interface): Removed. All the calls to this subprogram
15984         specify Any_Limited_Interface, and this functionality is already
15985         provided by the function Has_Abstract_Interfaces.
15986         (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
15987         support concurrent types implementing interfaces.
15988         (Find_Implemented_Interface): Removed. All the calls to this subprogram
15989         specify kind Any_Limited_Interface, and this functionality is already
15990         provided by the function Has_Abstract_Interfaces.
15991         (Remove_Side_Effects): replace Controlled_Type by
15992         CW_Or_Controlled_Type whenever the issue is related to
15993         using or not the secondary stack.
15994
15995         * par-ch12.adb (P_Formal_Type_Definition): Update calls to
15996         P_Interface_Type_Definition to fulfill the new interface (the formal
15997         Is_Synchronized is no longer required).
15998
15999         * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
16000         Update dependencies.
16001
16002         * exp_atag.ads, exp_atag.adb: New file
16003
16004 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16005             Bob Duff  <duff@adacore.com>
16006             Cyrille Comar  <comar@adacore.com>
16007
16008         * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
16009         anonymous, use finalization list of enclosing dynamic scope.
16010         (Expand_N_Package_Declaration): For a library package declaration
16011         without a corresponding body, generate RACW subprogram bodies in the
16012         spec (just as we do for the task activation call).
16013         (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
16014         Is_Abstract_Type. Make sure these are called only when appropriate.
16015         Remove all code for DSP option
16016         (CW_Or_Controlled_Type): new subprogram.
16017
16018 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
16019             Ed Schonberg  <schonberg@adacore.com>
16020             Gary Dismukes  <dismukes@adacore.com>
16021
16022         * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
16023         parameter. If it is set to true, return a result capped according to
16024         the global upper bound for the index of an entry family.
16025         (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
16026         (Build_Find_Body_Index): Adjust for above change.
16027         (Entry_Index_Expression): Likewise.
16028         (Is_Potentially_Large_Family): New function extracted from...
16029         (Collect_Entry_Families): ...here. Call it to detect whether the family
16030         is potentially large.
16031         (Build_Entry_Count_Expression): If the family is potentially large, call
16032         Family_Size with 'Cap' set to true.
16033         (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
16034         a protected version of an operation declared in the private part of
16035         a protected object, because they may be invoked through a callback.
16036         (Set_Privals): If the type of a private component is an anonymous access
16037         type, do not create a new itype for each protected body.
16038         If the body of a protected operation creates
16039         controlled types (including allocators for class-widetypes), the
16040         body of the corresponding protected subprogram must include a
16041         finalization list.
16042         (Build_Activation_Chain_Entity): Build the chain entity for extended
16043         return statements.
16044         (Type_Conformant_Parameters): Use common predicate Conforming_Types
16045         to determine whether operation overrides an inherited primitive.
16046         (Build_Wrapper_Spec): Add code to examine the parents while looking
16047         for a possible overriding candidate.
16048         (Build_Simple_Entry_Call): Set No_Initialization on the object used to
16049         hold an actual parameter value since its initialization is separated
16050         from the the declaration. Prevents errors on null-excluding access
16051         formals.
16052
16053 2007-04-06  Thomas Quinot  <quinot@adacore.com>
16054             Pablo Oliveira  <oliveira@adacore.com>
16055
16056         * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
16057         Do an Unchecked_Conversion to handle the passage from the Underlying
16058         Type to the Base Type when calling Build_To_Any_Call and
16059         Build_From_Any_Call.
16060         (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
16061         E_Constant, depending upon Variable formal.
16062         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
16063         PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
16064         parameter that requires an extra constrained parameter, declare
16065         temporary for actual as a variable, not a constant.
16066         (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
16067         the unit being compiled is the one that contains the stub type.
16068         Change primitive operation name for the RACW associated with a RAS
16069         from Call to _Call so it cannot clash with any legal identifier.
16070         (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
16071         Is_RAS.
16072         (Append_RACW_Bodies): New subprogram.
16073         (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
16074         Add_Receiving_Stubs_To_Declarations functions.
16075         When expanding a package body, this list correspond to the
16076         statements in the HSS at the end of the pacakge.
16077         When expanding a package spec, this list correspond to the
16078         spec declarations.
16079         (Add_Receiving_Stubs_To_Declarations): Append the function
16080         registering the receiving stubs at the end of the 'Stmts' list.
16081         (RCI_Package_Locator): Pass the new Version generic formal when
16082         instantiating a RCI_Locator package.
16083         (Build_From_Any_Function): To compute the High bound for an
16084         unconstrained array actual, we add the Low bound with the length.
16085         Thus we must convert the low bound and the length to an appropriate
16086         type before doing the sum.
16087         (Build_Subprogram_Receiving_Stubs, PolyORB):
16088          * Retrieve the extra formals parameters at the
16089            end of the parameter stream.
16090          * Use Move_Any_Value to write back out parameters
16091            after executing the request as it is more efficient
16092            than Copy_Any_Value.
16093          * Build the any containing Extra Formals with the
16094            appropriate typecode.
16095         (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
16096         empty Component_List.
16097         (Build_Actual_Object_Declaration): New subprogram. Build and insert into
16098         the tree the declaration for an object that serves as actual parameter
16099         in server-side stubs.
16100         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
16101         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
16102         Use Build_Actual_Object_Declaration to prepare the actuals.
16103         (Add_Parameter_To_NVList): Set the parameter mode to In for
16104         Extra Constrained Parameters.
16105         (Build_General_Calling_Stubs): Set the parameter type to boolean for
16106         Extra Constrained parameters.
16107         (Build_To_Any_Function, Build_From_Any_Function,
16108         Built_TypeCode_Function): When Typ is implicit, call the correct
16109         function with the first not implicit parent type.
16110         (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
16111         (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
16112         typecode from the Etype. Therefore we retrieve the correct typecode
16113         with a call to Get_Any_Type.
16114         (Copy_Specification): Do controlling formal type substitution based on
16115         Is_Controlling_Formal flag, instead of caller-provided object type.
16116         (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
16117         a RACW primitive operation, we might get a subprogram declaration for an
16118         ancestor of the RACW designated type (not for the designated type
16119         itself), in the case where this operation is inherited. In this case we
16120         have no easy means of determining the original tagged type for which
16121         the primitive was declared, so instead we now rely on
16122         Copy_Specification to use the Is_Controlling_Formal flag to determine
16123         which formals require type substitution.
16124
16125 2007-04-06  Robert Dewar  <dewar@adacore.com>
16126             Ed Schonberg  <schonberg@adacore.com>
16127
16128         * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
16129         GNAT.Current_Exception are not allowed if pragma Restrictions
16130         (No_Exception_Propagation) is set and in any case make the associated
16131         handler unsuitable as a target for a local raise statement.
16132         (Expand_Dispatching_Constructor_Call): Replace generation of call to the
16133         run-time subprogram CW_Membership by call to Build_CW_Membership.
16134         (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
16135         by a function call, a temporary must be created before expanding the
16136         Constructor_Call itself, to prevent out-of-order elaboration in the
16137         back-end when stack checking is enabled..
16138
16139 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16140
16141         * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
16142         result are the bounds of the left operand, not the right.
16143
16144 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16145
16146         * exp_strm.adb
16147         (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
16148          discriminant defaults.
16149         (Build_Record_Or_Elementary_Output_Procedure): Ditto.
16150         (Make_Component_List_Attributes): Ditto.
16151
16152 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16153             Bob Duff  <duff@adacore.com>
16154
16155         * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
16156         an association with a box as providing a value even though the
16157         initialization procedure for the type is not available.
16158         (Resolve_Record_Aggregate): Check that a choice of an association with a
16159         box corresponds to a component of the type.
16160         (Resolve_Record_Aggregate): Split Is_Abstract flag into
16161         Is_Abstract_Subprogram and Is_Abstract_Type.
16162
16163         * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
16164         assert.
16165
16166         * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
16167         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
16168         called only when appropriate.
16169
16170 2007-04-06  Olivier Hainque  <hainque@adacore.com>
16171
16172         * g-alleve.ads (Low Level Vector type definitions): Map each to the
16173         associated vector view instead of all to the unsigned char view.
16174
16175         * g-altcon.adb (Generic_Conversions): New internal generic package,
16176         offering facilities for all the Vector/View conversion routines
16177         implemented by this unit.
16178         (To_View/To_Vector - all versions): Reimplemented in a systematic
16179         manner, using the internal Generic_Conversions facilities.
16180
16181 2007-04-06  Pascal Obry  <obry@adacore.com>
16182
16183         * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
16184         string.
16185         (Create): Free the source string before storing the new one.
16186
16187 2007-04-06  Vincent Celier  <celier@adacore.com>
16188
16189         * g-debpoo.adb (Validity): New package with a complete new
16190         implementation of subprograms Is_Valid and Set_Valid.
16191         (Is_Valid): Move to local package Validity
16192         (Set_Valid): Move to local package Validity
16193
16194 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
16195             Pablo Oliveira  <oliveira@adacore.com>
16196
16197         * g-expect.adb (Get_Command_Output): When expanding the output buffer
16198         we must ensure that there is enough place for the new data we are going
16199         to copy in.
16200
16201 2007-04-06  Thomas Quinot  <quinot@adacore.com>
16202
16203         * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
16204         computation.
16205
16206 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
16207             Vincent Celier  <celier@adacore.com>
16208
16209         * gnatcmd.adb (B_Start): Add prefix of binder generated file.
16210         (Stack_String): Add this String that contains the name of the Stack
16211         package in the project file.
16212         (Packages_To_Check_By_Stack): Add this list that contains the packages
16213         to be checked by gnatstack, which are the naming and the stack packages.
16214         (Check_Files): If no .ci files were specified for gnatstack we add all
16215         the .ci files belonging to the projects, including binder generated
16216         files.
16217         (Non_VMS_Usage): Document that gnatstack accept project file switches.
16218         (GNATCmd): Update the B_Start variable if we are in a VMS environment.
16219         Add gnatstack to the list of commands that use project file related
16220         switches, and get the single attribute Switches from the stack package
16221         in a project file when calling gnatstack. Parse the -U flag for
16222         processing files belonging to all projects in the project tree.
16223         Remove all processing for command Setup
16224
16225         * prj-attr.adb: Add new package Stack with single attribute Switches
16226
16227         * vms_conv.ads (Command_Type): Add command Stack.
16228         Move to body declarations that are only used in the body: types Item_Id,
16229         Translation_Type, Item_Ptr, Item and its subtypes.
16230
16231         * vms_conv.adb: (Initialize): Add data for new command Stack.
16232         Add declarations moved from the spec: types Item_Id, Translation_Type,
16233         Item_Ptr, Item and its subtypes.
16234         (Cargs_Buffer): New table
16235         (Cargs): New Boolean global variable
16236         (Process_Buffer): New procedure to create arguments
16237         (Place): Put character in table Buffer or Cargs_Buffer depending on the
16238          value of Cargs.
16239         (Process_Argument): Set Cargs when processing qualifiers for GNAT
16240         COMPILE
16241         (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
16242         empty, for table Cargs_Buffer.
16243         (Initialize): Remove component Setup in Command_List
16244
16245 2007-04-06  Vincent Celier  <celier@adacore.com>
16246
16247         * gprep.adb (Process_Files.Process_One_File): Use full file name when
16248         issuing pragma Source_Reference.
16249
16250 2007-04-06  Emmanuel Briot  <briot@adacore.com>
16251
16252         * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
16253         [[:xdigit:]] character class.
16254         Also raise an exception when an invalid character class is used.
16255
16256 2007-04-06  Pascal Obry  <obry@adacore.com>
16257
16258         * i-cstrea.ads: (fopen): Add encoding parameter.
16259         (freopen): Idem.
16260         Change reference from a-sysdep.c to sysdep.c in comment.
16261         Update copyright notice.
16262         This set of patch add support for the encoding form parameter.
16263
16264         * mingw32.h (S2WSU): New macro to convert from a string to a
16265         wide-string using the UTF-8 encoding. The S2WS macro supports now only
16266         standard 8bits encoding.
16267         (WS2SU): As above but converting from wide-sring to string.
16268         This is needed as it is necessary to have access to both versions in the
16269         runtime for the form parameter encoding support.
16270         This set of patch add support for the encoding form parameter.
16271         (S2WS): Improve implementation to handle cases where the filename is not
16272         UTF-8 encoded. In this case we default to using the current code page
16273         for the conversion.
16274
16275         * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
16276         type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
16277         the constants defined in adaint.h.
16278         (fopen): Add encoding parameter.
16279         (freopen): Idem.
16280
16281         * s-ficobl.ads (AFCB): Add Encoding field to record the filename
16282         encoding. This is needed for the Reset routine (freopen low level-call).
16283
16284         * s-fileio.adb (Open): Decode encoding form parameter and set the
16285         corresponding encoding value into AFCB structure.
16286         (Reset): Pass the encoding value to freopen.
16287         (Close): Move the call to Lock_Task to the beginning of the procedure.
16288
16289 2007-04-06  Geert Bosch  <bosch@adacore.com>
16290             Robert Dewar  <dewar@adacore.com>
16291
16292         * i-fortra.ads: Add Double_Complex type.
16293
16294         * impunit.adb: (Is_Known_Unit): New function
16295         Add Gnat.Byte_Swapping
16296         Add GNAT.SHA1
16297         Add new Ada 2005 units
16298         Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
16299         Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
16300         Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
16301         Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
16302
16303         * impunit.ads (Is_Known_Unit): New function
16304
16305         * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
16306         a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
16307         a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
16308         g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
16309         s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
16310         s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
16311         New files.
16312
16313         * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
16314
16315         * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
16316
16317 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
16318             Arnaud Charlet  <charlet@adacore.com>
16319
16320         * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
16321         __gnat_adjust_context_for_raise.
16322         (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
16323         implementation of floating point operations as native x86 targets.
16324         So the FPU should be initialized in the same way using finit. Fix
16325         floating point operations accuracy issues.
16326         (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
16327         member in struct sigaction, so as to avoid warning for incompatible
16328         pointer types.
16329
16330 2007-04-06 Serguei Rybin  <rybin@adacore.com>
16331
16332         * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
16333         switches from previously loaded tree
16334
16335 2007-04-06  Thomas Quinot  <quinot@adacore.com>
16336
16337         * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
16338         cases where a given dependency has a body or not.
16339         (Write_With_File_Names): New subprogram, common code for the two cases
16340         above.
16341
16342 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16343             Javier Miranda  <miranda@adacore.com>
16344
16345         * lib-xref.ads, lib-xref.adb:
16346         Modify the loop that collects type references, to include interface
16347         types that the type implements. List each of these interfaces when
16348         building the entry for the type.
16349         (Generate_Definition): Initialize component Def and Typ of new entry
16350         in table Xrefs, to avoid to have these components unitialized.
16351         (Output_References): Split Is_Abstract flag into
16352         Is_Abstract_Subprogram and Is_Abstract_Type.
16353         (Generate_Reference): Add barrier to do not generate the warning
16354         associated with Ada 2005 entities with entities generated by the
16355         expander.
16356
16357 2007-04-06  Robert Dewar  <dewar@adacore.com>
16358             Arnaud Charlet  <charlet@adacore.com>
16359             Vincent Celier  <celier@adacore.com>
16360
16361         * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
16362         Update 'Exception Handling Control' chapter which was outdated.
16363         Minor fix to documentation of -gnatwq
16364         Remove section "Adapting the Run Time to a New C++ Compiler" because
16365         it is now obsolete.
16366         Add passage on need of -nostart-files in some non-ada-main cases.
16367         Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
16368         Update documentation about Interfacing with C++
16369         Add documentation for new gnatmake switch -p
16370         Add missing protocol part in URLs.
16371         Document -gnatyA
16372         Document pragma Compile_Time_Error
16373         Add documentation for Object_Size indicating that stand alone
16374         objects can have a larger size in some cases.
16375         Add node for GNAT.Byte_Swapping, GNAT.SHA1
16376         Update reference to the Ravenscar profile.
16377         Document pragma Unreferenced_Objects
16378
16379         * gnat-style.texi: Fix typo
16380
16381 2007-04-06  Vincent Celier  <celier@adacore.com>
16382
16383         * mlib.adb (Building_Library): Only output "building a library..." in
16384         verbose mode
16385
16386         * mlib-prj.adb (Build_Library): Only output lists of object and ALI
16387         files in verbose mode.
16388
16389         * mlib-utl.adb (Ar): Only output the first object files when not in
16390         verbose mode.
16391         (Gcc): Do not display all the object files if not in verbose mode, only
16392         the first one.
16393
16394 2007-04-06  Robert Dewar  <dewar@adacore.com>
16395
16396         * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
16397         it no longer destroys the contents of Name_Buffer or Name_Len and
16398         non-standard and invalid names are handled better.
16399         (Get_Decoded_Name_String): Improve performance by using
16400         Name_Has_No_Encodings flag in the name table.
16401         (Is_Valid_Name): New function to determine whether a Name_Id is valid.
16402         Used for debugging printouts.
16403
16404 2007-04-06  Robert Dewar  <dewar@adacore.com>
16405             Javier Miranda  <miranda@adacore.com>
16406             Bob Duff  <duff@adacore.com>
16407
16408         * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
16409         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
16410         there is no need to generate always a record_definition_node in case
16411         of synchronized interface types.
16412         (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
16413         (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
16414         illegal in Ada 95, in cases where it is legal. Change the warnings to
16415         errors in other cases. Don't give the error unless the "not null"
16416         parses properly. Correct the source position at which the error occurs.
16417         (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
16418         P_Null_Exclusion, to suppress "not null" warnings.
16419         (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
16420         associated goto statements.
16421
16422         * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
16423         of END RECORD
16424
16425         * scans.ads (Type_Token_Location): New flag
16426
16427         * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
16428         (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
16429         P_Null_Exclusion, to suppress "not null" warnings.
16430
16431 2007-04-06  Robert Dewar  <dewar@adacore.com>
16432             Javier Miranda  <miranda@adacore.com>
16433             Bob Duff  <duff@adacore.com>
16434             Vincent Celier  <celier@adacore.com>
16435
16436         * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
16437         (Extensions_Allowed): No longer sets Ada_Version
16438         Entry for pragma Unreferenced_Objects
16439
16440         * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
16441         system.tasking if pragma priority used in a procedure
16442         (Analyze_Pragma, case Warning): Handle dot warning switches
16443         (Process_Compile_Time_Warning_Or_Error): New procedure
16444         (Analyze_Pragma): Add processing for Compile_Time_Error
16445         Add support for extra arguments External_Name and Link_Name.
16446         Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
16447         (Process_Import_Or_Interface): Add support for the use of pragma Import
16448         with tagged types.
16449         (Extensions_Allowed): No longer affects Ada_Version
16450         (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
16451         Is_Abstract_Type. Make sure these are called only when appropriate.
16452         Add processing for pragma Unreferenced_Objects
16453
16454         * snames.h, snames.ads, snames.adb: Add entry for pragma
16455         Compile_Time_Error
16456         Add new standard name Minimum_Binder_Options for new gprmake
16457         Add new standard names for gprmake: Archive_Suffix,
16458         Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
16459         Library_Support, Library_Version_Options,
16460         Shared_Library_Minimum_Options,
16461         Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
16462         Change Name_Call to Name_uCall so that it cannot clash with a legal
16463         subprogram name.
16464         Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
16465         Append C_Plus_Plus to convention identifiers as synonym for CPP
16466         Add new standard names Stack and Builder_Switches
16467         Add new standard names: Compiler_Minimum_Options, Global_Config_File,
16468         Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
16469         Run_Path_Option, Toolchain_Version.
16470         Entry for pragma Unreferenced_Objects
16471
16472         * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
16473         switches, without repetition of "eD". Make sure that last character of
16474         -gnatep= switch is not taken as -gnat switch character.
16475         Complete rewrite of circuit for handling saving compilation options
16476         Occasioned by need to support dot switchs for -gnatw, but cleans up
16477         things in general.
16478         -gnatX does not affect Ada_Version
16479         Include -gnatyA in -gnatg style switches
16480
16481         * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
16482         warnings on return objects.
16483         (Warn_On_Useless_Assignment): Exclude warnings on return objects
16484         (Set_Dot_Warning_Switch): New procedure
16485         (Check_References): Add missing case of test for
16486         Has_Pragma_Unreferenced_Objects
16487         (Output_Unreferenced_Messages): Implement effect of new pragma
16488         Unreferenced_Objects, remove special casing of limited controlled
16489         variables.
16490
16491 2007-04-06  Vincent Celier  <celier@adacore.com>
16492
16493         * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
16494         the default project path, initially done during elaboration of the
16495         package.
16496         If the prefix returned by Sdefault is null, get the prefix from a call
16497         to Executable_Prefix_Path.
16498         (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
16499         null.
16500
16501         * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
16502         canonical directory name to open the directory from which files are
16503         retrieved.
16504         (Record_Other_Sources): Idem.
16505         (Locate_Directory): Add the possibility to create automatically missing
16506         directories when Setup_Projects is True.
16507         Call Locate_Directory so that the directory will be created when
16508         Setup_Projects is True, for object dir, library dir, library ALI dir,
16509         library source copy dir and exec dir.
16510
16511         * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
16512         versions of GNAT.
16513
16514 2007-04-06  Robert Dewar  <dewar@adacore.com>
16515
16516         * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
16517         Use First/Next_Component_Or_Discriminant
16518         (Analyze_Record_Representation_Clause):
16519         Use First/Next_Component_Or_Discriminant
16520         (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
16521         (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
16522         definition if type is unconstrained.
16523         (Adjust_Record_For_Reverse_Bit_Order): New procedure
16524         (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
16525         Is_Abstract_Subprogram and Is_Abstract_Type.
16526         (Adjust_Record_For_Reverse_Bit_Order): New procedure
16527
16528         * repinfo.adb (List_Record_Info): Use First/
16529         Next_Component_Or_Discriminant.
16530
16531         * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
16532         New procedure.
16533
16534         * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
16535         Include -gnatyA in default switches
16536
16537         * opt.ads: (Warn_On_Non_Local_Exception): New flag
16538         (Warn_On_Reverse_Bit_Order): New flag
16539         (Extensions_Allowed): Update the documentation.
16540         (Warn_On_Questionable_Missing_Parens): Now on by default
16541
16542         * usage.adb: Add documentation of -gnatw.x/X switches
16543         Document new -gnatyA style switch
16544         -gnatq warnings are on by default
16545
16546 2007-04-06  Ed Falis  <falis@adacore.com>
16547
16548         * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
16549         full word is no longer compared twice.
16550
16551 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16552
16553         * sem_ch10.adb (Install_Limited_Context_Clauses.
16554         Expand_Limited_With_Clause): Use a new copy of selector name in the
16555         call to Make_With_Clause. This fixes the tree structure for ASIS
16556         purposes. Nothing is changed in the compiler behaviour.
16557         (Process_Body_Clauses): Handle properly use clauses whose prefix is
16558         a package renaming.
16559         (Install_Limited_With_Clauses): Do not install non-limited view when it
16560         is still incomplete.
16561
16562 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16563             Gary Dismukes  <dismukes@adacore.com>
16564
16565         * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
16566         when capturing size information, instead of base type, which for a
16567         formal array type will be the unconstrained type.
16568         (Analyze_Formal_Object_Declaration): Add check for illegal default
16569         expressions for a formal in object of a limited type.
16570         (Instantiate_Object): Ditto.
16571         (Check_Formal_Package_Instance): Skip entities that are formal objects,
16572         because they were defaulted in the formal package and no check applies
16573         to them.
16574         (Check_Formal_Package_Instance): Extend conformance check to other
16575         discrete types beyond Integer.
16576         (Process_Default): Copy directly the unmatched formal. A generic copy
16577         has already been performed in Analyze_Formal_Package.
16578         (Analyze_Associations): If a formal subprogram has no match, check for
16579         partial parametrization before looking for a default, to prevent
16580         spurious errors.
16581         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
16582         not set the instantiation environment before analyzing the actuals.
16583         Fixes regression on 8515-003 with implementation of AI-133.
16584         Set_Instance_Env checks whether the generic unit is a predefined
16585         unit, in which case the instance must be analyzed with the latest Ada
16586         mode. This setting must take place after analysis of the actuals,
16587         because the actuals must be analyzed and frozen in the Ada mode extant
16588         outside of the current instantiation.
16589         (Save_Env, Restore_Env): Preserve and restore the configuration
16590         parameters so that predefined units can be compiled in the proper Ada
16591         mode.
16592         (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
16593         Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
16594         and Is_Abstract_Type.
16595         (Analyze_Formal_Package): For better error recovery, Add exception
16596         handler to catch Instantion_Error, which can be raised in
16597         Analyze_Associations
16598
16599 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16600             Bob Duff  <duff@adacore.com>
16601             Gary Dismukes  <dismukes@adacore.com>
16602
16603         * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
16604         prefix type is a discriminated subtype of the type of the formal.
16605         (Analyze_Allocator): Collect all coextensions regardless of the context.
16606         Whether they can be allocated statically is determined in exp_ch4.
16607         (Analyze_Selected_Component): If the prefix is a limited view and the
16608         non-limited view is available, use the non-limited one.
16609         (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
16610         therefore illegal), suggest a qualified expression rather than a type
16611         conversion, because a type conversion would be illegal in this context.
16612         (Anayze_Allocator): Trace recursively all nested allocators so that all
16613         coextensions are on the corresponding list for the root. Do no mark
16614         coextensions if the root allocator is within a declaration for a stack-
16615         allocated object, because the access discriminants will be allocated on
16616         the stack as well.
16617         (Analyze_Call): Remove restriction on calls to limited functions for the
16618         cases of generic actuals for formal objects, defaults for formal objects
16619         and defaults for record components.
16620         (Analyze_Allocator): Before analysis, chain coextensions on the proper
16621         element list. Their expansion is delayed until the enclosing allocator
16622         is processed and its finalization list constructed.
16623         (Try_Primitive_Operation): If the prefix is a concurrent type, looks
16624         for an operation with the given name among the primitive operations of
16625         the corresponding record type.
16626         (Analyze_Selected_Component): If the prefix is a task type that
16627         implements an interface, and there is no entry with the given name,
16628         check whether there is another primitive operation (e.g. a function)
16629         with that name.
16630         (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
16631         properly the indexing of a function call written in prefix form, where
16632         the function returns an array type, and all parameters of the function
16633         except the first have defaults.
16634         (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
16635         the original operands, rather than relocating them, for efficiency and
16636         to work properly when an operand is overloaded.
16637         (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
16638         Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
16639         (Analyze_Selected_Component): If the prefix is a private extension, only
16640         scan the visible components, not those of the full view.
16641         (Try_Primitive_Operation): If the operation is a procedure, collect all
16642         possible interpretations, as for a function, because in the presence of
16643         classwide parameters several primitive operations of the type can match
16644         the given arguments.
16645
16646 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16647             Robert Dewar  <dewar@adacore.com>
16648
16649         * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
16650         tag-indeterminate call to an abstract function, when the left-hand side
16651         is not classwide.
16652         (Analyze_Loop_Statement): Improve detection of infinite loops
16653
16654 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16655             Thomas Quinot  <quinot@adacore.com>
16656
16657         * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
16658         out of Analyze_Package_Declaration, because processing must be applied
16659         to package bodies as well, for deferred constants completed by pragmas.
16660         (Analyze_Package_Declaration): When the package declaration being
16661         analyzed does not require an explicit body, call Check_Completion.
16662         (May_Need_Implicit_Body): An implicit body is required when a package
16663         spec contains the declaration of a remote access-to-classwide type.
16664         (Analyze_Package_Body): If the package contains RACWs, append the
16665         pending subprogram bodies generated by exp_dist at the end of the body.
16666         (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
16667         Is_Abstract_Subprogram and Is_Abstract_Type.
16668         (Preserve_Full_Attributes): The full entity list is not an attribute
16669         that must be preserved from full to partial view.
16670
16671         * sem_dist.adb (Add_RAS_Dereference_TSS):
16672         Change primitive name to _Call so it cannot clash with any legal
16673         identifier, and be special-cased in Check_Completion.
16674         Mark the full view of the designated type for the RACW associated with
16675         a RAS as Comes_From_Source to get proper view switching when installing
16676         private declarations.
16677         Provite a placeholder nested package body along with the nested spec
16678         to have a place for Append_RACW_Bodies to generate the calling stubs
16679         and stream attributes.
16680
16681 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16682             Robert Dewar  <dewar@adacore.com>
16683
16684         * sem_ch8.adb (Has_Components): If the argument is an incomplete type
16685         that is a limited view, check the non-limited view if available.
16686         (Undefined): Refine error message for missing with of Text_IO
16687         (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
16688         to distinguish real missing with cases.
16689         Fix format of all missing with messages
16690         (Analyze_Subprogram_Renaming): Emit proper error message on illegal
16691         renaming as body when renamed entity is abstract.
16692
16693 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16694             Javier Miranda  <miranda@adacore.com>
16695
16696         * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
16697         predicate recursive, to handle complex expressions on literals whose
16698         spurious ambiguity comes from the abstract interpretation of some
16699         subexpression.
16700         (Interface_Present_In_Ancestor): Add support to concurrent record
16701         types.
16702         (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
16703         Is_Abstract_Subprogram and Is_Abstract_Type.
16704
16705 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16706             Javier Miranda  <miranda@adacore.com>
16707
16708         * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
16709         dereference of a local object R created as a reference to another
16710         object O, use the access level of O.
16711         (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
16712         rather than local Same_Formal_Type, to check whether protected operation
16713         overrides an inherited one.
16714         (Same_Formal_Type): New predicate, used when matching signatures of
16715         overriding synchronized operations, to handle the case when a formal
16716         has a type that is a generic actual.
16717         (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
16718         predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
16719         (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
16720         syntactic ambiguities involving indexing of function calls that return
16721         arrays.
16722         (Abstract_Interface_List): New subprogram that returns the list of
16723         abstract interfaces associated with a concurrent type or a
16724         concurrent record type.
16725         (Interface_Present_In_Parent): New subprogram used to check if a
16726         given type or some of its parents implement a given interface.
16727         (Collect_Abstract_Interfaces): Add support for concurrent types
16728         with interface types.
16729         (Has_Abstract_Interfaces): Add support for concurrent types with
16730         interface types.
16731         (Is_Parent): New subprogram that determines whether E1 is a parent
16732         of E2. For a concurrent type its parent is the first element of its
16733         list of interface types; for other types this function provides the
16734         same result than Is_Ancestor.
16735         (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
16736         (Collect_Synchronized_Interfaces): Removed because the subprogram
16737         Collect_Abstract_Interfaces provides this functionality.
16738         (Collect_Abstract_Interfaces): Minor update to give support to
16739         concurrent types and thus avoid undesired code duplication.
16740         (Get_Subprogram_Entity): Handle entry calls.
16741         (May_Be_Lvalue): Include actuals that appear as in-out parameters in
16742         entry calls.
16743         (Enter_Name): Do not give -gnatwh hiding warning for record component
16744         entities, they never result in hiding.
16745
16746 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16747             Robert Dewar  <dewar@adacore.com>
16748
16749         * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
16750         to chain nested components that are allocators for access discriminants
16751         of the enclosing object.
16752         Add N_Push and N_Pop nodes
16753         New field Exception_Label added
16754         (Local_Raise_Statements): New field in N_Exception_Handler_Node
16755         (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
16756         (Is_Coextension): New flag for allocators, to mark allocators that
16757         correspond to access discriminants of dynamically allocated objects.
16758         (N_Block_Statement): Document the fact that the corresponding entity
16759         can be an E_Return_Statement.
16760         (Is_Coextension): New flag for allocators.
16761         Remove all code for DSP option
16762
16763         * sprint.ads, sprint.adb: Display basic information for class_wide
16764         subtypes. Add handling of N_Push and N_Pop nodes
16765
16766 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
16767
16768         * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
16769         before propagating exception.
16770
16771 2007-04-06  Olivier Hainque  <hainque@adacore.com>
16772
16773         * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
16774         an address always within the call instruction from a return address.
16775
16776 2007-04-06  Olivier Hainque  <hainque@adacore.com>
16777             Eric Botcazou  <botcazou@adacore.com>
16778
16779         * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
16780         expression with a COMPOUND_EXPR including the call instead of emitting
16781         the call directly here.
16782         (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
16783         high bound is constant and the slice is empty.  Tidy.
16784         (tree_transform, case N_Op_Not): Handle properly the case where the
16785         operation applies to a private type whose full view is a modular type.
16786         (Case_Statement_To_gnu): If an alternative is an E_Constant with an
16787         Address_Clause, use the associated Expression as the GNAT tree
16788         representing the choice value to ensure the corresponding GCC tree is
16789         of the proper kind.
16790         (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
16791         instead of just the operands, as the base GCC stabilize_reference does.
16792         <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
16793         requested; otherwise fail.
16794         (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
16795
16796 2007-04-06  Thomas Quinot  <quinot@adacore.com>
16797
16798         * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
16799         implementation of UI_Div.
16800         (UI_Div): Reimplement as a call to UI_Div_Rem.
16801         (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
16802         remainder, avoiding the cost of a multiplication and a subtraction.
16803         (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
16804         provides both quotient and remainder in a single computation.
16805         (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
16806         functions for uint.
16807         (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
16808         is undefined if the given n is not inversible.
16809
16810 2007-04-06  Olivier Hainque  <hainque@adacore.com>
16811
16812         * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
16813         BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
16814         opcodes.
16815
16816 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
16817             Olivier Hainque  <hainque@adacore.com>
16818
16819         * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
16820         when updating the contents of the old pointer to an unconstrained array.
16821         (end_subprog_body): Set error_gnat_node to Empty.
16822         (write_record_type_debug_info): Do not be unduly sparing with our bytes.
16823         (unchecked_convert): For subtype to base type conversions, require that
16824         the source be a subtype if it is an integer type.
16825         (builtin_decls): New global, vector of available builtin functions.
16826         (gnat_pushdecl): Add global builtin function declaration nodes to the
16827         builtin_decls list.
16828         (gnat_install_builtins): Adjust comments.
16829         (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
16830         calling gnat_pushdecl, so that it knows when it handed a builtin
16831         function declaration node.
16832         (builtin_decl_for): Search the builtin_decls list.
16833
16834 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
16835
16836         * s-stchop-vxworks.adb:
16837         (Stack_Check): Raise Storage_Error if the argument has wrapped around.
16838
16839 2007-04-06  Robert Dewar  <dewar@adacore.com>
16840             Arnaud Charlet  <charlet@adacore.com>
16841
16842         * a-diroro.ads: Inserted the pragma Unimplemented_Unit
16843
16844         * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
16845         of files
16846         Add mention of -Sev (set initialize_scalars option from environment
16847         variable at run time) in gnatbind usage message.
16848
16849         * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
16850
16851         * fname-uf.ads: Minor comment fix
16852
16853         * osint.ads: Change pragma Elaborate to Elaborate_All
16854
16855         * par-load.adb: Add documentation.
16856
16857         * sem_cat.ads, sem_cat.adb: Minor code reorganization
16858
16859         * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
16860
16861         * s-secsta.ads: Extra comments
16862
16863         * s-soflin.ads: Minor comment fixes
16864
16865         * s-stratt.ads (Block_Stream_Ops_OK): Removed.
16866
16867         * s-wchcon.ads: Minor comment addition
16868
16869         * treepr.adb: Minor change in message
16870         (Print_Name,Print_Node): Make these debug printouts more robust: print
16871         "no such..." instead of crashing on bad input.
16872
16873 2007-03-30  Rafael Ávila de Espíndola  <espindola@google.com>
16874
16875         * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
16876         instead of gnat_signed_or_unsigned_type.
16877         * utils.c (gnat_signed_or_unsigned_type): Remove.
16878         * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
16879         * gigi.h (gnat_signed_or_unsigned_type): Remove
16880
16881 2007-03-09  Roger Sayle  <roger@eyesopen.com>
16882
16883         * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
16884         fold with the result of buildN.
16885         * decl.c (gnat_to_gnu_entity): Likewise.
16886         * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
16887         * utils.c (finish_record_type, merge_sizes, max_size, convert):
16888         Likewise.
16889         * utils2.c (gnat_truthvalue_conversion, compare_arrays,
16890         nonbinary_modular_operation, build_binary_op, build_unary_op,
16891         build_cond_expr): Likewise.
16892
16893         * utils.c (convert): Use fold_build1 when casting values to void.
16894         * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
16895         fold_convert instead of convert when appropriate.
16896
16897 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
16898
16899         * Make-lang.in: Add install-pdf target as copied from
16900         automake v1.10 rules.
16901
16902 2007-02-28  Andreas Schwab  <schwab@suse.de>
16903
16904         * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
16905         $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
16906         (doc/gnat-style.info): Likewise.
16907
16908 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
16909
16910         * gnat-style.texi: Standardize title page.
16911         * gnat_rm.texi: Likewise.
16912         * gnat_ugn.texi: Likewise.
16913
16914 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
16915
16916         * decl.c (annotate_value): Adjust for refactoring of tree_map
16917         hierarchy.
16918
16919 2007-02-24  Mark Mitchell  <mark@codesourcery.com>
16920
16921         * decl.c (annotate_value): Adjust for refactoring of tree_map
16922         hierarchy.
16923
16924 2007-02-21  Ed Schonberg  <schonberg@adacore.com>
16925
16926         PR ada/18819
16927         * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
16928         untagged derived type, add hidden components to keep discriminant
16929         layout consistent, when a given discriminant of the derived type
16930         constraints several discriminants of the parent type.
16931
16932 2007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
16933             Sandra Loosemore  <sandra@codesourcery.com>
16934
16935         * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
16936         build the call expression.
16937         (gnat_stabilize_reference_1): Handle tcc_vl_exp.
16938         * utils.c (max_size) <tcc_exceptional>: Delete.
16939         <tcc_vl_exp>: New case.
16940         <tcc_expression>: Delete CALL_EXPR subcase.
16941         (build_global_cdtor): Use build_call_nary instead of build3.
16942         * utils2.c (build_call_1_expr): Likewise.
16943         (build_call_2_expr): Likewise.
16944         (build_call_0_expr): Likewise.
16945         (build_call_alloc_dealloc): Likewise.
16946
16947 2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
16948
16949         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
16950         get_action_description_for): Replace _Unwind_Word with _uleb128_t
16951         and _Unwind_SWord with _sleb128_t.
16952
16953 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
16954
16955         * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
16956         * decl.c: Include gt-ada-decl.h.
16957         (annotate_value_cache): New.
16958         (annotate_value): Use it instead of TREE_COMPLEXITY.
16959
16960 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
16961
16962         * misc.c, utils2.c: Fix comment typos.
16963
16964 2007-01-24  Roger Sayle  <roger@eyesopen.com>
16965
16966         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
16967         TREE_CONSTANT_OVERFLOW.
16968         (allocatable_size_p, annotate_value): Likewise.
16969         * trans.c (gnat_to_gnu): Likewise.
16970         * utils.c (unchecked_convert): Likewise.
16971         * utils2.c (build_simple_component_ref): Likewise.
16972
16973 2007-01-23  Richard Guenther  <rguenther@suse.de>
16974
16975         PR bootstrap/30541
16976         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
16977         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
16978         (gnatboot3): Likewise.
16979         (GNATBIND): Do not define.
16980         * Makefile.in (GNATBIND): Do not define.
16981
16982 2007-01-08  Richard Guenther  <rguenther@suse.de>
16983
16984         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
16985         * trans.c (gnat_to_gnu): Likewise.
16986
16987 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
16988
16989         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
16990         * adaint.c: Likewise.
16991
16992 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
16993
16994         Merge from gimple-tuples-branch:
16995         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
16996
16997         * ada-tree.h (lang_tree_node): Handle gimple tuples.
16998         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
16999         GIMPLE_MODIFY_STMT.
17000
17001 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
17002
17003         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
17004         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
17005         Fix typos.
17006
17007 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
17008
17009         PR ada/27936
17010         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
17011         if the initializer takes into account the padding.
17012
17013 2006-11-11  Richard Guenther  <rguenther@suse.de>
17014
17015         * trans.c (maybe_stabilize_reference): Remove handling of
17016         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
17017
17018 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
17019
17020         PR ada/29707
17021         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
17022         (To_Target_Priority): New function.
17023
17024 2006-10-31  Robert Dewar  <dewar@adacore.com>
17025
17026         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
17027         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
17028         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
17029         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
17030         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
17031         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
17032         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
17033         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
17034         a-szbzha.adb: Minor reformatting. Fix header.
17035
17036         * a-numaux-x86.adb: Add parentheses for use of unary minus
17037         * a-ngcefu.adb: Supply missing parentheses for unary minus
17038         * a-ngcoty.adb: Add parens for use of unary minus
17039         * a-ngelfu.adb: Add missing parens for unary minus
17040         * a-tifiio.adb: Add parentheses for uses of unary minus
17041
17042 2006-10-31  Robert Dewar  <dewar@adacore.com>
17043             Bob Duff  <duff@adacore.com>
17044             Ed Schonberg  <schonberg@adacore.com>
17045
17046         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
17047         with multiplying operator.
17048         (Expected_Type_Is_Any_Real): New function to determine from the Parent
17049         pointer whether the context expects "any real type".
17050         (Resolve_Arithmetic_Op): Do not give an error on calls to the
17051         universal_fixed "*" and "/" operators when they are used in a context
17052         that expects any real type. Also set the type of the node to
17053         Universal_Real in this case, because downstream processing requires it
17054         (mainly static expression evaluation).
17055         Reword some continuation messages
17056         Add some \\ sequences to continuation messages
17057         (Resolve_Call): Refine infinite recursion case. The test has been
17058         sharpened to eliminate some false positives.
17059         Check for Current_Task usage now includes entry barrier, and is now a
17060         warning, not an error.
17061         (Resolve): If the call is ambiguous, indicate whether an interpretation
17062         is an inherited operation.
17063         (Check_Aggr): When resolving aggregates, skip associations with a box,
17064         which are priori correct, and will be replaced by an actual default
17065         expression in the course of expansion.
17066         (Resolve_Type_Conversion): Add missing support for conversion from
17067         a class-wide interface to a tagged type. Minor code cleanup.
17068         (Valid_Tagged_Converion): Add support for abstact interface type
17069         conversions.
17070         (Resolve_Selected_Component): Call Generate_Reference here rather than
17071         during analysis, and use May_Be_Lvalue to distinguish read/write.
17072         (Valid_Array_Conversion): New procedure, abstracted from
17073         Valid_Conversion, to incorporate accessibility checks for arrays of
17074         anonymous access types.
17075         (Valid_Conversion): For a conversion to a numeric type occurring in an
17076         instance or inlined body, no need to check that the operand type is
17077         numeric, since this has been checked during analysis of the template.
17078         Remove legacy test for scope name Unchecked_Conversion.
17079
17080         * sem_res.ads: Minor reformatting
17081
17082         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
17083         (PE_Current_Task_In_Entry_Body): New exception code
17084         (SE_Restriction_Violation): Removed, not used
17085
17086         * a-except.ads:  Update comments.
17087
17088         * types.h, types.ads: Add definition for Validity_Check
17089         (PE_Current_Task_In_Entry_Body): New exception code
17090         (SE_Restriction_Violation): Removed, not used
17091
17092 2006-10-31  Thomas Quinot  <quinot@adacore.com>
17093
17094         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
17095         error status.
17096
17097 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
17098             Jose Ruiz  <ruiz@adacore.com>
17099
17100         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
17101         part of Ada.Calendar: all subprogram raise Unimplemented.
17102         (Split_W_Offset): Temp function body, raising Unimplemented
17103
17104         * a-calend.ads, a-calend-vms.ads:
17105         Add imported variable Invalid_TZ_Offset used to designate targets unable
17106         to support time zones.
17107         (Unimplemented): Temporary function raised by the body of new
17108         subprograms below.
17109         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
17110         unit provides handling of leap seconds and is used by the new Ada 2005
17111         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
17112         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
17113         version returns an extra value which is the offset to UTC.
17114
17115         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
17116         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
17117         (Split_W_Offset): New function body.
17118         (Time_Of): When a date is close to UNIX epoch, compute the time for
17119         that date plus one day (that amount is later substracted after
17120         executing mktime) so there are no problems with time zone adjustments.
17121
17122         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
17123
17124         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
17125         a-catizo.ads, a-catizo.adb: New files.
17126
17127         * impunit.adb: Add new Ada 2005 entries
17128
17129         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
17130         Rename all occurences of "__gnat_localtime_r" to
17131         "__gnat_localtime_tzoff".
17132         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
17133         zone data and calculate the GMT offset.
17134         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
17135         Use the field "tm_gmtoff" to extract the GMT offset.
17136         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
17137         the external variable "timezone" to calculate the GMT offset.
17138
17139 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
17140             Jose Ruiz  <ruiz@adacore.com>
17141
17142         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb,
17143         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads,
17144         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
17145         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
17146         System.Any_Priority to a POSIX priority on the target.
17147
17148         * system-linux-ia64.ads:
17149         Extend range of Priority types on Linux to use the whole range made
17150         available by the system.
17151
17152         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
17153         function maps from System.Any_Priority to a POSIX priority on the
17154         target.
17155         (PTHREAD_PRIO_PROTECT): Set real value.
17156         (PTHREAD_PRIO_INHERIT): Now a function.
17157         (SIGCPUFAIL): New signal.
17158         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
17159         are documented as reserved by the OS.
17160
17161         * system-aix.ads: Use the full range of priorities provided by the
17162         system on AIX.
17163
17164         * s-taprop-posix.adb: Call new function To_Target_Priority.
17165         (Set_Priority): Take into account Task_Dispatching_Policy and
17166         Priority_Specific_Dispatching pragmas when determining if Round Robin
17167         must be used for scheduling the task.
17168
17169         * system-linux-x86_64.ads, system-linux-x86.ads,
17170         system-linux-ppc.ads: Extend range of Priority types on Linux to use
17171         the whole range made available by the system.
17172
17173         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb,
17174         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb,
17175         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
17176         when deallocating the TCB in order to avoid potential references to
17177         deallocated data.
17178         (Set_Priority): Take into account Task_Dispatching_Policy and
17179         Priority_Specific_Dispatching pragmas when determining if Round Robin
17180         or FIFO within priorities must be used for scheduling the task.
17181
17182         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
17183         the Thread field (to be used internally by the run-time system) and the
17184         kernel-level task id in the LWP field (to be used by the debugger).
17185         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
17186         instance, and propagate the current task options to the spawned task.
17187         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
17188         (Initialize): Set Round Robin dispatching when the corresponding pragma
17189         is in effect.
17190
17191 2006-10-31  Robert Dewar  <dewar@adacore.com>
17192
17193         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
17194         system-linux-hppa.ads, system-hpux-ia64.ads,
17195         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads,
17196         system-vxworks-sparcv9.ads, system-solaris-x86.ads,
17197         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
17198         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads,
17199         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
17200         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
17201         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
17202         Default_Bit_Order) to kill constant condition warnings for references
17203         to this switch.
17204
17205 2006-10-31  Vincent Celier  <celier@adacore.com>
17206             Eric Botcazou  <ebotcazou@adacore.com>
17207
17208         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
17209         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
17210         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
17211         Ext_To, when building the library file name
17212
17213         * mlib-tgt-vxworks.adb: ditto.
17214         (Get_Target_Suffix): Add support for x86 targets.
17215
17216         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
17217
17218         * mlib-tgt-darwin.adb:
17219         Use Append_To, instead of Ext_To, when building the library file name
17220         (Flat_Namespace): New global variable.
17221         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
17222         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
17223         (Link_Shared_Libgcc): Delete.
17224         (Build_Dynamic_Library): Adjust for above changes.
17225         Use Opt package.
17226         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
17227
17228 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
17229
17230         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
17231         (Initialize): Add type conversions required by above change.
17232
17233 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
17234
17235         * s-osinte-vxworks.ads, s-osinte-vxworks.adb:
17236         (getpid): New body for this function that uses the underlying taskIdSelf
17237         function for VxWorks 5 and VxWorks 6 in kernel mode.
17238         (unsigned_int): New type, modular to allow logical bit operations.
17239         (taskOptionsGet): New imported function.
17240
17241         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
17242         field to be compliant with the type used by the corresponding operating
17243         system primitive.
17244
17245 2006-10-31  Pascal Obry  <obry@adacore.com>
17246             Eric Botcazou  <ebotcazou@adacore.com>
17247             Vincent Celier  <celier@adacore.com>
17248
17249         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
17250         ASCII version of the registry API. This is needed as the GNAT runtime
17251         is now UNICODE by default.
17252         Include version.h.
17253         (get_gcc_version): Do not hardcode the return value.
17254         (__gnat_file_time_name): On Windows properly set the default returned
17255         value to -1 which corresponds to Invalid_Time.
17256         (__gnat_fopen): New routine. A simple wrapper on all plateforms
17257          except on Windows where it does conversion for unicode support.
17258         (__gnat_freopen): Idem.
17259         (__gnat_locate_exec_on_path): If environment variable PATH does not
17260         exist, return a NULL pointer
17261
17262         * adaint.h: (__gnat_fopen): Declare.
17263         (__gnat_freopen): Likewise.
17264
17265         * mingw32.h (_tfreopen): Define this macro here for older MingW
17266         version.
17267         Activate the unicode support on platforms using a MingW runtime
17268         version 3.9 or newer.
17269
17270         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
17271         This is needed for proper unicode support on Windows.
17272         (freopen): Idem.
17273
17274 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
17275             Nicolas Setton  <setton@adacore.com>
17276             Olivier Hainque  <hainque@adacore.com>
17277             Gary Dismukes  <dismukes@adacore.com>
17278
17279         * gigi.h: (tree_code_for_record_type): Declare.
17280         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
17281         (get_global_renaming_pointers): Rename to
17282         invalidate_global_renaming_pointers.
17283         (static_ctors): Delete.
17284         (static_dtors): Likewise.
17285         (gnat_write_global_declarations): Declare.
17286         (create_var_decl): Adjust descriptive comment to indicate that the
17287         subprogram may return a CONST_DECL node.
17288         (create_true_var_decl): Declare new function, similar to
17289         create_var_decl but forcing the creation of a VAR_DECL node.
17290         (get_global_renaming_pointers): Declare.
17291         (add_global_renaming_pointer): Likewise.
17292
17293         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
17294
17295         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
17296         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
17297         processing.
17298         (gnat_to_gnu_entity): Remove From_With_Type from computation for
17299         imported_p.
17300         <E_Access_Type>: Use the Non_Limited_View as the full view of the
17301         designated type if the pointer comes from a limited_with clause.  Make
17302         incomplete designated type if it is in the main unit and has a freeze
17303         node.
17304         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
17305         Underlying_Full_View similarly.  Return earlier if the full view already
17306         has an associated tree.
17307         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
17308         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
17309         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
17310         reference type built for objects with an address clause.
17311         Use create_true_var_decl with const_flag set for
17312         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
17313         TREE_READONLY set.
17314         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
17315         for Character and Wide_Character types. This info is read by the
17316         dwarf-2 writer, and is needed to be able to use the command "ptype
17317         character" in the debugger.
17318         (gnat_to_gnu_entity): When generating a type representing
17319         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
17320         so that debug writers can distinguish it from ordinary integers.
17321         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
17322         addition to TREE_READONLY to assert the constantness of variables for
17323         elaboration purposes.
17324         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
17325         parameters to call new Einfo function First_Formal_With_Extras.
17326         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
17327         protected type with its corresponding discriminant, to obtain a usable
17328         declaration
17329         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
17330         for a multiple elaboration of the "equivalent" type.
17331         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
17332         into record_global_renaming_pointer.
17333         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
17334         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
17335         <E_Array_Subtype>: Likewise.
17336         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
17337         incomplete subtypes and incomplete subtypes of incomplete types visible
17338         through a limited with clause.
17339         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
17340         the base index type for the maximum size of the array only if they are
17341         constant.
17342         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
17343         expression into a SAVE_EXPR if stabilization failed.
17344
17345         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
17346         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
17347         by lower level compilation passes.
17348         (gnat_genericize): New function, lowering a function body to GENERIC.
17349         Turn the type of RESULT_DECL into a real reference type if the decl
17350         has been marked DECL_BY_REFERENCE, and adjust references to the latter
17351         accordingly.
17352         (gnat_genericize_r): New function. Tree walking callback for
17353         gnat_genericize.
17354         (convert_from_reference, is_byref_result): New functions. Helpers for
17355         gnat_genericize_r.
17356         (create_type_decl): Call gnat_pushdecl before calling
17357         rest_of_decl_compilation, to make sure that field TYPE_NAME of
17358         type_decl is properly set before calling the debug information writers.
17359         (write_record_type_debug_info): The heuristics which compute the
17360         alignment of a field in a variant record might not be accurate. Add a
17361         safety test to make sure no alignment is set to a smaller value than
17362         the alignment of the field type.
17363         (make_dummy_type): Use the Non_Limited_View as the underlying type if
17364         the type comes from a limited_with clause. Do not loop on the full view.
17365         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
17366         (dummy_node_table): New global variable, moved from decl.c.
17367         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
17368         (save_gnu_tree): Use above macros.
17369         (get_gnu_tree): Likewise.
17370         (present_gnu_tree): Likewise.
17371         (init_dummy_type): New function, moved from decl.c. Use above macros.
17372         (make_dummy_type): Likewise.
17373         (tree_code_for_record_type): New function extracted from make_dummy_type
17374         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
17375         (static_ctors): Change it to a vector, make static.
17376         (static_dtors): Likewise.
17377         (end_subprog_body): Adjust for above change.
17378         (build_global_cdtor): Moved from trans.c.
17379         (gnat_write_global_declarations): Emit global constructor and
17380         destructor, and call cgraph_optimize before emitting debug info for
17381         global declarations.
17382         (global_decls): New global variable.
17383         (gnat_pushdecl): Store the global declarations in global_decls, for
17384         later use.
17385         (gnat_write_global_declarations): Emit debug information for global
17386          declarations.
17387         (create_var_decl_1): Former create_var_decl, with an extra argument to
17388          state whether the creation of a CONST_DECL is allowed.
17389         (create_var_decl): Behavior unchanged. Now a wrapper around
17390         create_var_decl_1 allowing CONST_DECL creation.
17391         (create_true_var_decl): New function, similar to create_var_decl but
17392         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
17393         (create_field_decl): Do not always mark the field as addressable
17394         if its type is an aggregate.
17395         (global_renaming_pointers): New static variable.
17396         (add_global_renaming_pointer): New function.
17397         (get_global_renaming_pointers): Likewise.
17398
17399         * misc.c (gnat_dwarf_name): New function.
17400         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
17401         (gnat_post_options): Add comment about structural alias analysis.
17402         (gnat_parse_file): Do not call cgraph_optimize here.
17403         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
17404
17405         * trans.c (process_freeze_entity): Don't abort if we already have a
17406         non dummy GCC tree for a Concurrent_Record_Type, as it might
17407         legitimately have been elaborated while processing the associated
17408         Concurrent_Type prior to this explicit freeze node.
17409         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
17410         exception handler volatile if it is of variable size.
17411         (process_type): Remove bypass for types coming from a limited_with
17412         clause.
17413         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
17414         actual, convert the corresponding gnu_actual to the real destination
17415         type when necessary.
17416         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
17417         originally TREE_READONLY but whose elaboration cannot be performed
17418         statically.
17419         Part of fix for F504-021.
17420         (tree_transform, subprogram cases): Change loops on formal parameters to
17421         call new Einfo function First_Formal_With_Extras.
17422         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
17423         stemming from type conversion for the lhs.
17424         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
17425         number of bits per unit for components of records.
17426         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
17427         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
17428         with At_End_Proc after the SJLJ EH cleanup.
17429         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
17430         compilation unit.
17431         (elaborate_all_entities): Do not retest type_annotate_only.
17432         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
17433         result type of an abstract subprogram, which may be an itype associated
17434         with an anonymous access result (related to AI-318-02).
17435         (build_global_cdtor): Move to utils.c.
17436         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
17437         this choice is not a null tree nor an integer constant.
17438         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
17439         on the body of elaboration routines instead of mark_unvisited.
17440         (add_stmt): Do not mark the tree.
17441         (add_decl_expr): Tweak comment.
17442         (mark_unvisited): Delete.
17443         (unshare_save_expr): New static function.
17444         (call_to_gnu): Issue an error when making a temporary around a
17445         procedure call because of non-addressable actual parameter if the
17446         type of the formal is by_reference.
17447         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
17448         after building the elaboration routine.
17449
17450 2006-10-31  Bob Duff  <duff@adacore.com>
17451
17452         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
17453         as finalization-started, so we can raise Program_Error on 'new'.
17454
17455         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
17456         collection has already started.
17457
17458         * s-finimp.ads (Collection_Finalization_Started): Added new special
17459         flag value for indicating that a collection's finalization has started.
17460
17461         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
17462         create a task whose master has already waited for dependent tasks.
17463
17464 2006-10-31  Robert Dewar  <dewar@adacore.com>
17465
17466         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
17467
17468         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
17469         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
17470         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
17471         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
17472         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
17473         a-except-2005.ads: Add pragma Preelaborable_Warning
17474
17475 2006-10-31  Robert Dewar  <dewar@adacore.com>
17476             Jose Ruiz  <ruiz@adacore.com>
17477
17478         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
17479
17480         * ali.adb (Get_Name): Properly handle scanning of wide character names
17481         encoded with brackets notation.
17482         (Known_ALI_Lines): Add S lines to this list.
17483         (Scan_ALI): Acquire S (priority specific dispatching) lines.
17484         New flag Elaborate_All_Desirable in unit table
17485
17486         * ali.ads (Priority_Specific_Dispatching): Add this range of
17487         identifiers to be used for Priority_Specific_Dispatching table entries.
17488         (ALIs_Record): Add First_Specific_Dispatching and
17489         Last_Specific_Dispatching that point to the first and last entries
17490         respectively in the priority specific dispatching table for this unit.
17491         (Specific_Dispatching): Add this table for storing each S (priority
17492         specific dispatching) line encountered in the input ALI file.
17493         New flag Elaborate_All_Desirable in unit table
17494
17495         * bcheck.adb: (Check_Configuration_Consistency): Add call to
17496         Check_Consistent_Dispatching_Policy.
17497         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
17498         verifying that the use of Priority_Specific_Dispatching,
17499         Task_Dispatching_Policy, and Locking_Policy is consistent across the
17500         partition.
17501
17502         * bindgen.adb: (Public_Version_Warning): function removed.
17503         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
17504         required information from ALI files in order to initialize the table
17505         containing the specific dispatching policy.
17506         (Gen_Adainit_Ada): Generate the variables required for priority specific
17507         dispatching entries (__gl_priority_specific_dispatching and
17508         __gl_num_specific_dispatching).
17509         (Gen_Adainit_C): Generate the variables required for priority specific
17510         dispatching entries (__gl_priority_specific_dispatching and
17511         __gl_num_specific_dispatching).
17512         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
17513         pragma entries.
17514         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
17515         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
17516         (Tab_To): Removed.
17517         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
17518         a call to gnat_set_globals.
17519         Generate a string containing settings from
17520         Priority_Specific_Dispatching pragma entries.
17521         (Gen_Object_Files_Options): Do not include the runtime libraries when
17522         pragma No_Run_Time is specified.
17523
17524         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
17525         consistency with s-intman-posix.adb.
17526         (__gnat_error_handler, case FreeBSD): Account for the fact that the
17527         handler is installed with SA_SIGINFO.
17528         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
17529         FreeBSD ZCX support, copied from Linux version.
17530         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
17531         sigfillset, and sigemptyset so the routines defined by MaRTE.
17532         (__gl_priority_specific_dispatching): Add this variable that stores the
17533         string containing priority specific dispatching policies in the
17534         partition.
17535         (__gl_num_specific_dispatching): Add this variable that indicates the
17536         highest priority for which a priority specific dispatching pragma
17537         applies.
17538         (__gnat_get_specific_dispatching): Add this routine that returns the
17539         priority specific dispatching policy, as set by a
17540         Priority_Specific_Dispatching pragma appearing anywhere in the current
17541         partition. The input argument is the priority number, and the result
17542         is the upper case first character of the policy name.
17543         (__gnat_set_globals): Now a dummy function.
17544         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
17545         mechargs instead of sigargs, as the latter can be retrieved from the
17546         former and sigargs is not what we want on ia64.
17547         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
17548         mechargs argument.
17549         (__gnat_adjust_context_for_raise, ia64-vms): New function.
17550         (tasking_error): Remove unused symbol.
17551         (_abort_signal): Move this symbol to the IRIX specific part since this
17552         is the only target that uses this definition.
17553         (Check_Abort_Status): Move this symbol to the IRIX specific part since
17554         this is the only target that uses this definition.
17555         (Lock_Task): Remove unused symbol.
17556         (Unlock_Task): Remove unused symbol.
17557
17558         * lib-writ.adb (Write_ALI): Output new S lines for
17559         Priority_Specific_Dispatching pragmas.
17560         Implement new flag BD for elaborate body desirable
17561
17562         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
17563         (Specific_Dispatching): Add this table for storing the entries
17564         corresponding to Priority_Specific_Dispatching pragmas.
17565         Document new BD flag for elaborate body desirable
17566
17567         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
17568         of known pragmas.
17569
17570 2006-10-31  Javier Miranda  <miranda@adacore.com>
17571
17572         * a-tags.ads, a-tags.adb:
17573         (Predefined_DT): New function that improves readability of the code.
17574         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
17575         Inherit_DT): Use the new function Predefined_DT to improve code
17576         readability.
17577         (Register_Interface_Tag): Update assertion.
17578         (Set_Interface_Table): Update assertion.
17579         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
17580         determining progenitor interfaces in Tags.
17581         (Inherit_CPP_DT): New subprogram.
17582
17583         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
17584         analysis of the thunk code.
17585         (Expand_Interface_Conversion): Handle run-time conversion of
17586         access to class wide types.
17587         (Expand_Dispatching_Call): When generating the profile for the
17588         subprogram itype for a dispatching operation, properly terminate the
17589         formal parameters chaind list (set the Next_Entity of the last formal
17590         to Empty).
17591         (Collect_All_Interfaces): Removed. This routine has been moved to
17592         sem_util and renamed as Collect_All_Abstract_Interfaces.
17593         (Set_All_DT_Position): Hidden entities associated with abstract
17594         interface primitives are not taken into account in the check for
17595         3.9.3(10); this check is done with the aliased entity.
17596         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
17597         interfacing with CPP by default.
17598         (Expand_Interface_Conversion): Add missing support for static conversion
17599         from an interface to a tagged type.
17600         (Collect_All_Interfaces): Add new out formal containing the list of
17601         abstract interface types to cleanup the subprogram Make_DT.
17602         (Make_DT): Update the code to generate the table of interfaces in case
17603         of abstract interface types.
17604         (Is_Predefined_Dispatching_Alias): New function that returns true if
17605         a primitive is not a predefined dispatching primitive but it is an
17606         alias of a predefined dispatching primitive.
17607         (Make_DT): If the ancestor of the type is a CPP_Class and we are
17608         compiling under full ABI compatibility mode we avoid the generation of
17609         calls to run-time services that fill the dispatch tables because under
17610         this mode we currently inherit the dispatch tables in the IP subprogram.
17611         (Write_DT): Emit an "is null" indication for a null procedure primitive.
17612         (Expand_Interface_Conversion): Use an address as the type of the formal
17613         of the internally built function that handles the case in which the
17614         target type is an access type.
17615
17616 2006-10-31  Robert Dewar  <dewar@adacore.com>
17617
17618         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
17619
17620 2006-10-31  Robert Dewar  <dewar@adacore.com>
17621
17622         * bindusg.ads, bindusg.adb:
17623         Change to package and rename procedure as Display, which
17624         now ensures that it only outputs usage information once.
17625
17626 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
17627
17628         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
17629         using RTPs.
17630
17631         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
17632         when using RTPs.
17633
17634 2006-10-31  Robert Dewar  <dewar@adacore.com>
17635             Ed Schonberg  <schonberg@adacore.com>
17636
17637         * treepr.adb: Use new subtype N_Membership_Test
17638
17639         * checks.ads, checks.adb: Add definition for Validity_Check
17640         (Range_Or_Validity_Checks_Suppressed): New function
17641         (Ensure_Valid): Test Validity_Check suppressed
17642         (Insert_Valid_Check): Test Validity_Check suppressed
17643         (Insert_Valid_Check): Preserve Do_Range_Check flag
17644         (Validity_Check_Range): New procedure
17645         (Expr_Known_Valid): Result of membership test is always valid
17646         (Selected_Range_Checks): Range checks cannot be applied to discriminants
17647         by themselves. Disabling those checks must also be done for task types,
17648         where discriminants may be used for the bounds of entry families.
17649         (Apply_Address_Clause_Check): Remove side-effects if address expression
17650         is non-static and is not the name of a declared constant.
17651         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
17652         Code cleanup and new error messages.
17653         (Enable_Range_Check): Test for some cases of suppressed checks
17654         (Generate_Index_Checks): Suppress index checks if index checks are
17655         suppressed for array object or array type.
17656         (Apply_Selected_Length_Checks): Give warning for compile-time detected
17657         length check failure, even if checks are off.
17658         (Ensure_Valid): Do not generate a check on an indexed component whose
17659         prefix is a packed boolean array.
17660         * checks.adb: (Alignment_Checks_Suppressed): New function
17661         (Apply_Address_Clause_Check): New procedure, this is a completely
17662         rewritten replacement for Apply_Alignment_Check
17663         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
17664         we request a discriminal value only in case of discriminants.
17665         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
17666         assignments where the target subtype is unconstrained and the target
17667         object is a parameter or dereference (other aliased cases are known
17668         to be unconstrained).
17669
17670 2006-10-31  Robert Dewar  <dewar@adacore.com>
17671
17672         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
17673         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
17674         vms_conv.adb: Fix bad table increment values (much too small)
17675
17676         * table.adb (Realloc): Make sure we get at least some new elements
17677         Defends against silly small values for table increment
17678
17679 2006-10-31  Robert Dewar  <dewar@adacore.com>
17680             Ed Schonberg  <schonberg@adacore.com>
17681             Bob Duff  <duff@adacore.com>
17682
17683         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
17684         entities. Move other fields around to make this possible
17685         (Is_Derived_Type): Add missing call to Is_Type.
17686         (Extra_Formals): New function for subprograms, entries, subprogram
17687         types.
17688         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
17689         (First_Formal_With_Extras): New function for subprogs, entries, subp
17690         types.
17691         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
17692         Add node information for E_Return_Statement.
17693         (Elaborate_Body_Desirable): New flag
17694         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
17695         to be Is_Inherently_Limited_Type, because return-by-reference has
17696         no meaning in Ada 2005.
17697         (E_Return_Statement): New entity kind.
17698         (Return_Applies_To): Field of E_Return_Statement.
17699         (Is_Return_Object): New flag in object entities.
17700         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
17701         (Must_Have_Preelab_Init): New flag
17702         (Known_To_Have_Preelab_Init): New flag
17703         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
17704         (Is_Visible_Formal): New flag on entities in formal packages.
17705         (Low_Bound_Known): New flag
17706         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
17707         Incomplete_Kind.
17708         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
17709         output when Id is an incomplete subtype.
17710
17711 2006-10-31  Robert Dewar  <dewar@adacore.com>
17712
17713         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
17714         Avoid abbreviation Creat
17715         (Finalize): List all sources in extended mail source if -gnatl
17716         switch is active.
17717         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
17718         (Finalize): Implement new -gnatl=xxx switch to output listing to file
17719         (Set_Specific_Warning_On): New procedure
17720         (Set_Specific_Warning_Off): New procedure
17721         Add implementation of new insertion \\
17722         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
17723         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
17724         types.
17725         (Error_Msg_Internal): Make sure that we set Last_Killed to
17726         True when a message from another package is suppressed.
17727         Implement insertion character ~ (insert string)
17728         (First_Node): Minor adjustments to get better placement.
17729
17730         * frontend.adb:
17731         Implement new -gnatl=xxx switch to output listing to file
17732
17733         * gnat1drv.adb:
17734         Implement new -gnatl=xxx switch to output listing to file
17735
17736         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
17737         (Commands_To_Stdout): New flag
17738         Implement new -gnatl=xxx switch to output listing to file
17739         New switch Dump_Source_Text
17740         (Warn_On_Deleted_Code): New warning flag for -gnatwt
17741         Define Error_Msg_Line_Length
17742         (Warn_On_Assumed_Low_Bound): New switch
17743
17744         * osint.ads, osint.adb
17745         (Normalize_Directory_Name): Fix bug.
17746         Implement new -gnatl=xxx switch to output listing to file
17747         (Concat): Removed, replaced by real concatenation
17748         Make use of concatenation now allowed in compiler
17749         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
17750         we find the 'lib' or 'bin' directory even when the tool has been
17751         invoked with a relative path.
17752         (Executable_Name): New function taking string parameters.
17753
17754         * osint-c.ads, osint-c.adb:
17755         Implement new -gnatl=xxx switch to output listing to file
17756
17757         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
17758
17759         * switch-c.adb:
17760         Implement new -gnatl=xxx switch to output listing to file
17761         Recognize new -gnatL switch
17762         (no longer keep in old warning about old style usage)
17763         Use concatenation to simplify code
17764         Recognize -gnatjnn switch
17765         (Scan_Front_End_Switches): Clean up handling of -gnatW
17766         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
17767
17768 2006-10-31  Robert Dewar  <dewar@adacore.com>
17769
17770         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
17771         (Set_Specific_Warning_Off): New procedure
17772         (Warning_Specifically_Suppressed): New function
17773         (Validate_Specific_Warnings): New procedure
17774         (Output_Msg_Text): Complete rewrite to support -gnatjnn
17775
17776         * err_vars.ads: Implement insertion character ~ (insert string)
17777
17778 2006-10-31  Bob Duff  <duff@adacore.com>
17779             Ed Schonberg  <schonberg@adacore.com>
17780
17781         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
17782         the parent part is a build-in-place function call, generate assignments.
17783         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
17784         are build-in-place function calls.
17785         (Replace_Self_Reference): New subsidiary of
17786         Make_OK_Assignment_Statement, to replace an access attribute that is a
17787         self-reference into an access to the appropriate component of the
17788         target object. Generalizes previous mechanism to handle self-references
17789         nested at any level.
17790         (Is_Self_Referential_Init): Remove, not needed.
17791         (Is_Self_Referential_Init): New predicate to simplify handling of self
17792         referential components in record aggregates.
17793         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
17794         check for presence of entity before checking for self-reference.
17795         (Has_Default_Init_Comps): Return True if a component association is a
17796         self-reference to the enclosing type, which can only come from a
17797         default initialization.
17798         (Make_OK_Assignment_Statement): If the expression is of the form
17799         Typ'Acc, where Acc is an access attribute, the expression comes from a
17800         default initialized self-referential component.
17801         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
17802         that has been derived from several abstract interfaces we must also
17803         initialize the tags of the secondary dispatch tables.
17804
17805 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
17806             Thomas Quinot  <quinot@adacore.com>
17807             Javier Miranda  <miranda@adacore.com>
17808             Robert Dewar  <dewar@adacore.com>
17809
17810         * exp_attr.adb:
17811         (Expand_Access_To_Protected_Op): If the context indicates that an access
17812         to a local operation may be transfered outside of the object, create an
17813         access to the wrapper operation that must be used in an external call.
17814         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
17815         target, pass the Valid attribute applied to a floating-point prefix on
17816         to the back end without expansion.
17817         (Storage_Size): Use the new run-time function Storage_Size to retrieve
17818         the allocated storage when it is specified by a per-object expression.
17819         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
17820         Nothing to do here, the attribute has been rewritten during semantic
17821         analysis.
17822         (Expand_Attribute_Reference): Handle expansion of the new Priority
17823         attribute
17824         (Find_Fat_Info): Handle case of universal real
17825         (Expand_Access_To_Protected_Op): Fix use of access to protected
17826         subprogram from inside the body of a protected entry.
17827         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
17828         'Access and 'Unrestricted_Access, to transform the attribute reference
17829         into a fat pointer.
17830         (Is_Constrained_Aliased_View): New predicate to help determine whether a
17831         subcomponent's enclosing variable is aliased with a constrained subtype.
17832         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
17833         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
17834         an aliased prefix must be known to be constrained in order to use True
17835         for the attribute value, and now it's possible for some aliased views
17836         to be unconstrained.
17837
17838 2006-10-31  Robert Dewar  <dewar@adacore.com>
17839
17840         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
17841         (Expand_Entity_Reference): Correct error of not handling subprogram
17842         formals in current_value processing.
17843
17844 2006-10-31  Javier Miranda  <miranda@adacore.com>
17845             Robert Dewar  <dewar@adacore.com>
17846             Ed Schonberg  <schonberg@adacore.com>
17847             Gary Dismukes  <dismukes@adacore.com>
17848
17849         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
17850         register in the final list objects containing class-wide interfaces;
17851         otherwise we incorrectly register the tag of the interface in the final
17852         list.
17853         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
17854         generate the wrapper if the parent primitive is abstract. This is
17855         required to report the correct error message.
17856         (Expand_N_Subtype_Indication): Do validity checks on range
17857         (Clean_Task_Names): If an initialization procedure includes a call to
17858         initialize a task (sub)component, indicate that the procedure will use
17859         the secondary stack.
17860         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
17861         compatibility for interfacing with CPP by default.
17862         (Expand_N_Object_Declaration): Only build an Adjust call when the
17863         object's type is a nonlimited controlled type.
17864         * exp_ch3.adb: Add with and use of Exp_Ch6.
17865         (Expand_N_Object_Declaration): Check for object initialization that is a
17866         call to build-in-place function and apply Make_Build_In_Place_Call_In_
17867         Object_Declaration to the call.
17868         (Freeze_Type): When the designated type of an RACW was not frozen at the
17869         point where the RACW was declared, validate the primitive operations
17870         with respect to E.2.2(14) when it finally is frozen.
17871         (Build_Initialization_Call,Expand_Record_Controller): Rename
17872         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
17873         return-by-reference has no meaning in Ada 2005.
17874         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
17875         to register tag of the immediate ancestor interfaces in the
17876         run-time structure.
17877         (Init_Secondary_Tags): Moved to the specification to allow the
17878         initialization of extension aggregates with abstract interfaces.
17879         (Build_Master_Renaming): Make public, for use by function declarations
17880         whose return type is an anonymous access type.
17881         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
17882         Insert_List_Before_And_Analyze after the generation of the specs
17883         associated with null procedures.
17884         (Expand_Tagged_Root): Update documentation in its specification.
17885         (Init_Secondary_Tags): Update documentation.
17886         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
17887         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
17888         then generate code to inherit the contents of the dispatch table
17889         directly from the ancestor.
17890         (Expand_Record_Controller): Insert controller component after tags of
17891         implemented interfaces.
17892         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
17893         create null procedure overridings when null procedures are inherited
17894         from interfaces.
17895         (Make_Null_Procedure_Specs): New procedure to generate null procedure
17896         declarations for overriding null primitives inherited from interfaces.
17897         (Is_Null_Interface_Procedure): New function in
17898         Make_Null_Procedure_Specs.
17899         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
17900         immediate ancestor of a tagged type is an abstract interface type we
17901         must generate the specification of the predefined primitives associated
17902         with controlled types (because the dispatch table of the ancestor is
17903         null and hence these entries cannot be inherited). This is required to
17904         elaborate well the dispatch table.
17905
17906 2006-10-31  Javier Miranda  <miranda@adacore.com>
17907             Ed Schonberg  <schonberg@adacore.com>
17908             Bob Duff  <duff@adacore.com>
17909             Gary Dismukes  <dismukes@adacore.com>
17910             Robert Dewar  <dewar@adacore.com>
17911
17912         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
17913         conversion.
17914         (Expand_N_In): Do validity checks on range
17915         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
17916         (Expand_N_Allocator): For "new T", if the object is constrained by
17917         discriminant defaults, allocate the right amount of memory, rather than
17918         the maximum for type T.
17919         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
17920         when the allocator is initialized by a build-in-place call, since the
17921         allocator is already rewritten as a reference to the function result,
17922         and this prevents an unwanted duplication of the function call.
17923         Add with and use of Exp_Ch6.
17924         (Expand_Allocator_Expresssion): Check for an allocator whose expression
17925         is a call to build-in-place function and apply
17926         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
17927         untagged designated types).
17928         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
17929         optimization if source or target is biased.
17930         (Expand_N_Allocator): Add comments for case of an allocator within a
17931         function that returns an anonymous access type designating tasks.
17932         (Expand_N_Allocator): apply discriminant checks for access
17933         discriminants of anonymous access types (AI-402, AI-416)
17934
17935 2006-10-31  Bob Duff  <duff@adacore.com>
17936             Robert Dewar  <dewar@adacore.com>
17937             Gary Dismukes  <dismukes@adacore.com>
17938             Ed Schonberg  <schonberg@adacore.com>
17939
17940         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
17941
17942         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
17943         (Expand_N_Assignment_Statement): Call
17944         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
17945         build-in-place function call. Currently, this can happen only for
17946         assignments that come from aggregates.
17947         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
17948         in order to alleviate the upward compatibility introduced by AI-318.
17949         (Expand_N_Extended_Return_Statement): Add support for handling the
17950         return object as a build-in-place result.
17951         (Expand_Non_Function_Return): Implement simple return statements nested
17952         within an extended return.
17953         (Enable_New_Return_Processing): Turn on the new processing of return
17954         statements.
17955         (Expand_Non_Function_Return): For a return within an extended return,
17956         don't raise Program_Error, because Sem_Ch6 now gives a warning.
17957         (Expand_N_Extended_Return_Statement): Implement AI-318
17958         (Expand_Simple_Function_Return): Ditto.
17959         (Expand_N_If_Statement): Handle new -gnatwt warning
17960         (Expand_N_Case_Statement): Handle new -gnatwt warning
17961         (Expand_N_Assignment): Handle assignment to the Priority attribute of
17962         a protected object.
17963         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
17964         validity checking of assignments to elementary record components.
17965         (Expand_N_Return_Statement): return Class Wide types on the secondary
17966         stack independantly of their controlled status since with HIE runtimes,
17967         class wide types are not potentially controlled anymore.
17968
17969         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
17970         node kind.
17971
17972         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
17973         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
17974         it expects a block, procedure, or task. The return statement will get
17975         turned into a block, and Expand_Cleanup_Actions will happen then.
17976
17977 2006-10-31  Robert Dewar  <dewar@adacore.com>
17978             Ed Schonberg  <schonberg@adacore.com>
17979             Bob Duff  <duff@adacore.com>
17980             Gary Dismukes  <dismukes@adacore.com>
17981
17982         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
17983         capability.
17984         (Expand_Inlined_Call): Tagged types are by-reference types, and
17985         therefore should be replaced by a renaming declaration in the expanded
17986         body, as is done for limited types.
17987         (Expand_Call): If this is a call to a function with dispatching access
17988         result, propagate tag from context.
17989         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
17990         CPP by default.
17991         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
17992         build-in-place when the right-hand side of an assignment is a
17993         build-in-place function call.
17994         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
17995         of the explicit dereference of the allocator to the result subtype of
17996         the build-in-place function. This is needed to satisfy type checking
17997         in cases where the caller's return object is created by an allocator for
17998         a class-wide access type and the type named in the allocator is a
17999         specific type.
18000         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
18001         conversion of the reference to the declared object to the result subtype
18002         of the build-in-place function. This is needed to satisfy type checking
18003         in cases where the declared object has a class-wide type. Also, in the
18004         class-wide case, change the type of the object entity to the specific
18005         result subtype of the function, to avoid passing a class-wide object
18006         without explicit initialization to the back end.
18007         (Register_Interface_DT_Entry): Moved outside the body of
18008         Freeze_Subprogram because this routine is now public; it is called from
18009         Check_Dispatching_Overriding to handle late overriding of abstract
18010         interface primitives.
18011         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
18012         adding an implicit access actual on a call to a build-in-place function.
18013         (Expand_Actuals): Test for an actual parameter that is a call to a
18014         build-in-place function and apply
18015         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
18016         (Is_Build_In_Place_Function): New function to determine whether an
18017         entity is a function whose calls should be handled as build-in-place.
18018         (Is_Build_In_Place_Function_Call): New function to determine whether an
18019         expression is a function call that should handled as build-in-place.
18020         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
18021         calls to build-in-place functions as the initialization of an allocator.
18022         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
18023         handling calls to build-in-place functions in contexts that do not
18024         involve init of a separate object (for example, actuals of subprogram
18025         calls).
18026         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
18027         handling calls to build-in-place functions as the initialization of an
18028         object declaration.
18029         (Detect_Infinite_Recursion): Add explicit parameter Process to
18030         instantiation of Traverse_Body to avoid unreferenced warning.
18031         (Check_Overriding_Inherited_Interfaces): Removed.
18032         (Register_Interface_DT_Entry): Code cleanup.
18033         (Register_Predefined_DT_Entry): Code cleanup.
18034         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
18035         inlined statements if within a transient scope.
18036         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
18037         formal parameters with occurrences of actuals in inlined body, establish
18038         visibility on the proper view of the actual's subtype for the body's
18039         context.
18040         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
18041         compatibility mode and we have an imported CPP subprogram because
18042         for now we assume that imported CPP primitives correspond with
18043         objects whose constructor is in the CPP side (and therefore we
18044         don't need to generate code to register them in the dispatch table).
18045         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
18046         aligned selected component.
18047         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
18048         the actual of an in-mode parameter is a type conversion.
18049         (Expand_Actuals): If the call does not come from source and the actual
18050         is potentially misaligned, let gigi handle it rather than rejecting the
18051         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
18052         Class Wide types as returning by reference independantly of their
18053         controlled status since with HIE runtimes class wide types are not
18054         potentially controlled anymore.
18055
18056 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18057
18058         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
18059         references that are private components of the protected object.
18060         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
18061         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
18062         instantiation to deal with warnings.
18063         (Initialize_Protection): If expression for priority is non-static, use
18064         System_Priority as its expected type, in case the expression has not
18065         been analyzed yet.
18066
18067 2006-10-31  Robert Dewar  <dewar@adacore.com>
18068
18069         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
18070         initialization of Homonym_Len.
18071         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
18072         names from fully qualified name. Fixes problem of duplicate
18073         external names differing only in the presence of such a block name.
18074
18075 2006-10-31  Thomas Quinot  <quinot@adacore.com>
18076             Pablo Oliveira  <oliveira@adacore.com>
18077
18078         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
18079         subprogram Ids, even if they are not yet assigned.
18080         (Build_Subprogram_Id): It is now this function that will take care of
18081         calling Assign_Subprogram_Ids if necessary.
18082         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
18083         should be done only once they are assigned.
18084         (Build_From_Any_Function, case of tagged types): Add missing call to
18085         Allocate_Buffer.
18086         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
18087         type for an RACW type.
18088         (Add_RACW_Features): When processing an RACW declaration for which the
18089         designated type is already frozen, enforce E.2.2(14) rules immediately.
18090         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
18091         special reordering of controlling formals.
18092
18093         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
18094         associated stub type for an RACW type.
18095
18096 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18097
18098         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
18099         fixed-point operations in an integer context, i.e. as operands of a
18100         conversion to an integer type, indicate that result must be rounded.
18101
18102 2006-10-31  Robert Dewar  <dewar@adacore.com>
18103
18104         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
18105         cases, pass the encoding method, since it is now required by the run
18106         time.
18107
18108         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
18109         assumption that Str'First = 1.
18110         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
18111         it on to the Value_Wide_Wide_Character call.
18112         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
18113         properly handles a string of the form quote-encoded_wide_char-quote.
18114
18115         * s-wchcnv.adb: Minor reformatting
18116
18117 2006-10-31  Javier Miranda  <miranda@adacore.com>
18118
18119         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
18120         run-time membership test to ensure that the constructed object
18121         implements the target abstract interface.
18122
18123 2006-10-31  Robert Dewar  <dewar@adacore.com>
18124
18125         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
18126         Machine_Attribute pragma internally to implement the user pragma.
18127         Add processing for pragma Interface so that it is now completely
18128         equivalent to pragma Import.
18129
18130         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
18131         so that it can be applied to all entities, including record components
18132         and enumeration literals.
18133         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
18134         priority ranges are correct, verify compatibility against task
18135         dispatching and locking policies, and if everything is correct an entry
18136         is added to the table containing priority specific dispatching entries
18137         for this compilation unit.
18138         (Delay_Config_Pragma_Analyze): Delay processing
18139         Priority_Specific_Dispatching pragmas because when processing the
18140         pragma we need to access run-time data, such as the range of
18141         System.Any_Priority.
18142         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
18143         Allow pragma Unreferenced as a context item
18144         Add pragma Preelaborable_Initialization
18145         (Analyze_Pragma, case Interface): Interface is extended so that it is
18146         now syntactically and semantically equivalent to Import.
18147         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
18148         insertion characters.
18149         Add handling for Pragma_Wide_Character_Encoding
18150         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
18151         never supercedes a real restriction, and that a real restriction
18152         always supercedes a warning.
18153         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
18154         appropriate form.
18155
18156 2006-10-31  Bob Duff  <duff@adacore.com>
18157             Ed Schonberg  <schonberg@adacore.com>
18158             Robert Dewar  <dewar@adacore.com>
18159
18160         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
18161         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
18162         Is_Inherently_Limited_Type, because return-by-reference has no meaning
18163         in Ada 2005.
18164         (Find_Node_To_Be_Wrapped): Use new method of determining the result
18165         type of the function containing a return statement, because the
18166         Return_Type field was removed. We now use the Return_Applies_To field.
18167
18168         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
18169         (Build_Task_Image_Decl): If procedure is not called from an
18170         initialization procedure, indicate that function that builds task name
18171         uses the sec. stack. Otherwise the enclosing initialization procedure
18172         will carry the indication.
18173         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
18174         N_Object_Declaration instead.
18175         (Kill_Dead_Code): New interface to implement -gnatwt warning for
18176         conditional dead code killed, and change implementation accordingly.
18177         (Insert_Actions): Add N_Return_Object_Declaration case.
18178         Correct comment to mention N_Extension_Aggregate node.
18179         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
18180         attempts to save information for global variables which cannot be
18181         safely tracked.
18182         (Get_Current_Value_Condition): Handle conditions the other way round
18183         (constant on left). Also handle right operand of AND and AND THEN
18184         (Set_Current_Value_Condition): Corresponding changes
18185         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
18186         (Get_Current_Value_Condition): Handle simple boolean operands
18187         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
18188         (Get_Current_Value_Condition): If the variable reference is within an
18189         if-statement, does not appear in the list of then_statments, and does
18190         not come from source, treat it as being at unknown location.
18191         (Get_Current_Value_Condition): Enhance to allow while statements to be
18192         processed as well as if statements.
18193         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
18194         come from source.
18195         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
18196         of loop. This is safe now that we fixed Kill_Current_Values.
18197         (OK_To_Do_Constant_Replacement): Check whether current scope is
18198         Standard, before examining outer scopes.
18199
18200 2006-10-31  Vincent Celier  <celier@adacore.com>
18201
18202         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
18203         When True, apply VMS treatment to children of packages A, G, I and S.
18204         For F320-016
18205
18206         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
18207
18208 2006-10-31  Robert Dewar  <dewar@adacore.com>
18209             Ed Schonberg  <schonberg@adacore.com>
18210
18211         * freeze.adb: Add handling of Last_Assignment field
18212         (Warn_Overlay): Supply missing continuation marks in error msgs
18213         (Freeze_Entity): Add check for Preelaborable_Initialization
18214
18215         * g-comlin.adb: Add Warnings (Off) to prevent new warning
18216
18217         * g-expect.adb: Add Warnings (Off) to prevent new warning
18218
18219         * lib-xref.adb: Add handling of Last_Assignment field
18220         (Generate_Reference): Centralize handling of pragma Obsolescent here
18221         (Generate_Reference): Accept an implicit reference generated for a
18222         default in an instance.
18223         (Generate_Reference): Accept a reference for a node that is not in the
18224         main unit, if it is the generic body corresponding to an subprogram
18225         instantiation.
18226
18227         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
18228
18229         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
18230         -gnatwq/Q.
18231         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
18232         exception handler.
18233         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
18234         use clauses, to avoid messages on packages used to qualify, and also
18235         to avoid messages from obsolescent units.
18236         (Warn_On_Useless_Assignments): Don't generate messages for imported
18237         and exported variables.
18238         (Warn_On_Useless_Assignments): New procedure
18239         (Output_Obsolescent_Entity_Warnings): New procedure
18240         (Check_Code_Statement): New procedure
18241
18242         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
18243         Change name Is_Ada_2005 to Is_Ada_2005_Only
18244         (Last_Assignment): New field for useless assignment warning
18245
18246 2006-10-31  Olivier Hainque  <hainque@adacore.com>
18247
18248         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
18249         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
18250
18251 2006-10-31  Bob Duff  <duff@adacore.com>
18252             Robert Dewar  <dewar@adacore.com>
18253             Ed Schonberg  <schonberg@adacore.com>
18254
18255         * g-awk.adb (Default_Session, Current_Session): Compile this file in
18256         Ada 95 mode, because it violates the new rules for AI-318.
18257
18258         * g-awk.ads: Use overloaded subprograms in every case where we used to
18259         have a default of Current_Session. This makes the code closer to be
18260         correct for both Ada 95 and 2005.
18261
18262         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
18263         code, relying on the fact that the compiler generates a warning
18264         instead of an error in -gnatg mode.
18265
18266         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
18267         E_Return_Statement entity kind.
18268         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
18269
18270         * par.adb (P_Interface_Type_Definition): Addition of one formal to
18271         report an error if the reserved word abstract has been previously found.
18272         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
18273
18274         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
18275         parenthesized range attribute usage
18276         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
18277
18278         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
18279         in the syntax for extended_return_statement. This is not in the latest
18280         RM, but the ARG is expected to issue an AI allowing this.
18281         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
18282         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
18283         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
18284         P_Return_Statement): Parse the new syntax for extended_return_statement.
18285
18286         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
18287         Output_End_Missing): Add error-recovery code for the new
18288         extended_return_statement syntax; that is, the new E_Return entry on
18289         the scope stack.
18290
18291         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
18292         limited to nonlimited, because otherwise we violate the new Ada 2005
18293         rules about returning limited types in function Create_AST_Handler in
18294         s-asthan.adb.
18295
18296         * sem.adb (Analyze): Add cases for new node kinds
18297         N_Extended_Return_Statement and N_Return_Object_Declaration.
18298
18299         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
18300         type is in the same category as type of context before applying check,
18301         to prevent anomalies in instantiations.
18302         (Resolve_Aggregate): Remove test for limited components in aggregates.
18303         It's unnecessary in Ada 95, because if it has limited components, then
18304         it must be limited. It's wrong in Ada 2005, because limited aggregates
18305         are now allowed.
18306         (Resolve_Record_Aggregate): Move check for limited types later, because
18307         OK_For_Limited_Init requires its argument to have been resolved.
18308         (Get_Value): When copying the component default expression for a
18309         defaulted association in an aggregate, use the sloc of the aggregate
18310         and not that of the original expression, to prevent spurious
18311         elaboration errors, when the expression includes function calls.
18312         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
18313         were missing. We also didn't handle qualified expressions. Now also
18314         allow function calls. Use new common routine OK_For_Limited_Init.
18315         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
18316         with space can upper case letter).
18317
18318         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
18319         Has_Static_Discriminants flag
18320         (Record_Type_Declaration): Diagnose an attempt to declare an interface
18321         type with discriminants.
18322         (Process_Range_Expr_In_Decl): Do validity checks on range
18323         (Build_Discriminant_Constraints): Use updated form of
18324         Denotes_Discriminant.
18325         (Process_Subtype): If the subtype is a private subtype whose full view
18326         is a concurrent subtype, introduce an itype reference to prevent scope
18327         anomalies in gigi.
18328         (Build_Derived_Record_Type, Collect_Interface_Primitives,
18329         Record_Type_Declaration):  The functionality of the subprograms
18330         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
18331         is now performed by a single routine.
18332         (Build_Derived_Record_Type): If the type definition includes an explicit
18333         indication of limitedness, then the type must be marked as limited here
18334         to ensure that any access discriminants will not be treated as having
18335         a local anonymous access type.
18336         (Check_Abstract_Overriding): Issue a detailed error message when an
18337         abstract subprogram was not overridden due to incorrect mode of its
18338         first parameter.
18339         (Analyze_Private_Extension_Declaration): Add support for the analysis of
18340         synchronized private extension declarations. Verify that the ancestor is
18341         a limited or synchronized interface or in the generic case, the ancestor
18342         is a tagged limited type or synchronized interface and all progenitors
18343         are either limited or synchronized interfaces.
18344         Derived_Type_Declaration): Check for presence of private extension when
18345         dealing with synchronized formal derived types.
18346         Process_Full_View): Enchance the check done on the usage of "limited" by
18347         testing whether the private view is synchronized.
18348         Verify that a synchronized private view is completed by a protected or
18349         task type.
18350         (OK_For_Limited_Init_In_05): New function.
18351         (Analyze_Object_Declaration): Move check for limited types later,
18352         because OK_For_Limited_Init requires its argument to have been resolved.
18353         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
18354         in order to alleviate the upward compatibility introduced by AI-318.
18355         (Constrain_Corresponding_Record): If the constraint is for a component
18356         subtype, mark the itype as frozen, to avoid out-of-scope references to
18357         discriminants in the back-end.
18358         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
18359         this subprogram against wrong sources.
18360         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
18361         discriminant of limited type completed with a protected type, when the
18362         discriminant is used to constrain a private component of the type, and
18363         expansion is disabled.
18364         (Find_Type_Of_Object): Do not treat a return subtype that is an
18365         anonymous subtype as a local_anonymous_type, because its accessibility
18366         level is the return type of the enclosing function.
18367         (Check_Initialization): In -gnatg mode, turn the error "cannot
18368         initialize entities of limited type" into a warning.
18369         (OK_For_Limited_Init): Return true for generated nodes, since it
18370         sometimes violates the legality rules.
18371         (Make_Incomplete_Declaration): If the type for which an incomplete
18372         declaration is created happens to be the currently visible entity,
18373         preserve the homonym chain when removing it from visibility.
18374         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
18375         inherited subprograms.
18376         (Access_Definition): If this is an access to function that is the return
18377         type of an access_to_function definition, context is a type declaration
18378         and the scope of the anonymous type is the current one.
18379         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
18380         incomplete subtype to the set of private dependents of the original
18381         incomplete type.
18382         (Constrain_Discriminated_Type): Emit an error message whenever an
18383         incomplete subtype is being constrained.
18384         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
18385         corresponding subtype of the full view of the original incomplete type.
18386         (Check_Incomplete): Properly detect invalid usage of incomplete types
18387         and subtypes.
18388
18389 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
18390
18391         * g-catiio.ads, g-catiio.adb (Value): New function.
18392         Given an input String, try and parse a valid Time value.
18393
18394 2006-10-31  Vincent Celier  <celier@adacore.com>
18395
18396         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
18397         Integer_Address arithmetic, as in Set_Valid.
18398
18399 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
18400             Robert Dewar  <dewar@adacore.com>
18401
18402         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
18403         handling executable extension manually and duplicating code.
18404
18405         * make.adb: Implement new -S switch
18406         (Gnatmake): Use new function Osint.Executable_Name instead
18407         of handling executable extension manually.
18408
18409         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
18410         is specified, the executable name ends with this suffix.
18411         Take advantage of Osint.Executable_Name instead of duplicating code.
18412
18413         * switch-m.adb: Recognize new gnatmake -S switch
18414
18415         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
18416         variable.
18417         (Get_Target_Parameters): Set Executable_Extension_On_Target if
18418         available.
18419
18420         * makeusg.adb: Add line for gnatmake -S switch
18421
18422 2006-10-31  Vincent Celier  <celier@adacore.com>
18423
18424         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
18425         call it with -static-libgcc, as there are some platforms, such as
18426         Darwin, where one of these two switches is compulsory to link.
18427
18428 2006-10-31  Vincent Celier  <celier@adacore.com>
18429
18430         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
18431         instead of ADA_PROJECT_PATH, for the project path.
18432         (Gnatls): When displaying the project path directories, use host dir
18433         specs.
18434
18435         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
18436         names in the project path, as absolute paths may correspond to
18437         multi-valued VMS logical names.
18438
18439 2006-10-31  Vincent Celier  <celier@adacore.com>
18440
18441         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
18442         absolute path name.
18443         (Locate_Regular_File): Ditto
18444         (Change_Dir): Remove, no longer used
18445         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
18446         on Windows. Get it calling Get_Current_Dir.
18447         (OpenVMS): Remove imported boolean, no longer needed.
18448         (Normalize_Pathname)[VMS]: Do not resolve directory names.
18449         (Pid_To_Integer): New function to convert a Process_Id to  Integer
18450
18451 2006-10-31  Thomas Quinot  <quinot@adacore.com>
18452
18453         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
18454         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
18455         to No_Socket.
18456         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
18457         W_Sig_Socket.
18458
18459 2006-10-31  Robert Dewar  <dewar@adacore.com>
18460
18461         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
18462         initial letter o as a zero.
18463
18464 2006-10-31  Robert Dewar  <dewar@adacore.com>
18465
18466         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
18467
18468 2006-10-31  Robert Dewar  <dewar@adacore.com>
18469
18470         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
18471         variant records
18472         (Layout_Variant_Record): Retrieve the discriminants from the entity
18473         rather than from the type definition, because in the case of a full
18474         type for a private type we need to take the discriminants from the
18475         partial view.
18476         (Layout_Component_List): When applying the Max operator to variants with
18477         a nonstatic size, check whether either operand is static and scale that
18478         operand from bits to storage units before applying Max.
18479         (Layout_Type): In VMS, if a C-convention access type has no explicit
18480         size clause (and does not inherit one in the case of a derived type),
18481         then the size is reset to 32 from 64.
18482
18483 2006-10-31  Vincent Celier  <celier@adacore.com>
18484
18485         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
18486         its file has already been loaded, according to the unit being loaded,
18487         not to the current value of Multiple_Unit_Index.
18488
18489 2006-10-31  Thomas Quinot  <quinot@adacore.com>
18490             Eric Botcazou  <ebotcazou@adacore.com>
18491             Arnaud Charlet  <charlet@adacore.com>
18492
18493         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
18494         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
18495         possible.
18496         (a-except.o): Pass it to the compiler.
18497         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
18498         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
18499         a-calend-mingw.adb version.
18500
18501         * Makefile.rtl: Added s-dsaser.
18502         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
18503         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
18504         Ada.Dispatching.Round_Robin.
18505         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
18506
18507         * Make-lang.in: Remove all references to gt-ada-decl.h.
18508         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
18509         sources.
18510         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
18511         Update dependencies.
18512
18513         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
18514
18515 2006-10-31  Vincent Celier  <celier@adacore.com>
18516
18517         * mlib-utl.adb (Initialized): Remove, no longer used
18518         (Initialize): Remove, no longer used
18519         (Ar): If Ar_Exec is null, get the location of the archive builder and,
18520         if there is one, the archive indexer. Fail if the archive builder cannot
18521         be found.
18522         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
18523         be found.
18524
18525 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18526
18527         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
18528         Process_Body_Clauses): If the context of a body includes a use clause
18529         for P.Q then a with_clause for P in the same body is not redundant,
18530         even if the spec also has a with_clause on P.
18531         Add missing continuation mark to error msg
18532         (Build_Limited_Views): A limited view of a type is tagged if its
18533         declaration includes a record extension.
18534         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
18535         node, even if the subunit has errors. This avoids malfunction by
18536         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
18537         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
18538         generation of obsolescent messages for with statements (cannot do
18539         this too early, or we cannot implement avoiding the messages in the
18540         case of obsolescent units withing obsolescent units).
18541         (Install_Siblings): If the with_clause is on a remote descendant of
18542         an ancestor of the current compilation unit, find whether there is
18543         a sibling child unit that is immediately visible.
18544         (Remove_Private_With_Clauses): New procedure, invoked after completing
18545         the analysis of the private part of a nested package, to remove from
18546         visibility the private with_clauses of the enclosing package
18547         declaration.
18548         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
18549         now centralized in Generate_Reference.
18550         (Install_Limited_Context_Clauses): Remove superfluous error
18551         message associated with unlimited view visible through use
18552         and renamings. In addition, at the point in which the error
18553         is reported, we add the backslash to the text of the error
18554         to ensure that it is reported as a single error message.
18555         Use new // insertion for some continuation messages
18556         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
18557         to create implicit with_clause for parent unit mentioned in original
18558         limited_with_clause.
18559         (Install_Limited_With_Unit): Set entity of parent identifiers if the
18560         unit is a child unit. For ASIS queries.
18561         (Analyze_Subunit): If the subunit appears within a child unit, make all
18562         ancestor child units directly visible again.
18563
18564 2006-10-31  Robert Dewar  <dewar@adacore.com>
18565
18566         * par-ch10.adb (P_Context_Clause): Minor error message fix
18567
18568 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
18569             Javier Miranda  <miranda@adacore.com>
18570
18571         * par-ch12.adb: Grammar update and cleanup.
18572         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
18573         support for synchronized derived type definitions.
18574         Add the new actual Abstract_Present to every call to
18575         P_Interface_Type_Definition.
18576         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
18577         a formal object declaration with an access definition or a subtype mark
18578         with a null exclusion.
18579         (P_Generic_Association): Handle association with box, and others_choice
18580         with box, to support Ada 2005 partially parametrized formal packages.
18581
18582 2006-10-31  Robert Dewar  <dewar@adacore.com>
18583             Javier Miranda  <miranda@adacore.com>
18584
18585         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
18586         (P_Type_Declaration): Remove barrier against the reserved word "limited"
18587         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
18588         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
18589         private extensions.
18590         (P_Type_Declaration): Add the new actual Abstract_Present to every call
18591         to P_Interface_Type_Definition.
18592         (P_Interface_Type_Definition): Addition of one formal to report an error
18593         if the reserved word abstract has been previously found.
18594         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
18595         object renaming declaration with an access definition or subtype mark
18596         with a possible null exclusion.
18597
18598         * par-ch9.adb: Minor error msg fix
18599
18600         * par-load.adb: Add missing continuation mark to error msg
18601
18602         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
18603
18604 2006-10-31  Vincent Celier  <celier@adacore.com>
18605
18606         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
18607         unknown attribute in unknown package or in package that does not need
18608         to be checked.
18609         (Parse_Package_Declaration): Do not issue warning for unknown package in
18610         quiet output.
18611
18612 2006-10-31  Vincent Celier  <celier@adacore.com>
18613
18614         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
18615         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
18616         Packages_To_Check.
18617
18618 2006-10-31  Vincent Celier  <celier@adacore.com>
18619
18620         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
18621         on VMS, change "__" to '.' before checking the name.
18622         (Record_Ada_Source): Always add the source file name in the list of
18623         of sources, even if it is not the first time, as it is for another
18624         source index.
18625         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
18626         dot, instead of replacing only the first '_'.
18627
18628         * prj-part.adb (Parse): Convert project file path to canonical form
18629
18630         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
18631         extended, the project id of the project extending it is recorded in its
18632         data, even when it has already been processed as an imported project.
18633
18634 2006-10-31  Robert Dewar  <dewar@adacore.com>
18635
18636         * repinfo.adb (List_Entities): Don't list entities from renaming
18637         declarations.
18638
18639 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
18640             Robert Dewar  <dewar@adacore.com>
18641
18642         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
18643         only a restriction warning is active for the given restriction. This is
18644         desirable because we do not want to modify code in the case where only
18645         a warning is set.
18646         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
18647         causes overriding of real restrictions.
18648         Take advantage of new No_Restrictions constant.
18649
18650         * raise.h: (__gnat_set_globals): Change profile.
18651
18652 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
18653
18654         * rtsfind.adb: Remove s-polint from comment as it exists no more.
18655
18656         * rtsfind.ads:
18657         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
18658         Move all the entities in obsolete package System.PolyORB_Interface to
18659         System.Partition_Interface.
18660         (RE_Storage_Size): New function in System.Tasking.
18661         (RE_Get_Ceiling): New entity.
18662         (RE_Set_Ceiling): New entity.
18663         (RO_PE_Get_Ceiling): New entity.
18664         (RO_RE_Set_Ceiling): New entity.
18665         (Inherit_CPP_DT): New entity
18666
18667 2006-10-31  Robert Dewar  <dewar@adacore.com>
18668
18669         * scng.adb (Scan, case of numeric literal): Better msg for identifier
18670         starting with a digit.
18671
18672 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18673             Thomas Quinot  <quinot@adacore.com>
18674             Javier Miranda  <miranda@adacore.com>
18675             Gary Dismukes  <dismukes@adacore.com>
18676
18677         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
18678         properly an attempt to apply Unchecked_Access to a protected operation.
18679         (OK_Self_Reference): New subprogram to check the legality of an access
18680         attribute whose prefix is the type of an enclosing aggregate.
18681         Generalizes previous mechanism to handle attribute references nested
18682         arbitrarily deep within the aggregate.
18683         (Analyze_Access_Attribute): An access attribute whose prefix is a type
18684         can appear in an aggregate if this is a default-initialized aggregate
18685         for a self-referential type.
18686         (Resolve_Attribute, case Access): Ditto.
18687         Add support for new implementation defined attribute Stub_Type.
18688         (Eval_Attribute, case Attribute_Stub_Type): New case.
18689         (Analyze_Attribute, case Attribute_Stub_Type): New case.
18690         (Stream_Attribute_Available): Implement using new subprogram from
18691         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
18692         Has_Specified_Stream_Attribute flag.
18693         Disallow Storage_Size and Storage_Pool for access to subprogram
18694         (Resolve_Attribute, case 'Access et al): Take into account anonymous
18695         access types of return subtypes in extended return statements. Remove
18696         accessibility checks on anonymous access types when Unchecked_Access is
18697         used.
18698         (Analyze_Attribute): Add support for the use of 'Class to convert
18699         a class-wide interface to a tagged type.
18700         Add support for the attribute Priority.
18701         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
18702         whether the designated type is discriminated with a constrained partial
18703         view and require static matching in that case.
18704         Add local variable Des_Btyp. The Designated_Type
18705         of an access to incomplete subtype is either its non-limited view if
18706         coming from a limited with or its etype if regular incomplete subtype.
18707
18708         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
18709         Fix predicate to identify and allow cases of (expander-generated)
18710         references to tag of designated object of a RACW.
18711         (Validate_Static_Object_Name): In Ada 2005, a formal object is
18712         non-static, and therefore cannot appear as a primary in a preelaborable
18713         package.
18714         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
18715         Has_Read_Write_Attributes.
18716         (Has_Read_Write_Attributes): Reimplement in termes of
18717         Has_Stream_Attribute_Definition.
18718         (Missing_Read_Write_Attributes): When checking component types in a
18719         record, unconditionally call Missing_Read_Write_Attributes recursively
18720         (remove guard checking for Is_Record_Type / Is_Access_Type).
18721
18722 2006-10-31  Robert Dewar  <dewar@adacore.com>
18723
18724         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
18725         useless assignments here and conditionalize it on absence of exception
18726         handlers.
18727         (Analyze_Exception_Handlers): Small code reorganization of error
18728         detection code, for new handling of formal packages.
18729
18730 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18731             Hristian Kirtchev  <kirtchev@adacore.com>
18732
18733         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
18734         that has been constant-folded, preserve information of original tree,
18735         for ASIS uses.
18736         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
18737         generated private extension declaration if the formal derived type is
18738         synchronized. Carry synchronized present over to the generated private
18739         extension.
18740         (Validate_Derived_Type_Instance): Ensure that the actual of a
18741         synchronized formal derived type is a synchronized tagged type.
18742         (Instantiate_Formal_Package): When creating the instantiation used to
18743         validate the actual package of a formal declared without a box, check
18744         whether the formal itself depends on a prior actual.
18745         (Instantiate_Formal_Subprogram): Create new entities for the defining
18746         identifiers of the formals in the renaming declaration, for ASIS use.
18747         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
18748         a renaming declaration or a subtype declaration for an actual in an
18749         instance, capture location information of declaration in generic, for
18750         ASIS use.
18751         (Instantiate_Formal_Package): Add comments on needed additional tests.
18752         AI-317 (partial parametrization) is fully implemented.
18753         (Validate_Private_Type_Instance): Add check for actual which
18754         must have preelaborable initialization
18755         Use new // insertion for some continuation messages
18756         (Analyze_Formal_Object_Declaration): Change usage of Expression to
18757         Default_Expression. Add type retrieval when the declaration has an
18758         access definition. Update premature usage of incomplete type check.
18759         (Check_Access_Definition): New subsidiary routine. Check whether the
18760         current compilation version is Ada 05 and the supplied node has an
18761         access definition.
18762         (Instantiate object): Alphabetize local variables. Handle the creation
18763         of new renaming declarations with respect to the kind of definition
18764         used - either an access definition or a subtype mark. Guard against
18765         unnecessary error message in the context of anonymous access types after
18766         they have been resolved. Add check for required null exclusion in a
18767         formal object declaration.
18768         (Switch_View): A private subtype of a non-private type needs to be
18769         switched (the base type can have been switched without its private
18770         dependents because of the last branch of Check_Private_View.
18771         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
18772         value from BT.
18773         (Instantiate_Type): Emit an error message whenever a class-wide type of
18774         a tagged incomplete type is used as a generic actual.
18775         (Find_Actual_Type): Extend routine to handle a component type in a child
18776         unit that is imported from a formal package in a parent.
18777         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
18778         agree on constrainedness, rather than checking against ultimate ancestor
18779         (Instantiate_Subprogram_Body): Create a cross-reference link to the
18780         generic body, for navigation purposes.
18781
18782 2006-10-31  Robert Dewar  <dewar@adacore.com>
18783             Thomas Quinot  <quinot@adacore.com>
18784
18785         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
18786         type.
18787         (New_Stream_Subprogram): When processing an attribute definition clause
18788         for a stream-oriented subprogram, record an entity node occurring at
18789         the point of clause to use for checking the visibility of the clause,
18790         as defined by 8.3(23) as amended by AI-195.
18791         (New_Stream_Subprogram): New procedure, factoring behaviour from both
18792          New_Stream_Function and New_Stream_Procedure.
18793         (New_Stream_Function, New_Stream_Procedure): Removed.
18794         (Analyze_Attribute_Definition_Clause, case Address): Check new
18795         Alignment_Check check
18796
18797 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18798             Javier Miranda  <miranda@adacore.com>
18799             Robert Dewar  <dewar@adacore.com>
18800
18801         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
18802         generate the same errors compiling under -gnatc.
18803         (Try_Object_Operation): If no candidate interpretation succeeds, but
18804         there is at least one primitive operation with the right name, report
18805         error in call rather than on a malformed selected component.
18806         (Analyze_Selected_Component): If the prefix is an incomplete type from
18807         a limited view, and the full view is available, use the full view to
18808         determine whether this is a prefixed call to a primitive operation.
18809         (Operator_Check): Verify that a candidate interpretation is a binary
18810         operation before checking the type of its second formal.
18811         (Analyze_Call): Add additional warnings for function call contexts not
18812         yet supported.
18813         (Analyze_Allocator): Move the check for "initialization not allowed for
18814         limited types" after analyzing the expression. This is necessary,
18815         because OK_For_Limited_Init looks at the structure of the expression.
18816         Before analysis, we don't necessarily know what sort of expression it
18817         is. For example, we don't know whether F(X) is a function call or an
18818         indexed component; the former is legal in Ada 2005; the latter is not.
18819         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
18820         were missing. We also didn't handle qualified expressions. Now also
18821         allow function calls. Use new common routine OK_For_Limited_Init.
18822         (Analyze_Type_Conversion): Do not perform some legality checks in an
18823         instance, because the error message will be redundant or spurious.
18824         (Analyze_Overloaded_Selected_Component): Do not do style check when
18825         setting an entity, since we do not know it is the right entity yet.
18826         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
18827         (Analyze_Overloaded_Selected_Component): Same change
18828         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
18829         since regular incomplete subtypes are transformed into corresponding
18830         subtypes of their full views.
18831         (Complete_Object_Operation): Treat name of transformed subprogram call
18832         as coming from source, for browsing purposes.
18833         (Try_Primitive_Operation): If formal is an access parameter, compare
18834         with base type of object to determine whether it is a primitive
18835         operation.
18836         (Operator_Check): If no interpretation of the operator matches, check
18837         whether a use clause on any candidate might make the operation legal.
18838         (Try_Class_Wide_Operation): Check whether the first parameter is an
18839         access type whose designated type is class-wide.
18840
18841 2006-10-31  Robert Dewar  <dewar@adacore.com>
18842             Ed Schonberg  <schonberg@adacore.com>
18843             Gary Dismukes  <dismukes@adacore.com>
18844
18845         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
18846         warn on infinite loops.
18847         Add \\ to some continuation messages
18848         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
18849         (Process_Bounds): If the bounds are integer literals that result from
18850         constant-folding, and they carry a user-defined type, preserve that type
18851         rather than treating this as an integer range.
18852         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
18853         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
18854         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
18855         left hand side of assignment.
18856         (Analyze_Assignment): Add suport to manage assigments to the attribute
18857         priority of a protected object.
18858         (Check_Possible_Current_Value_Condition): Allow fully qualified names
18859         not just identifiers.
18860         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
18861         or AND THEN for possible tracking.
18862         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
18863         case of while loops so we can track values in the loop body.
18864
18865 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18866             Hristian Kirtchev  <kirtchev@adacore.com>
18867             Bob Duff  <duff@adacore.com>
18868
18869         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
18870         procedure cannot be a protected operation (it is a basic_declaration,
18871         not a subprogram_declaration).
18872         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
18873         Subp. Add logic for entry processing.
18874         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
18875         Determine whether an entry or subprogram of a protected or task type
18876         override an inherited primitive of an implemented interface.
18877         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
18878         Update the actual used in calls to Check_Overriding_Indicator.
18879         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
18880         generate the proper reference to the parent unit, for cross-reference.
18881         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
18882         Is_Formal.
18883         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
18884         (Add_Extra_Formal): Revise procedure to allow passing in associated
18885         entity, scope, and name suffix, and handle setting of the new
18886         Extra_Formals field.
18887         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
18888         pass new parameters. Add support for adding the new extra access formal
18889         for functions whose calls are treated as build-in-place.
18890         (Analyze_A_Return_Statement): Correct casing in error message.
18891         Move Pop_Scope to after Analyze_Function_Return, because an extended
18892         return statement really is a full-fledged scope. Otherwise, visibility
18893         doesn't work right. Correct use of "\" for continuation messages.
18894         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
18895         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
18896         the node doesn't get properly marked as analyzed.
18897         (Analyze_Subprogram_Body): If subprogram is a function that returns
18898         an anonymous access type that denotes a task, build a Master Entity
18899         for it.
18900         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
18901         proper usage of null exclusion in a result definition.
18902         (Process_Formals): Code cleanup and new error message.
18903         (Process_Formals): Detect incorrect application of null exclusion to
18904         non-access types.
18905         (Conforming_Types): Handle conformance between [sub]types and itypes
18906          generated for entities that have null exclusions applied to them.
18907         (Maybe_Primitive_Operation): Add an additional type retrieval when the
18908          base type is an access subtype. This case arrises with null exclusions.
18909         (New_Overloaded_Entity): Do not remove the overriden entity from the
18910         homonym chain if it corresponds with an abstract interface primitive.
18911         (Process_Formals): Replace membership test agains Incomplete_Kind with a
18912         call to the synthesized predicate Is_Incomplete_Type.
18913         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
18914         primitives.
18915         (Analyze_Subprogram_Declaration): Check that abstract interface
18916         primitives are abstract or null.
18917         (Analyze_Subprogram_Specification): Remove previous check for abstract
18918         interfaces because it was not complete.
18919         (Has_Interface_Formals): Removed.
18920
18921 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18922             Javier Miranda  <miranda@adacore.com>
18923
18924         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
18925         of Analyze_Package_Body, to create Itype references for anonymous
18926         access types created in the package declaration, whose designated types
18927         may have only a limited view.
18928         (Analyze_Package_Specification): For the private part of a nested
18929         package, install private_with_clauses of enclosing compilation unit if
18930         we are in its visible part.
18931         (Declare_Inherited_Private_Subprograms): Complete barrier
18932         to ensure that the primitive operation has an alias to some parent
18933         primitive. This is now required because, after the changes done for the
18934         implementation of abstract interfaces, the contents of the list of
18935         primitives has entities whose alias attribute references entities of
18936         such list of primitives.
18937         (Analyze_Package_Specification): Simplify code that handles parent units
18938         of instances and formal packages.
18939         (Uninstall_Declarations): Check the convention consistency among
18940         primitive overriding operations of a tagged record type.
18941
18942 2006-10-31  Robert Dewar  <dewar@adacore.com>
18943             Hristian Kirtchev  <kirtchev@adacore.com>
18944             Javier Miranda  <miranda@adacore.com>
18945             Ed Schonberg  <schonberg@adacore.com>
18946
18947         * sem_ch8.adb: Minor error msg rewording
18948         (Undefined): When checking for misspellings, invert arguments (to get
18949         expected and found set right)
18950         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
18951         (Analyze_Generic_Renaming): Same fix
18952         (Use_One_Package): Do not take into account the internal entities of
18953         abstract interfaces during the analysis of entities that are marked
18954         as potentially use-visible.
18955         (Find_Type): Handle the case of an attribute reference for
18956         implementation defined attribute Stub_Type (simply let the analysis of
18957         the attribute reference rewrite it).
18958         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
18959         type that appears in a Use_Type clause.
18960         (Analyze_Object_Renaming): Add support for renaming of the Priority
18961         attribute.
18962         (Find_Type): In Ada 2005, a task type can be used within its own body,
18963         when it appears in an access definition.
18964         (Analyze_Object_Renaming): Remove warning on null_exclusion.
18965         (Analyze_Object_Renaming): Introduce checks for required null exclusion
18966          in a formal object declaration or in a subtype declaration.
18967         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
18968         (Check_Null_Exclusion): New local routine to
18969         Analyze_Subprogram_Renaming. Check whether the formals and return
18970         profile of a renamed subprogram have required null exclusions when
18971         their counterparts of the renaming already impose them.
18972         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
18973         Determine whether an entity is inside a generic scope.
18974         (In_Open_Scope): First pass of documentation update.
18975         (Find_Expanded_Name): Add support for shadow entities associated with
18976         limited withed packages. This is required to handle nested packages.
18977         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
18978         that makes a renaming of a limited withed package illegal.
18979
18980 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
18981             Ed Schonberg  <schonberg@adacore.com>
18982
18983         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
18984         Check_Overriding_Indicator.
18985         (Analyze_Task_Definition): Ditto.
18986         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
18987         (Check_Overriding_Indicator): To find overridden interface operation,
18988         examine only homonyms that have an explicit subprogram declaration, not
18989         inherited operations created by an unrelated type derivation.
18990         (Check_Overriding_Indicator): When checking for the presence of "null"
18991         in a procedure, ensure that the queried node is a procedure
18992         specification.
18993         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
18994         type when the formal is an access to variable.
18995         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
18996         (Analyze_Task_Type): Same addition
18997         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
18998         provide navigation capabilities for entries.
18999
19000 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
19001             Ed Schonberg  <schonberg@adacore.com>
19002             Javier Miranda  <miranda@adacore.com>
19003             Gary Dismukes  <dismukes@adacore.com>
19004
19005         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
19006         inherited from an interface ancestor by another interface in the
19007         context of an instance as 'late'.
19008         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
19009         of a call to a function that dispatches on access result.
19010         (Check_Dispatching_Operation): In case of late overriding of a primitive
19011         that covers abstract interface subprograms we register it in all the
19012         secondary dispatch tables associated with abstract interfaces.
19013         (Check_Dispatching_Call): Add check that a dispatching call is not made
19014         to a function with a controlling result of a limited type. This is a
19015         current implementation restriction.
19016         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
19017         (Check_Dispatching_Operation): Do no emit a warning if the controlling
19018         argument is an interface type that is a generic formal.
19019         (Is_Interface_Subprogram): Removed.
19020         (Check_Dispatching_Operation): If the subprogram is not a dispatching
19021         operation, check the formals to handle the case in which it is
19022         associated with an abstract interface type.
19023
19024 2006-10-31  Robert Dewar  <dewar@adacore.com>
19025             Ed Schonberg  <schonberg@adacore.com>
19026
19027         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
19028         Add new calls to this procedure during traversal
19029         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
19030         another unit if expansion is disabled.
19031
19032 2006-10-31  Robert Dewar  <dewar@adacore.com>
19033
19034         * sem_eval.adb (Compile_Time_Compare): Make use of information from
19035         Current_Value in the conditional case, to evaluate additional
19036         comparisons at compile time.
19037
19038 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
19039             Hristian Kirtchev  <kirtchev@adacore.com>
19040             Javier Miranda  <miranda@adacore.com>
19041
19042         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
19043         subprogram type to provide better diagnostics in case of ambiguity.
19044         (Covers): Handle coverage of formal and actual anonymous access types in
19045         the context of generic instantiation.
19046         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
19047         abstract interface types; this is required to handle concurrent types
19048         with discriminants and abstract interface types.
19049         (Covers): Include type coverage of both regular incomplete subtypes and
19050         incomplete subtypes of incomplete type visibles through a limited with
19051         clause.
19052
19053 2006-10-31  Robert Dewar  <dewar@adacore.com>
19054             Hristian Kirtchev  <kirtchev@adacore.com>
19055             Ed Schonberg  <schonberg@adacore.com>
19056
19057         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
19058         messages for entities in packages which are not used.
19059         (Collect_Synchronized_Interfaces): New procedure.
19060         (Overrides_Synchronized_Primitive): New function.
19061         (Denotes_Discriminant): Extend predicate to apply to task types.
19062         Add missing continuation marks in error msgs
19063         (Unqualify): New function for removing zero or more levels of
19064         qualification from an expression. There are numerous places where this
19065         ought to be used, but we currently only deal properly with zero or one
19066         level.
19067         (In_Instance); The analysis of the actuals in the instantiation of a
19068         child unit is not within an instantiation, even though the parent
19069         instance is on the scope stack.
19070         (Safe_To_Capture_Value): Exclude the case of variables that are
19071         renamings.
19072         (Check_Obsolescent): Removed
19073         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
19074         is an aliased view, even when rewritten as a reference to the target
19075         object in an assignment.
19076         (Get_Subprogram_Entity): New function
19077         (Known_To_Be_Assigned): New function
19078         (Type_Access_Level): Compute properly the access level of a return
19079         subtype that is an anonymous access type.
19080         (Explain_Limited_Type): Correct use of "\" for continuation messages.
19081         (Is_Transfer): The new extended_return_statement causes a transfer of
19082         control.
19083         (Has_Preelaborable_Initialization): New function
19084         (Has_Null_Exclusion): New function. Given a node N, determine whether it
19085         has a null exclusion depending on its Nkind.
19086         Change Is_Lvalue to May_Be_Lvalue
19087         (May_Be_Lvalue): Extensive additional code to deal with subprogram
19088         arguments (IN parameters are not Lvalues, IN OUT parameters are).
19089         (Safe_To_Capture_Value): Extend functionality so it can be used for
19090         the current value condition case.
19091         (Has_Compatible_Alignment): New function
19092         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
19093         objects to handle the Ada 2005 case, where aliasedness no longer implies
19094         that the object is constrained. In particular, for dereferenced names,
19095         the designated object must be assumed to be unconstrained.
19096         (Kill_Current_Values): Properly deal with the case where we encounter
19097         a loop in the scope chain.
19098         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
19099         a value.
19100         (Compile_Time_Constraint_Error): Improve error message in error case
19101
19102         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
19103         associated with entities of abstract interface primitives.
19104         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
19105
19106 2006-10-31  Robert Dewar  <dewar@adacore.com>
19107
19108         * s-osinte-tru64.adb:
19109         Mark Asm statements Volatile to prevent warnings (seems a
19110         reasonable change anyway)
19111         Fixes new warnings
19112
19113         * s-mastop-irix.adb: Add Volatile to Asm statements
19114         Suppresses warning, and seems appropriate in any case
19115
19116         * s-osinte-vms.adb: Add Volatile to Asm statement
19117
19118         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
19119
19120         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
19121         returned.
19122         Add call to Check_Code_Statement
19123
19124 2006-10-31  Robert Dewar  <dewar@adacore.com>
19125             Ed Schonberg  <schonberg@adacore.com>
19126             Bob Duff  <duff@adacore.com>
19127
19128         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
19129         Synchronized_Present): Add Formal_Derived_Type_Definition and
19130         Private_Extension_Declaration to the list of assertions.
19131         (Is_Entry_Barrier_Function): New flag
19132         (Has_Self_Reference): New flag on aggregates, to indicate that they
19133         contain a reference to the enclosing type, inserted through a default
19134         initialization.
19135         (Next_Rep_Item): Move from Node4 to Node5.
19136         (Entity): Add this field for N_Attribute_Definition_Clause.
19137         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
19138         (N_Return_Object_Declaration): Remove this node kind. We now use
19139         N_Object_Declaration instead.
19140         (Actual_Designated_Subtype): Move to a different place to make room in
19141         N_Extended_Return_Statement.
19142         (Procedure_To_Call): Move to a different place to make room in
19143         N_Extended_Return_Statement.
19144         (Return_Type): Removed this field to make room in return statements
19145         (both kinds).
19146         (Return_Statement_Entity): New field in return statements, in part to
19147         replace Return_Type, and in part to support the fact that return
19148         statements are now pushed on the scope stack during semantic analysis.
19149         (Return_Object_Declarations): New field to support extended return
19150         statements.
19151         (N_Extended_Return_Statement): New node for extended_return_statement
19152         nonterminal.
19153         (N_Return_Object_Declaration): New node for part of
19154         extended_return_statement nonterminal. Needed because all the necessary
19155         fields won't fit in N_Extended_Return_Statement.
19156         Generic_associations now carry the Box_Present flag, to indicate a
19157         default for an actual in a partially parametrized formal package.
19158
19159         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
19160         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
19161         and for the new predefined dispatching policies: EDF_Across_Priorities,
19162         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
19163         Introduce new name Stub_Type for implementation defined attribute.
19164         Add pragma Preelaborable_Initialization
19165         Add entry for Priority attribute.
19166         Add Pragma_Wide_Character_Encoding
19167         (Get_Convention_Name): Given a convention id, this function returns the
19168         corresponding name id from the names table.
19169
19170 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
19171             Robert Dewar  <dewar@adacore.com>
19172             Bob Duff  <duff@adacore.com>
19173
19174         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
19175         print null exclusion twice in the case of an access definition,
19176         Implement new -gnatL switch
19177         Remove N_Return_Object_Declaration. We now use
19178         N_Object_Declaration instead. Implement the case for
19179         N_Extended_Return_Statement. Alphabetize the cases.
19180         Add cases for new nodes N_Extended_Return_Statement and
19181         N_Return_Object_Declaration. The code is not yet written.
19182         Update the output for N_Formal_Object_Declaration
19183         and N_Object_Renaming_Declaration.
19184         (Write_Itype): Account for the case of a modular integer subtype whose
19185         base type is private.
19186
19187 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
19188
19189         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
19190         Remove elaboration code, now done in the binder.
19191
19192         * s-rident.ads: Make this unit Preelaborate.
19193         (No_Restrictions): New constant used to clean up code and follow
19194         preelaborate constraints.
19195
19196         * s-stalib.adb:
19197         Add System.Restrictions dependence, referenced directly from the
19198         binder generated file.
19199
19200 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
19201
19202         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
19203         True when AAMP extended floating-point is in use (48-bit). Change type
19204         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
19205         the two byte array types on AFloat. Change type of IV_Ilf overlay
19206         variable from Byte8 to ByteLF. Add appropriate initializations of
19207         floating-point overlays for AAMP cases.
19208
19209 2006-10-31  Javier Miranda  <miranda@adacore.com>
19210
19211         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
19212         (Get_Ceiling): New subprogram that returns
19213         the ceiling priority of the protected object.
19214         (Set_Ceiling): New subprogram that sets the new ceiling priority of
19215         the protected object.
19216
19217         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
19218
19219         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
19220
19221 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
19222
19223         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
19224         requeuing to the same protected object to give higher priority tasks
19225         the opportunity to execute.
19226
19227 2006-10-31  Robert Dewar  <dewar@adacore.com>
19228
19229         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
19230         add more precise check for the character sequence that follows '[' to
19231         avoid possible confusion in case if '[' is the last character of a
19232         string literals.
19233         (Scan_Wide): Always allow brackets encoding
19234
19235 2006-10-31  Olivier Hainque  <hainque@adacore.com>
19236
19237         * s-stchop.ads: make this unit preelaborate. This is desirable in
19238         general and made mandatory by the use of this unit by s-taprop which
19239         is itself preelaborate.
19240
19241         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
19242         Td_Events component.
19243
19244 2006-10-31  Vincent Celier  <celier@adacore.com>
19245
19246         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
19247         in file names.
19248
19249 2006-10-31  Vincent Celier  <celier@adacore.com>
19250
19251         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
19252
19253 2006-10-31  Vincent Celier  <celier@adacore.com>
19254
19255         * makegpr.adb (Check_Compilation_Needed): Take into account path names
19256         with spaces.
19257         (Check_Compilation_Needed): When checking a C or C++ source, do not
19258         resolve symbolic links.
19259         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
19260         When not in verbose mode and Ellipse is True, display "..." for the
19261         first argument with Display set to False.
19262         (Build_Global_Archive): Always set Display True for the first object
19263         file. Call Display_Command with Ellipse set to True.
19264
19265 2006-10-31  Matt Heaney  <heaney@adacore.com>
19266
19267         * a-crbtgo.ads: Commented each subprogram
19268
19269         * a-crbtgo.adb: Added reference to book from which algorithms were
19270         adapted.
19271
19272         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
19273         indicate which child.
19274         (Generic_Conditional_Insert): changed parameter name from "Success" to
19275         "Inserted".
19276         (Generic_Unconditional_Insert_With_Hint): improved algorithm
19277
19278         * a-coorse.adb (Replace_Element): changed parameter name in call to
19279         conditional insert operation.
19280
19281         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
19282
19283         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
19284         Generic_Iteration
19285
19286         * a-ciorse.adb (Replace_Element): changed parameter name in call to
19287         conditional insert operation.
19288
19289         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
19290         Generic_Iteration.
19291
19292         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
19293         instead of mode inout.
19294
19295         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
19296         draft
19297         (Generic_Read): preserve existing buckets array if possible
19298         (Generic_Write): don't send buckets array length anymore
19299
19300         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
19301         instead of mode inout.
19302
19303         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
19304         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
19305
19306         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
19307         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
19308         (Replace_Element): local operation is now an instantiation
19309
19310         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
19311         check current length.
19312         (Generic_Replace_Element): new operation
19313
19314 2006-10-31  Doug Rupp  <rupp@adacore.com>
19315
19316         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
19317         Call TBK$SYMBOLIZE without omitting parameters.
19318
19319 2006-10-31  Vincent Celier  <celier@adacore.com>
19320
19321         * symbols-processing-vms-ia64.adb,
19322         symbols-processing-vms-alpha.adb (Process): Do not include symbols
19323         that come from generic instantiations in bodies.
19324
19325 2006-10-31  Pat Rogers  <rogers@adacore.com>
19326
19327         * a-rttiev.ads, a-rttiev.adb:
19328         This is a significant redesign primarily for the sake of automatic
19329         timer task termination but also to fix a design flaw.
19330         Therefore we are now using an RTS lock, instead of a protected
19331         object, to provide mutual exclusion to the queue of pending events
19332         and the type Timing_Event is no longer a protected type.
19333
19334 2006-10-31  Robert Dewar  <dewar@adacore.com>
19335             Cyrille Comar  <comar@adacore.com>
19336             Ben Brosgol  <brosgol@adacore.com>
19337
19338         * debug.adb:  Update flags documentation
19339
19340         * gnat_ugn.texi: Add documentation for new -gnatwq switch
19341         Clean up documentation for several other warning switches
19342         Clarify how task stack size can be specified with various
19343         versions of Windows.
19344         Add note that -gnatVo includes ranges including loops
19345         Add documentation for -gnatL switch
19346         Add note on elaboration warning for initializing variables
19347         Add documentation for new -gnatwt warning switch
19348         Document new form of pragma Warnings (On|Off, string)
19349         Add comment on use of pragma Warnings to control warnings
19350         Add documentation for -gnatjnn switch
19351         Modify section on interfacing with C for VMS 64-bit.
19352         Add doc for -gnatVe/E
19353         Add documentation of new warning flags -gnatww/-gnatwW
19354         Add warnings about address clause overlays to list of warnings
19355         (Exception Handling Control): Document that the option --RTS must be
19356         used consistently for gcc and gnatbind.
19357         Clarify that inlining is not always possible
19358         Update documentation on pragma Unchecked_Union.
19359
19360         * gnat_rm.texi:
19361         Add documentation for new extended version of pragma Obsolescent
19362         Add documentation for implementation defined attribute 'Stub_Type.
19363         Add note on use of Volatile in asm statements
19364         Add documentation on use of pragma Unreferenced in context clause
19365         Document new form of pragma Warnings (On|Off, pattern)
19366         Document pragma Wide_Character_Encoding
19367         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
19368         enforced if code generation is active.
19369         Add section on pragma Suppress to document GNAT specific check
19370         Alignment_Check
19371         Clarify difference between No_Dispatching_Calls & No_Dispatch.
19372         Add documentation for pragma Restrictions (No_Elaboration_Code)
19373
19374         * gnat-style.texi:
19375         Add comments on layout of subprogram local variables in the
19376         presence of nested subprograms.
19377
19378         * ug_words: Resync.
19379
19380         * elists.ads: Minor reformatting
19381         Node returns Node_Or_Entity_Id (doc change only)
19382
19383         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
19384
19385         * g-arrspl.ads (Create): Update comments.
19386
19387         * sem.ads: Add details on the handling of the scope stack.
19388
19389         * usage.adb: Update documentation.
19390
19391         * validsw.ads, validsw.adb:
19392         Add definition of Validity_Check_Components and implement -gnatVe/E
19393
19394         * vms_data.ads: Add missing VMS qualifiers.
19395
19396         * s-addope.ads: Add documentation on overflow and divide by zero
19397
19398 2006-10-31  Robert Dewar  <dewar@adacore.com>
19399             Thomas Quinot  <quinot@adacore.com>
19400             Arnaud Charlet  <charlet@adacore.com>
19401
19402         * fmap.adb: Put routines in alpha order
19403
19404         * g-boumai.ads: Remove redundant 'in' keywords
19405
19406         * g-cgi.adb: Minor reformatting
19407
19408         * g-cgi.ads: Remove redundant 'in' keywords
19409
19410         * get_targ.adb: Put routines in alpha order
19411
19412         * prj-attr.ads: Minor reformatting
19413
19414         * s-atacco.ads: Minor reformatting
19415
19416         * scn.adb: Put routines in alpha order
19417
19418         * sinput-l.adb: Minor comment fix
19419
19420         * sinput-p.adb: Minor comment fix
19421
19422         * s-maccod.ads: Minor reformatting
19423
19424         * s-memory.adb: Minor reformatting
19425
19426         * s-htable.adb: Fix typo in comment.
19427
19428         * s-secsta.adb: Minor comment update.
19429
19430         * s-soflin.adb: Minor reformatting
19431
19432         * s-stoele.ads:
19433         Add comment about odd qualification in Storage_Offset declaration
19434
19435         * s-strxdr.adb:
19436         Remove unnecessary 'in' keywords for formal parameters.
19437
19438         * treeprs.adt: Minor reformatting
19439
19440         * urealp.adb: Put routines in alpha order
19441
19442         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
19443         taking string.
19444
19445         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
19446
19447         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
19448
19449         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
19450         workaround as on other platforms.
19451
19452         * g-eacodu-vms.adb: Remove redundant 'in' keywords
19453         * g-expect-vms.adb: Remove redundant 'in' keywords
19454
19455         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
19456         clear error message if the list-of-files file cannot be opened.
19457
19458         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
19459         equality operator is always visible.
19460
19461         * lang.opt: Woverlength-strings: New option.
19462
19463         * nmake.adt:
19464         Update copyright, since nmake.ads and nmake.adb have changed.
19465
19466         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
19467         (Binder_Output_Time_Stamps_Set): removed.
19468         (Old_Binder_Output_Time_Stamp): idem.
19469         (New_Binder_Output_Time_Stamp): idem.
19470         (Recording_Time_From_Last_Bind): idem.
19471         (Recording_Time_From_Last_Bind): Make constant.
19472
19473         * output.ads, output.adb (Write_Str): Allow LF characters
19474         (Write_Spaces): New procedure
19475
19476         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
19477
19478         * inline.adb: Minor reformatting
19479
19480         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
19481
19482         * s-mastop-vms.adb: Remove redundant 'in' keywords
19483
19484         * s-osprim-vms.adb: Remove redundant 'in' keywords
19485
19486         * s-trafor-default.adb: Remove redundant 'in' keywords
19487
19488         * 9drpc.adb: Remove redundant 'in' keywords
19489
19490         * s-osinte-mingw.ads: Minor reformatting
19491
19492         * s-inmaop-posix.adb: Minor reformatting
19493
19494         * a-direio.ads: Remove quotes from Compile_Time_Warning message
19495
19496         * a-exexda.adb: Minor code reorganization
19497
19498         * a-filico.adb: Minor reformatting
19499
19500         * a-finali.adb: Minor reformatting
19501
19502         * a-nudira.ads: Remove quote from Compile_Time_Warning message
19503
19504         * a-numeri.ads: Minor reformatting
19505
19506         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
19507
19508         * exp_pakd.ads: Fix obsolete comment
19509
19510         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
19511         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
19512         Probably not a bug, but certainly neater and more efficient.
19513
19514         * a-tienio.adb: Minor reformatting
19515
19516         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
19517         Avoid assuming low bound of string is 1.
19518
19519         * gnatbind.adb: Change Bindusg to package and rename procedure as
19520         Display, which now ensures that it only outputs usage information once.
19521         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
19522
19523         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
19524         Table'First.
19525
19526         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
19527         warning.
19528         (Match): Add pragma Assert to ensure that Matches'First is zero
19529
19530         * g-regpat.ads (Match): Document that Matches lower bound must be zero
19531
19532         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
19533         documented preconditions (also kills warnings about bad indexes).
19534
19535         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
19536         is 1.
19537         (Build_Import_Library): Ditto;
19538
19539         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
19540
19541         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
19542
19543         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
19544         lower bound of choice table is 1.
19545
19546         * sem_case.ads (Analyze_Choices): Document that lower bound of
19547         Choice_Table is 1.
19548
19549         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
19550         string is 1.
19551
19552         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
19553         and add appropriate Assert pragma to suppress warnings.
19554
19555         * atree.h, atree.ads, atree.adb
19556         Change Elist24 to Elist25
19557         Add definitions of Field28 and Node28
19558         (Traverse_Field): Use new syntactic parent table in sinfo.
19559
19560         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
19561
19562         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
19563
19564         * exp_tss.adb: Put routines in alpha order
19565
19566         * fe.h: Remove redundant declarations.
19567
19568 2006-10-23 Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
19569
19570         * utils.c (builtin_function): Rename to gnat_builtin_function.
19571         Move common code to add_builtin_function.
19572         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
19573         gnat_builtin_function.
19574         * gigi.h (builtin_function): Rename to gnat_builtin_function.
19575         Change the signature.
19576
19577 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
19578
19579         * Makefile.in: Add TEXI2PDF definition.
19580         * Make-lang.in: Add "ada.pdf" target.
19581
19582 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
19583
19584         * decl.c, utils.c: Fix comment typos.
19585         * utils.c: Fix a typo.
19586
19587 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
19588
19589         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
19590         on "pure" Ada subprograms if SJLJ exceptions are used.
19591         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
19592         on the declaration node of JMPBUF_SAVE.
19593         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
19594         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
19595         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
19596
19597 2006-08-20  Laurent Guerby  <laurent@guerby.net>
19598
19599         PR ada/28716
19600         g-socket.adb (Bind_Socket): Call Set_Address.
19601
19602 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
19603
19604         PR ada/15802
19605         * decl.c (same_discriminant_p): New static function.
19606         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
19607         subtype and we have discriminants, fix up the COMPONENT_REFs
19608         for the discriminants to make them reference the corresponding
19609         fields of the parent subtype after it has been built.
19610
19611 2006-09-15  Roger Sayle  <roger@eyesopen.com>
19612
19613         PR ada/18817
19614         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
19615         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
19616
19617 2006-09-13  Olivier Hainque  <hainque@adacore.com>
19618
19619         PR ada/29025
19620         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
19621         of a SAVE_EXPR, just make the operand addressable/not-readonly and
19622         let the common gimplifier code make and propagate a temporary copy.
19623         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
19624         out/in-out actuals and defer setting the addressable/readonly bits
19625         to the gimplifier.
19626
19627 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
19628
19629         PR ada/28591
19630         * decl.c (components_to_record): Defer emitting debug info for the
19631         record type associated with the variant until after we are sure to
19632         actually use it.
19633
19634 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
19635
19636         PR ada/21952
19637         * gigi.h (gnat_internal_attribute_table): Declare.
19638         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
19639         * utils.c (gnat_internal_attribute_table): New global variable.
19640         (builtin_function): Always call decl_attributes on the builtin.
19641         (handle_const_attribute): New static function.
19642         (handle_nothrow_attribute): Likewise.
19643
19644 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
19645
19646         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
19647
19648 2006-06-23  Olivier Hainque  <hainque@adacore.com>
19649
19650         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
19651         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
19652
19653 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
19654             Eric Botcazou  <ebotcazou@adacore.com>
19655
19656         PR ada/18692
19657         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
19658         check-gnat into check-acats.
19659
19660 2006-06-17  Karl Berry  <karl@gnu.org>
19661
19662         * gnat-style.texi (@dircategory): Use "Software development"
19663         instead of "Programming", following the Free Software Directory.
19664
19665 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19666
19667         PR ada/27944
19668         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
19669
19670 2006-06-06  Laurent Guerby  <laurent@guerby.net>
19671
19672         PR ada/27769
19673         mlib-utl.adb: Use Program_Name.
19674
19675 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
19676
19677         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
19678         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
19679         trans.c, utils.c: Fix comment typos.  Follow spelling
19680         conventions.
19681         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
19682         conventions.
19683
19684 2006-05-19  Nicolas Setton  <setton@adacore.com>
19685
19686         * misc.c (gnat_dwarf_name): New function.
19687         (LANG_HOOKS_DWARF_NAME): Define to it.
19688
19689 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
19690
19691         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
19692         (ada/misc.o): Likewise.
19693         (ada/utils.o): Likewise.
19694
19695 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
19696
19697         * Makefile.in: Add Ada support for GNU/kFreeBSD.
19698         * s-osinte-kfreebsd-gnu.ads: New file.
19699
19700 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
19701
19702         * Make-lang.in: Rename docdir to gcc_docdir.
19703
19704 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
19705
19706         * gigi.h (get_ada_base_type): Delete.
19707         * utils2.c (get_ada_base_type): Likewise.
19708         * trans.c (convert_with_check): Operate in the real base type.
19709
19710 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19711
19712         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
19713
19714 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
19715
19716         * utils.c (create_var_decl): Use have_global_bss_p when deciding
19717         whether to make the decl common.
19718
19719 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
19720
19721         * Make-lang.in (Ada): Remove.
19722         (.PHONY): Remove Ada
19723
19724 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
19725
19726         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
19727         aggregate, check the interpretations of the other operand to find one
19728         that may be a boolean array.
19729
19730         (Analyze_Selected_Component): Fix flow-of-control typo in case where
19731         the prefix is a private extension.
19732
19733 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
19734
19735         PR ada/26315
19736         * utils2.c (find_common_type): If both input types are BLKmode and
19737         have the same constant size, keep using the first one.
19738
19739         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
19740
19741         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
19742
19743         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
19744
19745 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
19746
19747         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
19748         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
19749         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb,
19750         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
19751         Abort_Defer/Undefer pairs to avoid the possibility of a task being
19752         aborted while owning a lock.
19753
19754 2006-02-17  Javier Miranda  <miranda@adacore.com>
19755             Robert Dewar  <dewar@adacore.com>
19756
19757         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
19758         through an access to class-wide interface we force the displacement of
19759         the pointer to the allocated object to reference the corresponding
19760         secondary dispatch table.
19761         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
19762         if Long_Shifts are supported on the target, even if 64 bit divides
19763         are not supported (configurable run time mode).
19764         (Expand_N_Type_Conversion): Do validity check if validity checks on
19765         operands are enabled.
19766         (Expand_N_Qualified_Expression): Do validity check if validity checks
19767         on operands are enabled.
19768
19769 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
19770
19771         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
19772         must be materialized when the renamed expression is an explicit
19773         dereference.
19774
19775 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
19776
19777         * freeze.adb (Statically_Discriminated_Components): Return false if
19778         the bounds of the type of the discriminant are not static expressions.
19779
19780         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
19781         the bounds of the discriminant type are not static.
19782
19783 2006-02-17  Robert Dewar  <dewar@adacore.com>
19784
19785         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
19786         then we close To if it is valid.
19787
19788 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
19789
19790         * init.c (facility_resignal_table): new array
19791         (__gnat_default_resignal_p): enhance default predicate to resignal if
19792         VMS condition has one of the predefined facility codes.
19793
19794 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
19795
19796         * Makefile.in: Use VMS64 specialized versions of several units in
19797         Interfaces.C hierarchy to be compatible with HP C default size choices.
19798         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
19799
19800 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
19801
19802         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
19803         instantiation, the corresponding entity is the related_instance of the
19804         wrapper package created for the instance.
19805
19806 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
19807
19808         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
19809         the current instance is nested within another instance in a child unit.
19810
19811 2006-02-17  Javier Miranda  <miranda@adacore.com>
19812             Ed Schonberg  <schonberg@adacore.com>
19813
19814         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
19815         type we cannot inherit the primitive operations; we inherit the
19816         Corresponding_Record_Type (which has the list of primitive operations).
19817         (Check_Anonymous_Access_Types): When creating anonymous access types for
19818         access components, use Rewrite in order to preserve the tree structure,
19819         for ASIS use.
19820         (Analyze_Object_Declaration): For limited types with access
19821         discriminants with defaults initialized by an aggregate, obtain
19822         subtype from aggregate as for other mutable types.
19823         (Derived_Type_Declaration): If the derived type is a limited interface,
19824         set the corresponding flag (Is_Limited_Record is not sufficient).
19825
19826 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
19827
19828         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
19829         to inline a function that returns an unconstrained type, the return
19830         expression must be the first variable declared in the body of the
19831         function.
19832
19833 2006-02-17  Javier Miranda  <miranda@adacore.com>
19834
19835         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
19836         abstract interface type, the static analysis is not enough to know if
19837         the interface is implemented or not by the source tagged type. Hence
19838         we must pass the work to the expander to generate the required code to
19839         evaluate the conversion at run-time.
19840         (Resolve_Equality_Op): Do not apply previous
19841         transformation if expansion is disasbled, to prevent anomalies when
19842         locating global references in a generic unit.
19843
19844 2006-02-17  Vincent Celier  <celier@adacore.com>
19845
19846         * snames.ads, snames.adb: New standard names for new project attributes:
19847         archive_builder, archive_indexer, compiler_pic_option,
19848         config_body_file_name, config_body_file_name_pattern,
19849         config_file_switches, config_file_unique, config_spec_file_name,
19850         config_spec_file_name_pattern, default_builder_switches,
19851         default_global_compiler_switches, default_language,
19852         dependency_file_kind, global_compiler_switches, include_path,
19853         include_path_file, language_kind, linker_executable_option,
19854         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
19855         roots, runtime_project.
19856
19857 2006-02-17  Matthew Heaney  <heaney@adacore.com>
19858
19859         * a-convec.ads, a-convec.adb:
19860         (operator "&"): handle potential overflow for large index types
19861         (Insert): removed Contraint_Error when using large index types
19862         (Insert_Space): removed Constraint_Error for large index types
19863         (Length): moved constraint check from Length to Insert
19864
19865         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
19866         as not null access.
19867         Explicit raise statements now include an exception message.
19868         (operator "&"): handle potential overflow for large index types
19869         (Insert): removed Contraint_Error when using large index types
19870         (Insert_Space): removed Constraint_Error for large index types
19871         (Length): moved constraint check from Length to Insert
19872
19873 2006-02-17  Robert Dewar  <dewar@adacore.com>
19874
19875         * s-wchcnv.adb: Document handling of [ on output (we do not change
19876         this to ["5B"] and the new comments say why not.
19877
19878         * gnat_ugn.texi:
19879         Add note for -gnatVo that this now includes the cases of type
19880         conversions and qualified expressions.
19881         Add comments on handling of brackets encoding for Text_IO
19882
19883 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
19884             Thomas Quinot  <quinot@adacore.com>
19885             Robert Dewar  <dewar@adacore.com>
19886             Javier Miranda  <miranda@adacore.com>
19887
19888         * expander.adb: Fix typo in comment
19889
19890         * exp_pakd.adb: Fix typo
19891         Minor comment reformatting.
19892
19893         * g-dyntab.adb: Minor reformatting
19894
19895         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
19896         aliased subprograms to look for the abstract interface subprogram.
19897
19898 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
19899
19900         * env.c (__gnat_setenv): Use size_t.
19901         (__gnat_unsetenv): Likewise.
19902         (__gnat_clearenv): Likewise.
19903
19904 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
19905
19906         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
19907
19908 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
19909
19910         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
19911         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
19912         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
19913         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
19914         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
19915         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
19916         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
19917         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
19918         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
19919         no longer used.
19920
19921 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
19922
19923         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
19924         protection against race conditions is not needed.
19925         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
19926         fallback handler.
19927         (Set_Specific_Handler): Add mutual exclusive access to the specific
19928         handler.
19929         (Specific_Handler): Add mutual exclusive access for retrieving the
19930         specific handler.
19931
19932         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
19933         back handler.
19934
19935         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
19936         Fall_Back_Handler and Specific_Handler.
19937
19938         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
19939         termination handlers.
19940         Set two different owerflow depending on the maximal stack size.
19941
19942         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
19943         protection against race conditions is not needed when executing the
19944         task termination handler.
19945
19946 2006-02-13  Robert Dewar  <dewar@adacore.com>
19947
19948         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
19949         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
19950         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
19951         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
19952         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
19953         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
19954         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
19955         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
19956         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
19957         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
19958         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
19959         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
19960         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
19961         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
19962         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
19963         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
19964         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
19965         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
19966         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
19967         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
19968         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
19969         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
19970         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
19971         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
19972         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
19973         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
19974         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
19975         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
19976         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
19977         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
19978         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
19979         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
19980         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
19981         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
19982         reformatting.
19983
19984 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
19985
19986         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
19987         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
19988         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
19989         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
19990         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
19991         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
19992         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
19993         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
19994         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
19995
19996 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
19997
19998         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads,
19999         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads,
20000         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
20001         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
20002         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads,
20003         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
20004         replaced by anonymous access type.
20005         (pthread_sigmask): Now take an access sigset_t
20006
20007         * s-osinte-hpux.ads:  Ditto.
20008         (pthread_mutex_t, pthread_cond_t): Update definitions to support
20009         properly 32 and 64 bit ABIs.
20010
20011 2006-02-13  Pascal Obry  <obry@adacore.com>
20012
20013         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb,
20014         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
20015         s-taprop-linux.adb, s-taprop-solaris.adb,
20016         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
20017         adjustement is already done when calling this routine.
20018
20019 2006-02-13  Pascal Obry  <obry@adacore.com>
20020
20021         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
20022         table to take advantage of the 16 priority levels available on Windows
20023         2000 and XP. On NT4 there are only 7 priority levels, this is properly
20024         supported by this new mapping.
20025
20026 2006-02-13  Nicolas Setton  <setton@adacore.com>
20027
20028         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
20029         (get_encoding): New subprogram. Extracts the encodings from an encoded
20030         Ada name.
20031
20032 2006-02-13  Pascal Obry  <obry@adacore.com>
20033             Nicolas Roche  <roche@adacore.com>
20034             Arnaud Charlet  <charlet@adacore.com>
20035
20036         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
20037         support.
20038         (__gnat_try_lock): Add unicode support by using a specific section on
20039         Windows.
20040         (__gnat_get_current_dir): Idem.
20041         (__gnat_open_read): Idem.
20042         (__gnat_open_rw): Idem.
20043         (__gnat_open_create): Idem.
20044         (__gnat_create_output_file): Idem.
20045         (__gnat_open_append): Idem.
20046         (__gnat_open_new): Idem.
20047         (__gnat_file_time_name): Idem.
20048         (__gnat_set_file_time_name): Idem.
20049         (__gnat_stat): Idem.
20050         (win32_no_block_spawn): Idem.
20051         (__gnat_locate_exec_on_path): Idem.
20052         (__gnat_opendir): New routine.
20053         (__gnat_closedir): Idem.
20054         (__gnat_readdir): Add new parameter length (pointer to int). Update
20055         implementation to use it and add specific Win32 code for Unicode
20056         support.
20057         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
20058         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
20059         (convert_addresses): Do not define this dummy routine on VMS.
20060
20061         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
20062         runtime Unicode support will be activated.
20063         (S2WS): String to Wide-String conversion. This version just copy a
20064         string in non Unicode version.
20065         (WS2S): Wide-String to String conversion. This version just copy a
20066         string in non Unicode version.
20067
20068         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
20069         (Open): Now import __gnat_opendir from adaint.c.
20070         (Read): Change the implementation to support unicode characters. It is
20071         not possible to use strlen() on Windows as this version supports only
20072         standard ASCII characters. So the length of the directory entry is now
20073         returned from the imported __gnat_readdir routine.
20074         Update copyright notice.
20075
20076         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
20077         (opendir): Moved to adaint.c.
20078
20079         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
20080         (Get_Directory): Fix wrong indexing.
20081         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
20082         __gnat_getenv from env.c
20083         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
20084         from env.c
20085
20086         * env.h, env.c: New file.
20087
20088         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
20089         adaint.c by __gnat_getenv from env.c
20090
20091         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
20092         adaint.c by __gnat_getenv from env.c
20093
20094         * Make-lang.in: Add env.o in the list of C object needed by gnat1
20095         and gnatbind.
20096         Update dependencies.
20097
20098 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20099             Olivier Hainque  <hainque@adacore.com>
20100             Eric Botcazou  <ebotcazou@adacore.com>
20101
20102         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
20103
20104         * gigi.h (value_factor_p): Add prototype and description, now public.
20105
20106         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
20107         promotion for field with rep clause if the associated size was proven
20108         to be in error.
20109         Expand comments describing attempts to use a packable type.
20110         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
20111         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
20112         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
20113         necessary since these are not different types and pointers may
20114         actually designate any subtype in this hierarchy.
20115         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
20116         discriminants but put them into record only if not Unchecked_Union;
20117         pass flag to components_to_record showing Unchecked_Union.
20118         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
20119         components before variants; don't set TYPE_UNCHECKED_UNION_P.
20120         (components_to_record): New argument UNCHECKED_UNION.
20121         Remove special case code for Unchecked_Union and instead use main code
20122         with small changes.
20123
20124         PR ada/26096
20125         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
20126         variable with the expression being built, only its inner field.
20127
20128         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
20129         emit_sequence_entry_statements.
20130         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
20131         (establish_gnat_vms_condition_handler): Move before
20132         Subprogram_Body_to_gnu.
20133         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
20134         for a subprogram if it has a foreign convention or is exported.
20135         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
20136         substituted for a CONST_DECL.
20137         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
20138         Etype to assoc_to_constructor.
20139         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
20140         discriminants of Unchecked_Union.
20141         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
20142         don't need cluttering preprocessor directives.
20143         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
20144         condition handler as current in the compiled function.
20145         (body_with_handlers_p): New function. Tell whether a given sequence of
20146         statements node is attached to a package or subprogram body and involves
20147         exception handlers possibly nested within inner block statements.
20148         (emit_sequence_entry_statements): New function, to emit special
20149         statements on entry of sequences when necessary. Establish GNAT
20150         condition handler in the proper cases for VMS.
20151         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
20152         emit_sequence_entry_statements.
20153
20154         * utils2.c (find_common_type): If both input types are BLKmode and
20155         have a constant size, use the smaller one.
20156         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
20157         the same.
20158
20159         * utils.c (value_factor_p): Make public, to allow uses from other gigi
20160         units.
20161         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
20162         (convert, case UNION_TYPE): Remove special treatment for unchecked
20163         unions.
20164
20165         PR ada/18659
20166         (update_pointer_to): Update variants of pointer types to unconstrained
20167         arrays by attaching the list of fields of the main variant.
20168
20169 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
20170             Robert Dewar  <dewar@adacore.com>
20171
20172         * a-exexpr.adb, a-exexpr-gcc.adb
20173         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
20174         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
20175         Remove code unused for exception propagation for the compiler itself
20176         from a-except.adb and update to still share separate packages.
20177
20178         * a-except.ads, a-except.adb: Ditto.
20179         Add comments that this version is now used only by the compiler and
20180         other basic tools. The full version that includes the Ada 2005 stuff
20181         is in separate files a-except-2005.ads/adb. The reason is that we do
20182         not want to cause bootstrap problems with compilers not recognizing
20183         Wide_Wide_String.
20184         Add exception reason code PE_Implicit_Return
20185         Add new exception reason code (Null Exception_Id)
20186
20187         * a-except-2005.adb, a-except-2005.ads: New files.
20188
20189         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
20190
20191         * s-wchcon.adb: New file.
20192
20193         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
20194         (traceback.o deps): Likewise.
20195         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
20196         Activate build of GMEM instrumentation library on VMS targets.
20197         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
20198         Use a-except-2005.ads/adb for all run-time library builds unless
20199         specified otherwise.
20200         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
20201         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
20202         Use s-parame.adb on all native platforms.
20203         Use s-parame-vxworks.adb on all vxworks platforms.
20204         Add env.c env.h in LIBGNAT_SRCS
20205         Add env.o in LIBGNAT_OBJS
20206         (GNATMAKE_OBJS): Remove ctrl_c.o object.
20207         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
20208         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
20209         supports VxWorks 6 RTPs.
20210         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
20211         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
20212
20213         * types.h, types.ads (Terminate_Program): New exception
20214         Add comment on modifying multiple versions of a-except.adb when the
20215         table of exception reasons is modified.
20216         Add exception reason code PE_Implicit_Return
20217         Add new exception reason code (Null Exception_Id)
20218
20219         * clean.adb (Initialize): Get the target parameters before checking
20220         if target is OpenVMS. Move the OpenVMS specific code here from package
20221         body elaboration code.
20222
20223 2006-02-13  Thomas Quinot  <quinot@adacore.com>
20224             Vincent Celier  <celier@adacore.com>
20225             Robert Dewar  <dewar@adacore.com>
20226
20227         * ali-util.adb (Get_File_Checksum): Update to account for change in
20228         profile of Initialize_Scanner.
20229
20230         * gprep.adb (Gnatprep): Update to account for change in profile of
20231         Initialize_Scanner.
20232         (Process_One_File): Same.
20233
20234         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
20235         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
20236         that behaviour using the new Unit information recorded in the source
20237         files table, rather than going through all units every time.
20238         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
20239         (Get_Source_Unit): Same.
20240
20241         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
20242         change in profile of Initialize_Scanner.
20243         (Prepare_To_Preprocess): Same.
20244
20245         * lib.ads: Fix typo in comment (templace -> template).
20246
20247         * prj-part.adb (Parse_Single_Project): Update to account for change in
20248         profile of Initialize_Scanner.
20249
20250         * scn.adb (Initialize_Scanner): Account for change in profile of
20251         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
20252         Also record the association of the given Source_File_Index to the
20253         corresponding Unit_Number_Type.
20254
20255         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
20256         procedure.
20257         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
20258         Remove Unit formal for generic scanner: this formal
20259         is only relevant to Scn (the scanner instance used to parse Ada source
20260         files), not to other instances. Update comment accordingly.
20261         (Scan): Use new function Snames.Is_Keyword_Name.
20262
20263         * sinfo-cn.adb: Fix typo in comment.
20264
20265         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
20266         Unit.
20267
20268         * sinput.ads (Source_File_Record): New component Unit, used to capture
20269         the unit identifier (if any) associated to a source file.
20270
20271         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
20272         Unit in Source_File_Record.
20273
20274         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
20275         in profile of Initialize_Scanner.
20276
20277         * scans.adb (Initialize_Ada_Keywords): New procedure
20278
20279         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
20280         Ada keywords in the Namet table, without the need to call
20281         Initialize_Scanner.
20282
20283         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
20284         (Is_Keyword_Name): New function
20285
20286         * snames.ads: Add subtype Configuration_Pragma_Names
20287         Add pragma Ada_2005 (synonym for Ada_05)
20288         (Is_Keyword_Name): New function
20289
20290         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
20291
20292 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
20293
20294         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
20295         index.
20296
20297         * a-stwima.adb (To_Set): Add extra check when N = 0.
20298
20299         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
20300
20301 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
20302
20303         * s-parame-mingw.adb, s-parame-linux.adb,
20304         s-parame-solaris.adb: Removed, replaced by s-parame.adb
20305
20306         * s-parame-vxworks.ads: Fix typo.
20307
20308         * s-parame-vxworks.adb: New file.
20309
20310         * s-parame.adb: Version now used by all native platforms.
20311         (Default_Stack_Size): Use 2 megs for default stack size and use
20312         __gl_default_stack_size when available.
20313         (Minimum_Stack_Size): Use 12K.
20314
20315         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
20316         (Create_Task): Refine implementation taking advantage of the XP stack
20317         size support. On XP, we now create the thread using the flag
20318         STACK_SIZE_PARAM_IS_A_RESERVATION.
20319
20320         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
20321
20322         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
20323         XP and 0 on older Windows versions.
20324
20325         * interfac-vms.ads: Removed, no longer used.
20326
20327 2006-02-13  Matthew Heaney  <heaney@adacore.com>
20328
20329         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb,
20330         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb,
20331         a-cohase.adb: All explicit raise statements now include an exception
20332         message.
20333
20334         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
20335         (Update_Element_Preserving_Key): renamed op to just Update_Element.
20336         Explicit raise statements now include an exception message
20337
20338         * a-cihase.ads, a-cohase.ads: Removed comment.
20339
20340         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
20341         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
20342         a-szbzha.adb, a-szfzha.ads: New files.
20343
20344 2006-02-13  Matthew Heaney  <heaney@adacore.com>
20345
20346         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
20347         quicksort.
20348
20349 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
20350
20351         * lang.opt: Wvariadic-macros: New option.
20352         Wold-style-definition: Likewise.
20353         Wmissing-format-attribute: Likewise.
20354
20355         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
20356         -Wold-style-definition and -Wmissing-format-attribute.
20357
20358 2006-02-13  Robert Dewar  <dewar@adacore.com>
20359
20360         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
20361
20362         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
20363
20364 2006-02-13  Nicolas Roche  <roche@adacore.com>
20365
20366         * a-envvar.adb, a-envvar.ads: New files.
20367
20368 2006-02-13  Douglas Rupp  <rupp@adacore.com>
20369
20370         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
20371
20372         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
20373
20374 2006-02-13  Pat Rogers  <rogers@adacore.com>
20375
20376         * a-rttiev.adb, a-rttiev.ads: New files.
20377
20378 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
20379
20380         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
20381         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
20382
20383         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
20384
20385 2006-02-13  Robert Dewar  <dewar@adacore.com>
20386
20387         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb,
20388         sem_case.adb: Minor code reorganization (not Present should be No)
20389
20390 2006-02-13  Geert Bosch  <bosch@adacore.com>
20391             Gary Dismukes  <dismukes@adacore.com>
20392
20393         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
20394         0, since the lower bound of the actual string may be greater than one.
20395
20396         PR ada/20753
20397         * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
20398         layout is requested.
20399
20400 2006-02-13  Vincent Celier  <celier@adacore.com>
20401
20402         * back_end.adb (Scan_Compiler_Arguments): Check if
20403         Search_Directory_Present is True and, if it is, add the argument in
20404         the source search directory path.
20405
20406         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
20407         Search_Directory_Present to True.
20408
20409 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
20410
20411         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
20412         volatile, to tell the compiler to preserve this variable at any level
20413         of optimization.
20414         (Gen_Versions_Ada): Temporarily work around codegen bug.
20415
20416 2006-02-13  Vincent Celier  <celier@adacore.com>
20417
20418         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
20419         gcc to link with option -shared-libgcc.
20420         (Gnatlink): Remove duplicate switches -shared-libgcc
20421
20422 2006-02-13  Robert Dewar  <dewar@adacore.com>
20423
20424         * gnatvsn.ads (Current_Year): New constant, used to easily update
20425         copyright on all GNAT tools.
20426
20427         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
20428         copyright notice.
20429
20430 2006-02-13  Robert Dewar  <dewar@adacore.com>
20431
20432         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
20433         after hyphen (small aesthetic change useful for a range of numbers
20434         using ^-^.
20435         Suppress range checks for a couple of assignments which otherwise
20436         cause validity checks with validity checking turned on.
20437
20438         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
20439         Improvement in error message for object.
20440         (Rep_Item_Too_Late): Remove '!' in warning message.
20441
20442 2006-02-13  Robert Dewar  <dewar@adacore.com>
20443             Eric Botcazou  <ebotcazou@adacore.com>
20444
20445         * err_vars.ads: Suppress range checks for a couple of assignments
20446         which otherwise cause validity checks with validity checking turned on.
20447         Update comments.
20448
20449         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
20450         Make message unconditional if it is a warning.
20451         (Error_Msg_NEL): Always output warning messages.
20452         Suppress range checks for a couple of assignments which otherwise
20453         cause validity checks with validity checking turned on.
20454
20455         * errout.ads (Message Insertion Characters): Document that '!' is
20456         implied by '?' in error messages.
20457
20458         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
20459         (Gnat1drv): Use a goto to end of main subprogram instead of
20460         Exit_Program (E_Success) so that finalization can occur normally.
20461
20462 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
20463
20464         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
20465         wrapped around.
20466
20467 2006-02-13  Vincent Celier  <celier@adacore.com>
20468
20469         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
20470         Unchecked_Conversion functions.
20471         (Modification_Time): Use direct conversion of OS_Time to Calendar time
20472         when OpenVMS returns False.
20473
20474         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
20475         a-dirval.adb (OpenVMS): New Boolean function
20476
20477 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20478             Thomas Quinot  <quinot@adacore.com>
20479
20480         * checks.adb (Build_Discriminant_Checks): If the expression being
20481         checks is an aggregate retrieve the values of its discriminants to
20482         generate the check, rather than creating a temporary and a reference
20483         to it.
20484         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
20485         (Install_Null_Excluding_Check): Ditto
20486         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
20487         not for the renamed object, so that the actual itype is attached in the
20488         proper context.
20489
20490 2006-02-13  Robert Dewar  <dewar@adacore.com>
20491             Vincent Celier  <celier@adacore.com>
20492
20493         * debug.adb: Eliminate numeric switches for binder/gnatmake
20494
20495         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
20496         switches for the compiler.
20497         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
20498         (Scan_Make_Switches): When failing with an illegal switch, output an
20499         error message with the full switch.
20500         Eliminate numeric switches for binder/gnatmake
20501
20502         * switch.ads, switch.adb (Bad_Switch): New procedure
20503
20504         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
20505         Remove 0-9 as debug flag character possibilities
20506         -d is now controlling the primary stack size when its value is a
20507         positive. Also add checks against invalid values, and support for kb,
20508         mb. Ditto for -D switch.
20509
20510 2006-02-13  Robert Dewar  <dewar@adacore.com>
20511             Serguei Rybin  <rybin@adacore.com>
20512
20513         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
20514         save/restore routines.
20515         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20516         were not always properly handled previously.
20517         Since we are changing the tree format anyway, also get rid of the
20518         junk obsolete Immediate_Errors flag.
20519         (Tree_Read): Change the way of reading Tree_Version_String - now we
20520         read the version string from the tree even if its length is not the
20521         same as the length of the version string computed from Gnatvsn.
20522         (Search_Directory_Present): New Boolean flag for the compiler.
20523         Define Tree_Version_String as a dynamic string.
20524         (Default_Stack_Size): new variable, used to handle switch -d.
20525
20526         * par-prag.adb:
20527         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
20528         only for main unit.
20529         Add pragma Ada_2005 (synonym for Ada_05)
20530         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20531         were not always properly handled previously.
20532
20533         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
20534         explicit Ada_95 to Ada_2005.
20535
20536 2006-02-13  Javier Miranda  <miranda@adacore.com>
20537             Robert Dewar  <dewar@adacore.com>
20538             Ed Schonberg  <schonberg@adacore.com>
20539
20540         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
20541         against errors in the source program: a private types for which the
20542         corresponding full type declaration is missing and pragma CPP_Virtual
20543         is used.
20544         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
20545         (Is_Known_Null): New flag
20546         (Has_Pragma_Pure): New flag
20547         (No_Return): Present in all entities, set only for procedures
20548         (Is_Limited_Type): A type whose ancestor is an interface is limited if
20549         explicitly declared limited.
20550         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
20551         entities. Only used for component marked Is_Tag. If present it stores
20552         the Offset_To_Top function used to provide this value in tagged types
20553         whose ancestor has discriminants.
20554
20555         * exp_ch2.adb: Update status of new Is_Known_Null flag
20556
20557         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
20558
20559         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
20560         the categorization sense if Is_Pure was set by pragma Pure_Function.
20561
20562 2006-02-13  Quentin Ochem  <ochem@adacore.com>
20563             Olivier Hainque  <hainque@adacore.com>
20564
20565         * bindusg.adb: Updated documentation for -d and -D switches.
20566
20567         * raise.h (__gnat_set_globals): added new parameter for
20568         Default_Stack_Size.
20569
20570         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
20571         (__gnat_handle_vms_condition): Adjust context before raise.
20572         (__gnat_install_handler): Restore the global vector setup for GCC
20573         versions before 3.4, as the frame based circtuitry is not available
20574         in this case.
20575         (__gnat_set_globals): added a parameter default_stack_size
20576         (__gl_default_stack_size): new variable.
20577
20578 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20579
20580         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
20581         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
20582         does not exist in the Ada RM.
20583         (Compatible_Int_Bounds): Determine whether two integer range bounds
20584         are of equal length and have the same start and end values.
20585         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
20586         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
20587         aggregate when it is part of an object declaration.
20588         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
20589         constrains discriminants of its parent, add explicitly the discriminant
20590         constraints of the ancestor by retrieving them from the
20591         stored_constraint of the parent.
20592
20593 2006-02-13  Robert Dewar  <dewar@adacore.com>
20594
20595         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
20596         attribute Mechanism_Code is applied to renamed subprogram, modify
20597         prefix to point to base subprogram.
20598         Max/Min attributes now violate Restriction No_Implicit_Conditionals
20599
20600         * sinfo.ads: Document that Mechanism_Code cannot be applied to
20601         renamed subprograms so that the front-end must replace the prefix
20602         appropriately.
20603
20604 2006-02-13  Javier Miranda  <miranda@adacore.com>
20605             Gary Dismukes  <dismukes@adacore.com>
20606
20607         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
20608         availability of RE_Interface_Tag.
20609         (Build_Initialization_Call): Fix wrong access to the discriminant value.
20610         (Freeze_Record_Type): Do not generate the tables associated with
20611         timed and conditional dispatching calls through synchronized
20612         interfaces if compiling under No_Dispatching_Calls restriction.
20613         When compiling for Ada 2005, for a nonabstract
20614         type with a null extension, call Make_Controlling_Function_Wrappers
20615         and insert the wrapper function declarations and bodies (the latter
20616         being appended as freeze actions).
20617         (Predefined_Primitive_Bodies): Do not generate the bodies of the
20618         predefined primitives associated with timed and conditional
20619         dispatching calls through synchronized interfaces if we are
20620         compiling under No_Dispatching_Calls.
20621         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
20622         service is available before generating a call.
20623         (Make_Controlling_Function_Wrappers): New procedure.
20624         (Expand_N_Full_Type_Declaration): Create a class-wide master for
20625         access-to-limited-interfaces because they can be used to reference
20626         tasks that implement such limited interface.
20627         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
20628         procedure spec and body of the Offset_To_Top function that is generated
20629         when the parent of a type with discriminants has secondary dispatch
20630         tables.
20631         (Init_Secondary_Tags): Handle the case in which the parent of the type
20632         containing secondary dispatch tables has discriminants to generate the
20633         correct arguments to call Set_Offset_To_Top.
20634         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
20635
20636         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
20637         Add Wide_[Wide_]Expanded_Name.
20638         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
20639         the same functionality of Get_Prim_Op_Address but applied to predefined
20640         primitive operations because the pointers to the predefined primitives
20641         are now saved in a separate table.
20642         (Parent_Size): Modified to get access to the separate table of primitive
20643         operations or the parent type.
20644         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
20645         functionality of Set_Prim_Op_Address but applied to predefined primitive
20646         operations.
20647         (Set_Signature): New subprogram used to store the signature of a DT.
20648         (Displace): If the Offset_To_Top value is not static then call the
20649         function generated by the expander to get such value; otherwise use
20650         the value stored in the table of interfaces.
20651         (Offset_To_Top): The type of the actual has been changed to Address to
20652         give the correct support to tagged types with discriminants. In this
20653         case this value is stored just immediately after the tag field.
20654         (Set_Offset_To_Top): Two new formals have been added to indicate if the
20655         offset_to_top value is static and hence pass this value to the run-time
20656         to store it in the table of interfaces, or else if this value is dynamic
20657         and then pass to the run-time the address of a function that is
20658         generated by the expander to provide this value for each object of the
20659         type.
20660
20661         * rtsfind.ads (Default_Prin_Op_Count): Removed.
20662         (Default_Prim_Op_Count): New entity
20663         (Get_Predefined_Prim_Op_Address): New entity
20664         (Set_Predefined_Prim_Op_Address): New entity
20665         (RE_Set_Signature): New entity
20666
20667 2006-02-13  Thomas Quinot  <quinot@adacore.com>
20668             Ed Schonberg  <schonberg@adacore.com>
20669
20670         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
20671         Make_Adjust_Call done for a newly-allocated object.
20672
20673         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
20674         in a subprogram are wrapped in a cleanup block, indicate that the
20675         subprogram contains an inner block with an exception handler.
20676         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
20677         Adjust call is for a newly-allocated object. In that case we must not
20678         assume that the finalization list chain pointers are correct (since they
20679         come from a bit-for-bit copy of the original object's pointers) so if
20680         the attach level would otherwise be zero (no change), we set it to 4
20681         instead to cause the pointers to be reset to null.
20682
20683         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
20684         reset chain pointers to null.
20685
20686 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20687
20688         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
20689         string, and the context requires a loop for the assignment (e.g.
20690         because the left-hand side is packed), generate a unique name for the
20691         temporary that holds the string, to prevent spurious name clashes.
20692
20693 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20694             Javier Miranda  <miranda@adacore.com>
20695             Robert Dewar  <dewar@adacore.com>
20696             Gary Dismukes  <dismukes@adacore.com>
20697
20698         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
20699         return unconstrained arrays.
20700         Update comments.
20701         (Expand_Call):  An indirect call through an access parameter of a
20702         protected operation is not a protected call.
20703         Add circuit to raise CE in Ada 2005 mode following call
20704         to Raise_Exception.
20705         (Register_DT_Entry): Do nothing if
20706         the run-time does not give support to abstract interfaces.
20707         (Freeze_Subprogram): In case of dispatching operations, do not generate
20708         code to register the operation in the dispatch table if the source
20709         is compiled with No_Dispatching_Calls.
20710         (Register_Predefined_DT_Entry): Generate code that calls the new
20711         run-time subprogram Set_Predefined_Prim_Op_Address instead of
20712         Set_Prim_Op_Address.
20713
20714         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
20715         on array assignments if the right-hand side is a function call that has
20716         been inlined. Check is performed on the assignment in the block.
20717         (Process_Bounds): If bounds and range are overloaded, apply preference
20718         rule for root operations to disambiguate, and diagnose true ambiguity.
20719         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
20720         a tag-indeterminate right-hand side even when Expander_Active is True.
20721         Needed to ensure that dispatching calls to T'Input are allowed and
20722         get the tag of the target class-wide object.
20723
20724         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
20725         an inherited primitive operation that already overrides several
20726         abstract interface primitives. For transitivity, the new entity must
20727         also override all the abstract interface primitives covered by the
20728         inherited overriden primitive.
20729         Emit warning if new entity differs from homograph in same scope only in
20730         that one has an access parameter and the other one has a parameter of
20731         a general access type with the same designated type, at the same
20732         position in the signature.
20733         (Make_Inequality_Operator): Use source locations of parameters and
20734         subtype marks from corresponding equality operator when creating the
20735         tree structure for the implicit declaration of "/=". This does not
20736         change anything in behaviour except that the decoration of the
20737         components of the subtree created for "/=" allows ASIS to get the
20738         string images of the corresponding identifiers.
20739         (Analyze_Return_Statement): Remove '!' in warning message.
20740         (Check_Statement_Sequence): Likewise.
20741         (Analyze_Subprogram_Body): For an access parameter whose designated type
20742         is an incomplete type imported through a limited_with clause, use the
20743         type of the corresponding formal in the body.
20744         (Check_Returns): Implicit return in No_Return procedure now raises
20745         Program_Error with a compile time warning, instead of beging illegal.
20746         (Has_Single_Return):  Function returning unconstrained type cannot be
20747         inlined if expression in unique return statement is not an identifier.
20748         (Build_Body_To_Inline): It is possible to inline a function call that
20749         returns an unconstrained type if all return statements in the function
20750         return the same local variable. Subsidiary procedure Has_Single_Return
20751         verifies that the body conforms to this restriction.
20752
20753         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
20754         same type, and  one of them is of an anonymous access type, convert
20755         the other operand to it, so that this is a valid binary operation for
20756         gigi.
20757         (Resolve_Type_Conversion): Handle subtypes of protected types and
20758         task types when accessing to the corresponding record type.
20759         (Resolve_Allocator): Add '\' in 2-line warning message.
20760         Remove '!' in warning message.
20761         (Resolve_Call): Add '\' in 2-line warning message.
20762         (Valid_Conversion): Likewise.
20763         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
20764         resulting type may be an access type with an implicit dereference.
20765         Obtain the proper component from the designated type.
20766         (Make_Call_Into_Operator): Handle properly a call to predefined equality
20767         given by an expanded name with prefix Standard, when the operands are
20768         of an anonymous access type.
20769         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
20770         Explicit_Dereference and Resolve_Selected_Component, to verify that the
20771         prefix of the expression is not of an incomplete type. Allows full
20772         diagnoses of all semantic errors.
20773         (Resolve_Actuals): If the actual is an allocator whose directly
20774         designated type is a class-wide interface we build an anonymous
20775         access type to use it as the type of the allocator. Later, when
20776         the subprogram call is expanded, if the interface has a secondary
20777         dispatch table the expander will add a type conversion to force
20778         the displacement of the pointer.
20779         (Resolve_Call): If a function that returns an unconstrained type is
20780         marked Inlined_Always and inlined, the call will be inlined and does
20781         not require the creation of a transient scope.
20782         (Check_Direct_Boolean_Op): Removed
20783         (Resolve_Comparison_Op): Remove call to above
20784         (Resolve_Equality_Op): Remove call to above
20785         (Resolve_Logical_Op): Inline above, since this is only call.
20786         (Valid_Conversion): Handle properly conversions between arrays of
20787         convertible anonymous access types.
20788
20789         PR ada/25885
20790         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
20791         the literal in an unchecked conversion, because GCC 4.x needs a static
20792         value for a string bound.
20793
20794 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20795             Hristian Kirtchev  <kirtchev@adacore.com>
20796
20797         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
20798         components of the corresponding record, take into account component
20799         definitions that are access definitions.
20800         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
20801         procedure is not considered a dispatching call and will be expanded
20802         properly.
20803
20804 2006-02-13  Javier Miranda  <miranda@adacore.com>
20805
20806         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
20807         controlling argument of the dispatching call is an abstract interface
20808         class-wide type then we use it directly.
20809         Check No_Dispatching_Calls restriction.
20810         (Default_Prim_Op_Position): Remove the code that looks for the last
20811         entity in the list of aliased subprograms. This code was wrong in
20812         case of renamings.
20813         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
20814         when the source is compiled with the No_Dispatching_Calls restriction.
20815         (Init_Predefined_Interface_Primitives): No need to inherit primitives
20816         if we are compiling with restriction No_Dispatching_Calls.
20817         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
20818         subprograms if we are compiling under No_Dispatching_Calls restriction.
20819         (Make_DT): Generate a dispatch table with a single dummy entry if
20820         we are compiling with the No_Dispatching_Calls restriction. In
20821         addition, in this case we don't generate code that calls to the
20822         following run-time subprograms: Set_Type_Kind, Inherit_DT.
20823         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
20824         of this subprogram if compiling with the No_Dispatching_Calls
20825         restriction.
20826         (Expand_Type_Conversion): Instead of using the actual parameter,
20827         the argument passed as parameter to the conversion function was
20828         erroneously referenced by the expander.
20829         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
20830         Set_Predefined_Primitive_Op_Address and Set_Signature.
20831         (Expand_Dispatching_Call): Generate call to
20832         Get_Predefined_Prim_Op_Address for predefined primitives.
20833         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
20834         predefined primitives.
20835         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
20836         primitives we reserve one dummy entry to ensure that the tag does not
20837         point to some memory that is associated with some other object. In
20838         addition, remove all the old code that generated the assignments
20839         associated with the signature of the dispatch table and replace them
20840         by a call to the new subprogram Set_Signature.
20841         (Set_All_DT_Position): Change the algorithm because now we have a
20842         separate dispatch table associated with predefined primitive operations.
20843         (Expand_Interface_Conversion): In case of non-static offset_to_top
20844         add explicit dereference to get access to the object after the call
20845         to displace the pointer to the object.
20846         (Expand_Interface_Thunk): Modify the generation of the actual used
20847         in the calls to the run-time function Offset_To_Top to fulfil its
20848         new interface.
20849         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
20850
20851 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20852
20853         * exp_dist.adb (Copy_Specification): For access parameters, copy
20854         Null_Exclusion flag, which will have been set for stream subprograms
20855         in Ada2005 mode.
20856
20857 2006-02-13  Pascal Obry  <obry@adacore.com>
20858
20859         * expect.c (__gnat_expect_portable_execvp): New implementation. The
20860         previous implementation was using the C runtime spawnve routine but
20861         the corresponding wait was using directly the Win32 API. This was
20862         causing some times a lock when waiting for an event using
20863         WaitForSingleObject in __gnat_waitpid. This new implementation uses
20864         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
20865         API fixes this problem.
20866
20867 2006-02-13  Robert Dewar  <dewar@adacore.com>
20868
20869         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
20870         call.
20871
20872 2006-02-13  Thomas Quinot  <quinot@adacore.com>
20873
20874         * exp_pakd.ads: Fix typos in comments.
20875
20876         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
20877         array reference that is an explicit dereference, mark the converted
20878         (packed) array reference as analyzed to prevent a forthcoming
20879         reanalysis from resetting its type to the original (non-packed) array
20880         type.
20881
20882 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20883             Javier Miranda  <miranda@adacore.com>
20884             Eric Botcazou  <ebotcazou@adacore.com>
20885
20886         * exp_util.ads, exp_util.adb (Find_Prim_Op,
20887         Is_Predefined_Primitive_Operation): When
20888         searching for the predefined equality operator, verify that operands
20889         have the same type.
20890         (Is_Predefined_Dispatching_Operation): Remove the code that looks
20891         for the last entity in the list of aliased subprograms. This code
20892         was wrong in case of renamings.
20893         (Set_Renamed_Subprogram): New procedure
20894         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
20895         Exp_Type constant computed when entering this subprogram.
20896         (Known_Null): New function
20897         (OK_To_Do_Constant_Replacement): New function
20898         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
20899         (Side_Effect_Free): An attribute reference 'Input is not free of
20900         side effect, unlike other attributes that are functions. (from code
20901         reading).
20902         (Remove_Side_Effects): Expressions that involve packed arrays or records
20903         are copied at the point of reference, and therefore must be marked as
20904         renamings of objects.
20905         (Is_Predefined_Dispatching_Operation): Return false if the operation is
20906         not a dispatching operation.
20907
20908         PR ada/18819
20909         (Remove_Side_Effects): Lift enclosing type conversion nodes for
20910         elementary types in all cases.
20911
20912 2006-02-13  Javier Miranda  <miranda@adacore.com>
20913
20914         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
20915         task types when accessing to the corresponding record type.
20916         Remove '!' in warning message.
20917
20918 2006-02-13  Olivier Hainque  <hainque@adacore.com>
20919
20920         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
20921         to avoid useless and space inefficient overalignments on targets where
20922         Max_Alignment is larger than 16.
20923
20924 2006-02-13  Pascal Obry  <obry@adacore.com>
20925
20926         * g-catiio.adb (Sec_Number): New type used to compute the number of
20927         seconds since 1-1-1970.
20928         (Image) [Natural]: The parameter was an Integer, as we can't deal with
20929         negative numbers (years, months...) it is better to have a Natural here.
20930         Code clean-up.
20931         (Image) [Number]: Change parameter from Long_Integer to Number.
20932         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
20933         overflow for dates past year 2038.
20934
20935 2006-02-13  Matthew Heaney  <heaney@adacore.com>
20936
20937         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
20938         Constraint_Error.
20939
20940 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
20941
20942         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
20943         native platforms.
20944         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
20945         finalization can occur normally.
20946
20947 2006-02-13  Vincent Celier  <celier@adacore.com>
20948
20949         * gnatcmd.adb (Rules_Switches): New table
20950         (Add_To_Rules_Switches): New procedure
20951         (GNATCmd): For command CHECK, put all options following "-rules" in the
20952         Rules_Switches table. Append these -rules switches after the -cargs
20953         switches.
20954
20955 2006-02-13  Robert Dewar  <dewar@adacore.com>
20956
20957         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
20958         These two cases were generating incorrect output, and if this unit
20959         was built with checks on, generated a discriminant mismatch constraint
20960         error.
20961
20962 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20963             Robert Dewar  <dewar@adacore.com>
20964
20965         * lib-xref.adb (Get_Type_Reference): For a private type whose full
20966         view is an array type, indicate the component type as well, for
20967         navigation purposes.
20968         (Generate_Reference): Don't consider array ref on LHS to be a case
20969         of violating pragma Unreferenced.
20970         Do not give Ada 2005 warning except on real reference.
20971
20972 2006-02-13  Vincent Celier  <celier@adacore.com>
20973
20974         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
20975         main source, add switch -mdebug-main=_ada_ so that the executable can
20976         be debugged by the standard VMS debugger.
20977         (Gnatmake): Set No_Main_Subprogram to True when there is no main
20978         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
20979         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
20980         of the last source, as the binding and linking phases are never
20981         performed.
20982         Set all executable obsolete when rebuilding a library.
20983
20984         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
20985         options.
20986
20987 2006-02-13  Javier Miranda  <miranda@adacore.com>
20988
20989         PR ada/23973
20990         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
20991         code to improve the error message reported when the program has
20992         declarations of abstract interface types and it is not compiled with
20993         the -gnat05 switch.
20994         (P_Access_Definition): Reorganize the code to improve the error
20995         message reported when the new Ada 2005 syntax for anonymous
20996         access types is used and the program is not compiled with the
20997         -gnat05 switch.
20998
20999 2006-02-13  Robert Dewar  <dewar@adacore.com>
21000
21001         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
21002         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
21003         (MODE_IN)
21004
21005 2006-02-13  Javier Miranda  <miranda@adacore.com>
21006
21007         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
21008         against source containing syntax errors.
21009
21010 2006-02-13  Vincent Celier  <celier@adacore.com>
21011
21012         * prj.adb (Reset): Initialize the first element of table Namings with
21013         the standard naming data.
21014
21015 2006-02-13  Vincent Celier  <celier@adacore.com>
21016
21017         * prj.ads (Error_Warning): New enumeration type
21018
21019         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
21020         unknown, use the location of the project to report the error.
21021         (When_No_Sources): New global variable
21022         (Report_No_Ada_Sources): New procedure
21023         (Check): New parameter When_No_Sources. Set value of global variable
21024         When_No_Sources,
21025         (Find_Sources): Call Report_No_Ada_Sources when appropriate
21026         (Get_Sources_From_File): Ditto
21027         (Warn_If_Not_Sources): Better warning messages indicating the unit name
21028         and the file name.
21029
21030         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
21031         Call Prj.Proc.Process with parameter When_No_Sources.
21032
21033         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
21034         Call Recursive_Check with parameter When_No_Sources.
21035         (Recursive_Check): New parameter When_No_Sources. Call itself and
21036         Prj.Nmsc.Check with parameter When_No_Sources.
21037         (Process): New parameter When_No_Sources. Call Check with parameter
21038         When_No_Sources.
21039         (Copy_Package_Declarations): New procedure to copy renamed parameters
21040         and setting the location of the declared attributes to the location
21041         of the renamed package.
21042         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
21043         packages.
21044
21045 2006-02-13  Vincent Celier  <celier@adacore.com>
21046
21047         * prj-makr.adb (Make): Preserve the comments from the original project
21048         file.
21049         When removing nodes (attributes Source_Dirs, Source_Files,
21050         Source_List_File and package Naming), save the comments and attach the
21051         saved comments to the newly created nodes.
21052         Do not add a with clause for the naming package if one already exists.
21053
21054 2006-02-13  Javier Miranda  <miranda@adacore.com>
21055             Gary Dismukes  <dismukes@adacore.com>
21056             Robert Dewar  <dewar@adacore.com>
21057
21058         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
21059
21060         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
21061         aliased entities to look for the overriden abstract interface
21062         subprogram.
21063         (Is_Interface_Subprogram): Complete documentation.
21064         (Check_Dispatching_Operation): Do not generate code to register the
21065         operation in the dispatch table if the source is compiled with
21066         restriction No_Dispatching_Calls.
21067         (Override_Dispatching_Operation): Check for illegal attempt to override
21068         No_Return procedure with procedure that is not No_Return
21069         (Check_Dispatching_Call): Suppress the check for an abstract operation
21070         when the original node of an actual is a tag-indeterminate attribute
21071         call, since the attribute, which must be 'Input, can never be abstract.
21072         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
21073         call to the Input attribute (even when rewritten).
21074         (Propagate_Tag): Augment comment to indicate the possibility of a call
21075         to an Input attribute.
21076
21077         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
21078         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
21079
21080         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
21081         No_Wide_Characters is no longer partition-wide
21082         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
21083         rather than GNAT
21084
21085 2006-02-13  Douglas Rupp  <rupp@adacore.com>
21086
21087         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
21088
21089 2006-02-13  Javier Miranda  <miranda@adacore.com>
21090
21091         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
21092         handles default-initialized components to keep separate the management
21093         of this feature but also avoid the unrequired resolution and
21094         expansion of components that do not have partially initialized
21095         values.
21096         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
21097         (Check_Bounds): Likewise.
21098         (Check_Length): Likewise.
21099
21100 2006-02-13  Javier Miranda  <miranda@adacore.com>
21101             Ed Schonberg  <schonberg@adacore.com>
21102
21103         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
21104         abstract interface type call analyze_and_resolve to expand the type
21105         conversion into the corresponding displacement of the
21106         reference to the base of the object.
21107         (Eval_Attribute, case Width): For systems where IEEE extended precision
21108         is supported, the maximum exponent occupies 4 decimal digits.
21109         (Accessibility_Message): Add '\' in 2-line warning message.
21110         (Resolve_Attribute): Likewise.
21111         (case Attribute_Access): Significantly revise checks
21112         for illegal access-to-subprogram Access attributes to properly enforce
21113         the rules of 3.10.2(32/2).
21114         Diagnose use of current instance with an illegal attribute.
21115
21116         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
21117         to a Node_Id.
21118         (Enclosing_Generic_Unit): New function to return a node's innermost
21119         enclosing generic declaration node.
21120         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
21121         (Type_Access_Level): The accessibility level of anonymous acccess types
21122         associated with discriminants is that of the current instance of the
21123         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
21124         (Compile_Time_Constraint_Error): Handle case of conditional expression.
21125         (Kill_Current_Values_For_Entity): New function
21126         (Enter_Name): Change formal type to Entity_Id
21127
21128 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
21129             Ed Schonberg  <schonberg@adacore.com>
21130             Gary Dismukes  <dismukes@adacore.com>
21131
21132         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
21133         Analyze_Compilation_Unit.
21134         Detect and warn on redundant with clauses detected in a package spec
21135         and/or body when -gnatwr is used.
21136         (Analyze_Context): Analyze config pragmas before other items
21137         (Install_Context_Items): Don't analyze config pragmas here
21138         (Install_Limited_Withed_Unit): Set limited entity of package in
21139         with_clause so that cross-reference information or warning messages on
21140         unused packages can be properly generated
21141         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
21142         has Error_Posted set. Prevent infinite loops in illegal programs.
21143         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
21144         to the point of the error test requiring the current unit to be private.
21145         This ensures that private with clauses are not exempted from the basic
21146         checking for being a descendant of the same library unit parent as a
21147         withed private descendant unit.
21148         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
21149         handle private with clauses properly, as well as to account for cases
21150         where the withed unit is a public descendant of a private ancestor
21151         (in which case the current unit must be a descendant of the private
21152         ancestor's parent). The spec comments were updated accordingly. Also,
21153         the old error message in this subprogram was replaced with error
21154         messages that mirror the errors tested and reported by
21155         Check_Private_Child_Unit.
21156         Parameter and variable names improved for readability.
21157         (Install_Limited_Context_Clauses): Remove test for a withed unit being
21158         private as the precondition for calling
21159         Check_Private_Limited_Withed_Unit since that subprogram has been
21160         revised to test public units as well as private units.
21161
21162 2006-02-13  Thomas Quinot  <quinot@adacore.com>
21163             Robert Dewar  <dewar@adacore.com>
21164             Ed Schonberg  <schonberg@adacore.com>
21165             Javier Miranda  <miranda@adacore.com>
21166
21167         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
21168         that Scope_Stack.First = 1.
21169         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
21170         were not always properly handled previously.
21171         (Formal_Entity): Complete rewrite, to handle properly some complex case
21172         with multiple levels of parametrization by formal packages.
21173         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
21174         to the corresponding derived type declaration for proper semantics.
21175
21176         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
21177         (Check_Component): Enforce restriction on components of
21178         unchecked_unions: a component in a variant cannot contain tasks or
21179         controlled types.
21180         (Unchecked_Union): Allow nested variants and multiple discriminants, to
21181         conform to AI-216.
21182         Add pragma Ada_2005 (synonym for Ada_05)
21183         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
21184         were not always properly handled previously.
21185         Document that pragma Propagate_Exceptions has no effect
21186         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
21187         (Set_Convention_From_Pragma): Check that if a convention is
21188         specified for a dispatching operation, then it must be
21189         consistent with the existing convention for the operation.
21190         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
21191         longer required to specify an vtable-ptr component in the record. For
21192         compatibility reasons we leave the support for the previous definition.
21193         (Analyze_Pragma, case No_Return): Allow multiple arguments
21194
21195         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
21196         non-overrideen inherited operation with a controlling result as
21197         illegal only its implicit declaration comes from the derived type
21198         declaration of its result's type.
21199         (Check_Possible_Deferred_Completion): Relocate the object definition
21200         node of the subtype indication of a deferred constant completion rather
21201         than directly analyzing it. The analysis of the generated subtype will
21202         correctly decorate the GNAT tree.
21203         (Record_Type_Declaration): Check whether this is a declaration for a
21204         limited derived record before analyzing components.
21205         (Analyze_Component_Declaration): Diagnose record types  not explicitly
21206         declared limited when a component has a limited type.
21207         (Build_Derived_Record_Type): Code reorganization to check if some of
21208         the inherited subprograms of a tagged type cover interface primitives.
21209         This check was missing in case of a full-type associated with a private
21210         type declaration.
21211         (Constant_Redeclaration): Check that the subtypes of the partial and the
21212         full view of a constrained deferred constant statically match.
21213         (Mentions_T): A reference to the current type in an anonymous access
21214         component declaration  must be an entity name.
21215         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
21216         class_wide type to refer to full type, not to the incomplete one.
21217         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
21218         available. Required to give support to the certified run-time.
21219         (Analyze_Component_Declaration): In case of anonymous access components
21220         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
21221         (Process_Discriminants): For an access discriminant, use the
21222         discriminant specification as the associated_node_for_itype, to
21223         simplify accessibility checks.
21224
21225 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21226             Javier Miranda  <miranda@adacore.com>
21227
21228         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
21229         abstract interpretations on an operator, remove interpretations that
21230         yield Address or a type derived from it, if one of the operands is an
21231         integer literal.
21232         (Try_Object_Operation.Try_Primitive_Operation,
21233         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
21234         location when creating the new reference to a primitive or class-wide
21235         operation as a part of rewriting a subprogram call.
21236         (Try_Primitive_Operations): If context requires a function, collect all
21237         interpretations after the first match, because there may be primitive
21238         operations of the same type with the same profile and different return
21239         types. From code reading.
21240         (Try_Primitive_Operation): Use the node kind to choose the proper
21241         operation when a function and a procedure have the same parameter
21242         profile.
21243         (Complete_Object_Operation): If formal is an access parameter and prefix
21244         is an object, rewrite as an Access reference, to match signature of
21245         primitive operation.
21246         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
21247         by an expanded name with prefix Standard, when the operands are of an
21248         anonymous access type.
21249         (Remove_Abstract_Operations): If the operation is abstract because it is
21250         inherited by a user-defined type derived from Address, remove it as
21251         well from the set of candidate interpretations of an overloaded node.
21252         (Analyze_Membership_Op): Membership test not applicable to cpp-class
21253         types.
21254
21255 2006-02-13  Bob Duff  <duff@adacore.com>
21256
21257         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
21258         redundant use clauses.
21259         In particular, if the scope of two use clauses overlaps, but one is not
21260         entirely included in the other, we should not warn.  This can happen
21261         with nested packages.
21262         (Analyze_Subprogram_Renaming): Protect the compiler against previously
21263         reported errors. The bug was reported when the compiler was built
21264         with assertions enabled.
21265         (Find_Type): If the node is a 'Class reference and the prefix is a
21266         synchronized type without a corresponding record, return the type
21267         itself.
21268
21269 2006-02-13  Javier Miranda  <miranda@adacore.com>
21270
21271         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
21272         if this is the full-declaration associated with a private declaration
21273         that implement interfaces, then the private type declaration must be
21274         limited.
21275         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
21276         as aliased. The use of the 'access attribute is not available for such
21277         object (for this purpose the object should be explicitly marked as
21278         aliased, but being an anonymous type this is not possible).
21279
21280 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21281             Robert Dewar  <dewar@adacore.com>
21282
21283         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
21284         compilation unit is an elaboration scope.
21285         (Add_Task_Proc): Add '\' in 2-line warning message.
21286         (Activate_All_Desirable): Deal with case of unit with'ed by parent
21287
21288 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21289             Javier Miranda  <miranda@adacore.com>
21290
21291         * sem_type.adb (Write_Overloads): Improve display of candidate
21292         interpretations.
21293         (Add_One_Interp): Do not add to the list of interpretations aliased
21294         entities corresponding with an abstract interface type that is an
21295         immediate ancestor of a tagged type; otherwise we have a dummy
21296         conflict between this entity and the aliased entity.
21297         (Disambiguate): The predefined equality on universal_access is not
21298         usable if there is a user-defined equality with the proper signature,
21299         declared in the same declarative part as the designated type.
21300         (Find_Unique_Type): The universal_access equality operator defined under
21301         AI-230 does not cover pool specific access types.
21302         (Covers): If one of the types is a generic actual subtype, check whether
21303         it matches the partial view of the other type.
21304
21305 2006-02-13  Thomas Quinot  <quinot@adacore.com>
21306
21307         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
21308         line. This is necessary to allow In_Extended_Main_Unit to provide
21309         correct results for itypes while writing out expanded source.
21310         (Close_File): No need to update the source_index_table here since it's
21311         now done for each line.
21312
21313 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21314             Robert Dewar  <dewar@adacore.com>
21315
21316         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
21317         preserve the source unit where the itype is declared, and prevent a
21318         backend abort.
21319         (Note_Implicit_Run_Time_Call): New procedure
21320         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
21321         E_Subprogram_Type)
21322
21323         * sprint.ads: Document use of $ for implicit run time routine call
21324
21325 2006-02-13  Quentin Ochem  <ochem@adacore.com>
21326
21327         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
21328         task name.
21329
21330 2006-02-13  Bob Duff  <duff@adacore.com>
21331
21332         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
21333         Scan_Unsigned, so we do not scan leading blanks and sign twice.
21334         Integer'Value("- 5") and Integer'Value("-+5") now correctly
21335         raise Constraint_Error.
21336
21337         * s-vallli.adb (Scan_Long_Long_Integer): Call
21338         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
21339         do not scan leading blanks and sign twice.
21340         Integer'Value("- 5") and Integer'Value("-+5") now correctly
21341         raise Constraint_Error.
21342
21343         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
21344         Scan_Long_Long_Unsigned): Split out most of the processing from
21345         Scan_Long_Long_Unsigned out into
21346         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
21347         This prevents scanning leading blanks and sign twice.
21348         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
21349         See RM-3.5(44).
21350
21351         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
21352         out most of the processing from Scan_Unsigned out into
21353         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
21354         This prevents scanning leading blanks and sign twice.
21355
21356         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
21357         use with Modular'Value attribute.
21358         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
21359         attribute.
21360
21361 2006-02-13  Robert Dewar  <dewar@adacore.com>
21362
21363         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
21364
21365 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
21366
21367         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
21368         (PPC VxWorks): Likewise.
21369         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
21370         (forced_callee): Make non-inlinable and non-pure.
21371         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
21372
21373 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
21374             Ben Brosgol  <brosgol@adacore.com>
21375             Robert Dewar  <dewar@adacore.com>
21376
21377         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
21378         support.
21379         Document that gnatbind -M option is for cross environments only.
21380         Added description of using gnatmem to trace gnat rtl allocs and deallocs
21381         Add note on use of $ to label implicit run time calls
21382         Add documentation for -gnatyI (check mode IN)
21383         Updated chapter on compatibility with HP Ada
21384         VMS-oriented edits.
21385         Ran spell and corrected errors
21386         Add documentation for gnatbind -d and rework documentation of -D
21387         at the same time.
21388         Add subprogram/data elimination section.
21389         Minor editing of annex A.
21390         Add section for gnatcheck.
21391         Add documentation for restriction No_Dispatching_Calls
21392         Add documentation for pragma Ada_2005
21393         Remove mention of obsolete pragma Propagate_Exceptions
21394         Document that pragma Unreferenced can appear after DO in ACCEPT
21395         Clarify Pure_Function for library level units
21396         Mention Max/Min in connection with No_Implicit_Conditionals
21397         No_Wide_Characters restriction is no longer partition-wide
21398         Add a nice example for Universal_Literal_String attribute
21399         Document that pragma No_Return can take multiple arguments
21400
21401         * ug_words: Added entry for gnatcheck
21402
21403         * g-ctrl_c.ads (Install_Handler): Enhance comments
21404
21405         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
21406
21407         * g-trasym.ads: Add documentation on how to do off line symbolic
21408         traceback computation.
21409
21410         * s-fatgen.adb: Add comments for Unaligned_Valid
21411
21412         * stand.ads: Fix typo in comment
21413
21414 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21415
21416         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
21417
21418 2006-02-06  Roger Sayle  <roger@eyesopen.com>
21419
21420         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
21421
21422 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21423
21424         PR target/25926
21425         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
21426         implementation that calls __main.
21427
21428 2006-01-25  Peter O'Gorman  <peter@pogma.com>
21429
21430         PR bootstrap/25859
21431         * Makefile.in (GCC_LINK): Remove quotes.
21432         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
21433         or $(GCC_LINK).
21434
21435         (powerpc-darwin): Pass -shared-libgcc when building shared library.
21436
21437 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21438
21439         PR ada/24533
21440         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
21441
21442 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21443
21444         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
21445
21446 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
21447
21448         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
21449         needed.
21450
21451 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
21452
21453         * Make-lang.in: Update dependencies
21454
21455 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
21456
21457         * Make-lang.in: Add rule for ada/exp_sel.o
21458
21459 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
21460
21461         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
21462
21463 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
21464
21465         * gnatvsn.ads (Library_Version): Bump to version 4.2
21466         (ASIS_Version_Number): Bumped.
21467
21468 2005-12-09  Doug Rupp  <rupp@adacore.com>
21469
21470         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
21471         Ada bind file prefix on VMS from b$ to b__.
21472         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
21473         __init.
21474
21475         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
21476         Targparm.OpenVMS_On_Target.
21477         (Object_Suffix): Initialize with target object suffix.
21478         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
21479
21480         * butil.adb: Change some Hostparm.OpenVMS checks to
21481         Targparm.OpenVMS_On_Target.
21482
21483         * clean.adb: Change some Hostparm.OpenVMS checks to
21484         Targparm.OpenVMS_On_Target.
21485         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
21486         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
21487         Ada bind file prefix on VMS from b$ to b__.
21488
21489         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
21490         --GCC so that Get_Target_Parameters can find system.ads.
21491         (Gnatlink): Call Get_Target_Parameters in mainline.
21492         Initialize standard packages for Targparm.
21493         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
21494         (Process_Args): Also Check for object files with target object
21495         extension.
21496         (Make_Binder_File_Names): Create with target object extension.
21497         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
21498         to b__.
21499
21500         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
21501         Targparm.OpenVMS_On_Target.
21502         ({declaration},Build_Library,Check_Library): Change Ada bind file
21503         prefix on VMS from b$ to b__.
21504
21505         * osint-b.adb: Change some Hostparm.OpenVMS checks to
21506         Targparm.OpenVMS_On_Target.
21507         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
21508         b__.
21509
21510         * targext.c: New file.
21511
21512         * Makefile.in: add support for vxworks653 builds
21513         (../../vxaddr2line): gnatlink with targext.o.
21514         (TOOLS_LIBS): Move targext.o to precede libgnat.
21515         (init.o, initialize.o): Minor clean up in dependencies.
21516         (GNATLINK_OBJS): Add targparm.o, snames.o
21517         Add rules fo building targext.o and linking it explicitly with all
21518         tools.
21519         Also add targext.o to gnatlib.
21520
21521         * Make-lang.in: Add rules for building targext.o and linking it in
21522         with gnat1 and gnatbind.
21523         Add entry for exp_sel.o.
21524
21525         * osint.adb Change some Hostparm.OpenVMS checks to
21526         Targparm.OpenVMS_On_Target.
21527         (Object_File_Name): Use target object suffix.
21528
21529         * osint.ads (Object_Suffix): Remove, no longer used.
21530         (Target_Object_Suffix): Initialize with target object suffix.
21531
21532         * rident.ads: Add special exception to license.
21533
21534         * targparm.adb (Get_Target_Parameters): Set the value of
21535         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
21536         value.
21537         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
21538
21539         * targparm.ads: Add special exception to license.
21540
21541         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
21542         function.
21543         (Copy_File): Make sure from file is closed if error on to file
21544         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
21545
21546         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
21547         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
21548
21549         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
21550         target object suffix.
21551
21552 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
21553             Quentin Ochem  <ochem@adacore.com>
21554             Florian Villoing  <villoing@adacore.com>
21555
21556         * a-taster.ads, a-taster.adb: New files.
21557
21558         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
21559         link to the version that does nothing. This way the task termination
21560         routine is not executed twice for the environment task when finishing
21561         because of an unhandled exception.
21562
21563         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
21564         handler because of an unhandled exception.
21565
21566         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
21567         System.Tasking.Utilities instead of that in System.Tasking.Stages.
21568
21569         * s-finimp.adb (initialization code): Modify the soft link for the
21570         finalization of the global list instead of Adafinal.
21571
21572         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
21573         non-tasking version of the soft link for task termination. We do
21574         nothing since if we are using the non-tasking version it
21575         means that the task termination functionality is not used.
21576         (Null_Finalize_Global_List): Add this null version for the procedure
21577         in charge of finalizing the global list for controlled objects.
21578         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
21579         instead for handling run-time termination in a more flexible way.
21580         (Adafinal_NT): This new procedure will take care of finalizing the
21581         global list for controlled objects if needed, but no tasking
21582         finalization.
21583
21584         * s-tarest.adb (Task_Lock): Do not try to lock again the
21585         Global_Task_Lock if we already own it. Otherwise, we get blocked in
21586         some run-time operations.
21587         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
21588         until all nested locks have been released.
21589         (Task_Wrapper): Call the fall-back task termination handler. It
21590         applies to all tasks but the environment task.
21591         (Finalize_Global_Tasks): Add the call for the task termination
21592         procedure for the environment task.
21593         (Task_Wrapper): suppress warnings around declaration of
21594         Secondary_Stack_Address.
21595
21596         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
21597         moved to the Common_ATCB record.
21598         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
21599         Common_ATCB record.
21600         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
21601         Common_ATCB record.
21602
21603         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
21604         Fall_Back_Handler, and Specific_Handler.
21605
21606         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
21607         defined in Ada.Task_Termination, to avoid circular dependencies.
21608         (Termination_Handler): Redefine this type here, alredy defined in
21609         Ada.Task_Termination, for avoiding circular dependencies.
21610         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
21611         for storing task termination handlers. In addition,
21612         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
21613         Common_ATCB because it is used by both the regular and the restricted
21614         run times.
21615         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
21616         Common_ATCB because it is used by both the regular and the restricted
21617         run times.
21618         (Common_ATCB): Added a dynamic task analyzer field.
21619
21620         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
21621         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
21622         (Task_Wrapper): Call the task termination handler. It applies to all
21623         tasks but the environment task.
21624         (Finalize_Global_Tasks): Call the task termination procedure for the
21625         environment task. The call to Finalize_Global_List is now performed
21626         using the soft links mechanism.
21627         (Task_Wrapper): added dynamic stack analysis.
21628
21629         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
21630         potentially blocking operations has been moved from
21631         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
21632         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
21633         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
21634         this run-time check.
21635
21636         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
21637         of task termination procedure.
21638         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
21639         link for the task termination procedure.
21640
21641         * bindusg.adb: (Bindusg): Added documentation for -u option.
21642
21643         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
21644         (Get_Main_C): Add handling of dynamic stack analysis.
21645         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
21646
21647         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
21648         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
21649         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
21650
21651         * opt.ads: Added flags used by dynamic stack measurement.
21652         (Max_Line_Length): Remove (not used anymore)
21653
21654         * s-io.ads, s-io.adb (Standard_Error): new subprogram
21655         (Standart_Output): new subprogram
21656         (Set_Output): new subprogram
21657         (Put): now uses the value of Current_Out to know if the output has to be
21658         send to stderr or stdout.
21659
21660         * s-stausa.ads: Complete implementation.
21661
21662         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
21663
21664         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
21665         list of Ada 05 files.
21666         (GNAT Library Units): Add AltiVec files.
21667
21668         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
21669         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
21670         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
21671
21672 2005-12-09  Nicolas Setton  <setton@adacore.com>
21673
21674         * adaint.c (__gnat_locate_regular_file): Return immediately if
21675         file_name is empty.
21676
21677 2005-12-09  Javier Miranda  <miranda@adacore.com>
21678             Hristian Kirtchev  <kirtchev@adacore.com>
21679
21680         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
21681         to the specification because the frontend generates code that uses this
21682         subprogram.
21683         (Set_Interface_Table): Add missing assertion.
21684         Update documentation describing the run-time structure.
21685         (Displace): New subprogram that displaces the pointer to the object
21686         to reference one of its secondary dispatch tables.
21687         (IW_Membership): Modified to use the new table of interfaces.
21688         (Inherit_TSD): Modified to use the new table of interfaces.
21689         (Register_Interface_Tag): Use the additional formal to fill the
21690         contents of the new table of interfaces.
21691         (Set_Interface_Table): New subprogram that stores in the TSD the
21692         pointer to the table of interfaces.
21693         (Set_Offset_To_Top): Use the additional formal to save copy of
21694         the offset value in the table of interfaces.
21695         Update structure of GNAT Primary and Secondary dispatch table diagram.
21696         Add comment section on GNAT dispatch table prologue.
21697         (Offset_To_Signature): Update the constant value of the Signature field.
21698         (Dispatch_Table): Update comment on hidden fields in the prologue.
21699         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
21700         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
21701         the type of formal parameter T to Tag, introduce additional assertions.
21702         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
21703         conversion.
21704         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
21705
21706         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
21707         in all the calls to Expand_Interface_Thunk. Instead of referencing the
21708         record component containing the tag of the secondary dispatch table we
21709         have to use the Offset_To_Top run-time function to get this information;
21710         otherwise if the pointer to the base of the object has been displace
21711         we get a wrong value if we use the 'position attribute.
21712
21713         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
21714         all the calls to Expand_Interface_Thunk.
21715         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
21716         interfaces; hence the call to Set_Interface_Table was clearly wrong.
21717         (Collect_All_Interfaces): Modify the internal subprogram Collect to
21718         ensure that the interfaces implemented by the ancestors are placed
21719         at the header of the generated list.
21720         (Expand_Interface_Conversion): Handle the case in which the displacement
21721         associated with the interface conversion is not statically known. In
21722         this case we generate a call to the new run-time subprogram Displace.
21723         (Make_DT): Generate and fill the new table of interfaces.
21724         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
21725         Get_Tagged_Kind and Set_Tagged_Kind.
21726         (Tagged_Kind): New function that determines the tagged kind of a type
21727         with respect to limitedness and concurrency and returns a reference to
21728         RE_Tagged_Kind.
21729         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
21730         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
21731         primary dispatch table for a type.
21732         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
21733         secondary dispatch table respectively of a tagged type.
21734
21735         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
21736         (Expand_Interface_Conversion): New subprogram to indicate if the
21737         displacement of the type conversion is statically known.
21738         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
21739
21740         * rtsfind.ads (RE_Offset_To_Top): New entity
21741         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
21742         accessible to users.
21743         (Re_Displace): New entity
21744         (RE_Interface_Data): New entity
21745         (RE_Set_Interface_Data): New_Entity
21746         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
21747         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
21748         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
21749         RE_TK_Tagged, RE_TK_Task.
21750
21751         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
21752         Init_Secondary_Tags_Internal to allow its use with interface types and
21753         also to generate the code for the new additional actual required
21754         by Set_Offset_To_Top.
21755         (Build_Init_Statements): In case of components associated with abstract
21756         interface types there is no need to generate a call to its IP.
21757         (Freeze_Record_Type): Generate Select Specific Data tables only for
21758         concurrent types.
21759         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
21760         the bodies and specifications of the predefined primitive operations
21761         dealing with dispatching selects and abort, 'Callable, 'Terminated only
21762         for concurrent types.
21763
21764         * exp_sel.ads, exp_sel.adb: New files.
21765
21766         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
21767         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
21768         properly protected objects and attach handler in the case of the
21769         restricted profile.
21770         Move embeded package Select_Expansion_Utilities into a separate external
21771         package.
21772         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
21773         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
21774         (Build_K, Build_S_Assignment): New subprograms, part of the select
21775         expansion utilities.
21776         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
21777         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
21778         where the trigger is a dispatching procedure of a limited tagged type.
21779
21780 2005-12-09  Olivier Hainque  <hainque@adacore.com>
21781
21782         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
21783         pointer initialization values. Make a SAVE_EXPR instead. Add comments
21784         about the use and expansion of SAVE_EXPRs in the various possible
21785         renaming handling cases.
21786         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
21787         abusing DECL_FCONTEXT.
21788
21789 2005-12-09  Matthew Heaney  <heaney@adacore.com>
21790
21791         * a-convec.adb (Merge): Added assertions to check whether vector params
21792         are sorted.
21793
21794         * a-coinve.adb (Merge): Added assertions to check whether vector params
21795         are sorted.
21796
21797         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
21798         draft.
21799         (Cursor'Read): raises PE
21800
21801         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
21802         to its default value.
21803
21804         * a-cihama.adb: Manually check whether cursor's key and elem are
21805         non-null
21806
21807         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
21808         (Merge): Assert that target and source lists are in order
21809         (Swap): Declare non-const temporaries, to pass to Splice
21810
21811         * a-cdlili.ads: (Splice): Changed param name and param mode
21812
21813         * a-cdlili.adb: (Splice): Changed param name and param mode
21814         (Merge): Assert that target and source lists are in order
21815         (Swap): Declare non-const temporaries, to pass to Splice
21816
21817         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
21818         (Write): declare Stream param as not null
21819
21820         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
21821         an exception message.
21822
21823 2005-12-09  Thomas Quinot  <quinot@adacore.com>
21824             Robert Dewar  <dewar@adacore.com>
21825
21826         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
21827         which is the absolute maximum length we can support.
21828
21829         * frontend.adb: For the processing of configuration pragma files,
21830         remove references to Opt.Max_Line_Length, which is not checked anymore.
21831
21832         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
21833         length.
21834
21835         * scn.adb, scng.adb:
21836         Always check line length against the absolute supported maximum,
21837         Hostparm.Max_Line_Length.
21838
21839         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
21840         value for the maximum line length is Max_Line_Length (not
21841         Column_Number'Last).
21842         Minor error msg update
21843         (Set_Style_Check_Options): New interface returning error msg
21844         Minor code reorganization (processing for 'M' was out of alpha order)
21845
21846         * switch-c.adb: New interface for Set_Style_Check_Options
21847
21848         * stylesw.ads (Set_Style_Check_Options): New interface returning error
21849         msg.
21850
21851 2005-12-09  Javier Miranda  <miranda@adacore.com>
21852
21853         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
21854         with IP subprogram were only supported if there were limited types.
21855
21856         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
21857         records with IP subprogram were only supported if there were limited
21858         types.
21859
21860 2005-12-09  Olivier Hainque  <hainque@adacore.com>
21861             Eric Botcazou  <ebotcazou@adacore.com>
21862
21863         * trans.c (tree_transform, emit_check): Adjust calls to
21864         build_call_raise, passing the now expected GNAT_NODE argument.
21865
21866         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
21867         source line information than what the current global locus indicates
21868         when appropriate.
21869
21870         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
21871         field has overflowed.
21872         (build_call_raise): Add a GNAT_NODE argument to convey better source
21873         line information than what the current global locus indicates when
21874         appropriate.
21875         (build_component_ref): Adjust call to build_call_raise.
21876
21877 2005-12-09  Pascal Obry  <obry@adacore.com>
21878
21879         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
21880         the iterator is quitting iteration on parent directory.
21881
21882 2005-12-09  Javier Miranda  <miranda@adacore.com>
21883
21884         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
21885         and the assignment to a class-wide object, before the assignment we
21886         generate a run-time check to ensure that the tag of the Target is
21887         covered by the tag of the source.
21888
21889 2005-12-09  Robert Dewar  <dewar@adacore.com>
21890
21891         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
21892         parameter in call to Image_Wide_Character.
21893
21894         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
21895         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
21896         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
21897         annoying FFFE/FFFF inconsistency.
21898
21899 2005-12-09  Robert Dewar  <dewar@adacore.com>
21900             Javier Miranda  <miranda@adacore.com>
21901             Ed Schonberg  <schonberg@adacore.com>
21902
21903         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
21904         of type conversion.
21905         (Find_Interface): New subprogram that given a tagged type and one of its
21906         component associated with the secondary table of an abstract interface
21907         type, return the entity associated with such abstract interface type.
21908         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
21909         base type to create anonymous subtype, because entity may be a locally
21910         declared subtype or generic actual.
21911         (Find_Interface): New subprogram that given a tagged type and one of its
21912         component associated with the secondary table of an abstract interface
21913         type, return the entity associated with such abstract interface type.
21914
21915         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
21916         conversion cannot be handled at compile time. In this case we pass this
21917         information to the expander to generate the appropriate code.
21918
21919 2005-12-09  Robert Dewar  <dewar@adacore.com>
21920             Ed Schonberg  <schonberg@adacore.com>
21921             Gary Dismukes  <dismukes@adacore.com>
21922             Javier Miranda  <miranda@adacore.com>
21923             Hristian Kirtchev  <kirtchev@adacore.com>
21924
21925         * einfo.adb (Itype_Printed): New flag
21926         (Is_Limited_Type): Derived types do not inherit limitedness from
21927         interface progenitors.
21928         (Is_Return_By_Reference_Type): Predicate does not apply to limited
21929         interfaces.
21930
21931         * einfo.ads (Itype_Printed): New flag
21932         Move Is_Wrapper_Package to proper section
21933         Add missing Inline for Is_Volatile
21934
21935         * output.ads, output.adb (Write_Erase_Char): New procedure
21936         (Save/Restore_Output_Buffer): New procedures
21937         (Save/Restore_Output_Buffer): New procedures
21938
21939         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
21940         Add missing support for anonymous access type
21941         (Write_Id): Insert calls to Write_Itype
21942         (Write_Itype): New procedure to output itypes
21943
21944         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
21945         use of "limited" in declaration.
21946
21947         * sinfo.ads, sinfo.adb:
21948         Formal derived types can carry an explicit "limited" indication.
21949
21950         * sem_ch3.adb: Add with and use of Targparm.
21951         (Create_Component): If Frontend_Layout_On_Target is True and the
21952         copied component does not have a known static Esize, then reset
21953         the size and positional fields of the new component.
21954         (Analyze_Component_Declaration): A limited component is
21955         legal within a protected type that implements an interface.
21956         (Collect_Interfaces): Do not add to the list the interfaces that
21957         are implemented by the ancestors.
21958         (Derived_Type_Declaration): If the parent of the full-view is an
21959         interface perform a transformation of the tree to ensure that it has
21960         the same parent than the partial-view. This simplifies the job of the
21961         expander in order to generate the correct object layout, and it is
21962         needed because the list of interfaces of the full-view can be given in
21963         any order.
21964         (Process_Full_View): The parent of the full-view does not need to be
21965         a descendant of the parent of the partial view if both parents are
21966         interfaces.
21967         (Analyze_Private_Extension_Declaration): If declaration has an explicit
21968         "limited" the parent must be a limited type.
21969         (Build_Derived_Record_Type): A derived type that is explicitly limited
21970         must have limited ancestor and progenitors.
21971         (Build_Derived_Type): Ditto.
21972         (Process_Full_View): Verify that explicit uses of "limited" in partial
21973         and full declarations are consistent.
21974         (Find_Ancestor_Interface): Remove function.
21975         (Collect_Implemented_Interfaces): New procedure used to gather all
21976         implemented interfaces by a type.
21977         (Contain_Interface): New function used to check whether an interface is
21978         present in a list.
21979         (Find_Hidden_Interface): New function used to determine whether two
21980         lists of interfaces constitute a set equality. If not, the first
21981         differing interface is returned.
21982         (Process_Full_View): Improve the check for the "no hidden interface"
21983         rule as defined by AI-396.
21984
21985 2005-12-09  Robert Dewar  <dewar@adacore.com>
21986
21987         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
21988         types, not on record subtypes.
21989         (Freeze_Entity): Code cleanup. Add barrier to the loop
21990         that generates the references for primitive operations. This allows to
21991         remove an unnecessary exception handler.
21992         Code reformatting and comment clean ups.
21993
21994 2005-12-09  Vincent Celier  <celier@adacore.com>
21995
21996         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
21997         If GNAT CHECK is called with a project file, but with no
21998         source on the command line, call gnatcheck with all the compilable
21999         sources of the project.
22000         Take into account the new command Check, for gnatcheck. Treat as for
22001         other ASIS tools: take into account project, specific package Check and
22002         Compiler switches.
22003         For ASIS tools, add the switches in package Compiler for
22004         the invocation of the compiler.
22005
22006         * prj-attr.adb: Add package Check and its attributes
22007
22008         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
22009
22010         * vms_conv.adb (Initialize): Change Params of command Check to
22011         unlimited files.
22012         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
22013         Add data for new command Check
22014
22015         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
22016         ELIM.
22017         Add qualifiers for Check command options
22018         (Command_Type): New command Check
22019
22020 2005-12-09  Thomas Quinot  <quinot@adacore.com>
22021
22022         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
22023         command line switch overruns the output buffer.
22024
22025 2005-12-09  Robert Dewar  <dewar@adacore.com>
22026
22027         * sem_prag.adb: Processing for new pragma Complete_Representation
22028         (Analyze_Pragma, case Debug): Implement two argument form.
22029
22030         * par-prag.adb: Entry for new pragma Complete_Representation
22031         (Prag, case Debug): Recognize two argument form of pragma Debug
22032         New interface for Set_Style_Check_Options.
22033
22034         * sem_ch13.adb: Implement new pragma Complete_Representation.
22035
22036         * snames.adb, snames.ads, snames.h: Entry for new pragma
22037         Complete_Representation.
22038
22039 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
22040
22041         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
22042         available user-specified stream attributes on limited parameters to
22043         also test the type directly rather than only its underlying type (for
22044         Ada 95) and, in the case of Ada 2005, to check that the user-specified
22045         attributes are visible at the point of the subprogram declaration.
22046         For Ada 2005, the error message is modified to indicate that the
22047         type's stream attributes must be visible (again, only for -gnat05).
22048
22049 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
22050
22051         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
22052         anonymous access types.
22053
22054         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
22055         matching of anonymous access types and anonymous access to subprogram
22056         types. 'R'M 4.9.1 (2/2).
22057
22058 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
22059
22060         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
22061         rule prematurely when operands are universal, remaining ambiguities
22062         will be removed during resolution.
22063         Code cleanup.
22064
22065         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
22066         that are Ada 2005 functions.
22067         (Has_Abstract_Interpretation): Subsidiary to
22068         Remove_Conversions, to remove ambiguities caused by abstract operations
22069         on numeric types when operands are universal.
22070
22071 2005-12-09  Robert Dewar  <dewar@adacore.com>
22072
22073         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
22074         for case where spec is categorized.
22075
22076 2005-12-09  Javier Miranda  <miranda@adacore.com>
22077
22078         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
22079         types use the corresponding record type. This was not needed before
22080         the implementation of Ada 2005 synchronized types because
22081         concurrent types were never tagged types in Ada 95.
22082
22083 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
22084
22085         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
22086         first subtype of the type of the expression to verify that it is a
22087         legal Time type.
22088
22089 2005-12-09  Robert Dewar  <dewar@adacore.com>
22090
22091         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
22092         decoded names.
22093
22094 2005-12-09  Quentin Ochem  <ochem@adacore.com>
22095             Robert Dewar  <dewar@adacore.com>
22096             Ed Falis  <falis@adacore.com>
22097             Florian Villoing  <villoing@adacore.com>
22098             Thomas Quinot  <quinot@adacore.com>
22099             Arnaud Charlet  <charlet@adacore.com>
22100
22101         * gnat_ugn.texi: Created section "Stack Related Tools"
22102         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
22103         "Stack Related Tools"
22104         Added subsection "Static Stack Usage Analysis"
22105         Added subsection "Dynamic Stack Usage Analysis"
22106         Include documentation of itypes in sprint listing (-gnatG)
22107         Documented gnatbind -D switch (default sec stack size for fixed sec
22108         stacks).
22109         Added Interrupt_State and Persistent_BSS to list of configuration
22110         pragmas.
22111         Add missing doc for maximum value of nnn in -gnatyMnnn
22112
22113         * gnat_rm.texi: Document the AltiVec binding.
22114         Add documentation for pragma Complete_Representation
22115         Shortened an overly long line (> 79 chars)
22116         Clarify documentation of unchecked conversion in implementation
22117         defined cases.
22118         Document two argument form of pragma Debug
22119
22120         * types.ads (Column_Number): Update documentation.
22121
22122         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
22123         library level Finalize_Storage_Only objects (these are not attached to
22124         any finalization list).
22125
22126         * system-mingw.ads: (Underlying_Priorities): Update comment.
22127
22128 2005-12-09  Robert Dewar  <dewar@adacore.com>
22129
22130         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
22131         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
22132         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
22133         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
22134         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
22135         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
22136         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
22137         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
22138         reformatting.
22139
22140 2005-12-09  Robert Dewar  <dewar@adacore.com>
22141
22142         * s-vaflop-vms-alpha.adb: (Ne_F): New function
22143         (Ne_G): New function
22144
22145         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
22146         for tag assignment.
22147         (Rewrite_Comparison): Handle case where operation is not a comparison
22148         and ignore, and also handle type conversion case.
22149
22150 2005-12-09  Thomas Quinot  <quinot@adacore.com>
22151
22152         * exp_aggr.ads: Fix typo in comment.
22153         ???-mark Convert_Aggr_In_Assignment as needing documentation.
22154
22155 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
22156
22157         * layout.adb: Replace various uses of byte by storage unit throughout.
22158         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
22159         static size, convert to storage units before returning, to conform to
22160         spec.
22161
22162 2005-12-09  Matthew Gingell  <gingell@adacore.com>
22163
22164         * g-exctra.ads: Fix typo in comment.
22165
22166 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22167
22168         * utils.c: Minor reformatting.
22169
22170 2005-12-09  Robert Dewar  <dewar@adacore.com>
22171
22172         * g-soccon.ads:
22173         Further comment fixes to make the status of the default file clear
22174
22175         * s-bitops.adb: Clarify comment for Bits_Array
22176
22177 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
22178
22179         * Make-lang.in (ada.install-normal): Remove.
22180
22181 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
22182
22183         * Make-lang.in: Remove all dependencies on s-gtype.
22184
22185 2005-12-05  Richard Guenther  <rguenther@suse.de>
22186
22187         * utils.c (convert): Use fold_convert where appropriate.
22188
22189 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
22190
22191         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
22192         a period is meant.
22193
22194 2005-12-02  Richard Guenther  <rguenther@suse.de>
22195
22196         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
22197
22198 2005-12-01  Roger Sayle  <roger@eyesopen.com>
22199
22200         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
22201         nodes.
22202
22203 2005-11-23  Laurent Guerby  <laurent@guerby.net>
22204
22205         * mlib-prj.adb (Build_Library): Initialize Delete.
22206
22207 2005-11-21  Joel Sherrill  <joel.sherrill@oarcorp.com>
22208
22209         * socket.c: Add extern int h_errno for rtems since networking header
22210         files are not available at this point in a tool bootstrap. Newlib
22211         only has basic C library header files.
22212
22213 2005-11-19  Richard Guenther  <rguenther@suse.de>
22214         Roger Sayle  <roger@eyesopen.com>
22215
22216         PR ada/23717
22217         * misc.c (internal_error_function): Don't use vsprintf to format
22218         the error message text, instead use pp_format_text and the new
22219         pretty printer APIs.  This allows handling of %qs, %w, etc.
22220
22221 2005-11-18  Laurent Guerby  <laurent@guerby.net>
22222
22223         PR ada/24857
22224         * Makefile.in: Use s-auxdec-empty for RTEMS.
22225
22226 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22227
22228         PR ada/22333
22229         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
22230         a temporary if taking the address of something that is neither
22231         reference, declaration, or constant, since the gimplifier
22232         can't handle that case.
22233
22234 2005-11-17  Laurent Guerby  <laurent@guerby.net>
22235
22236         PR ada/24857
22237         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
22238
22239 2005-11-16  Richard Guenther  <rguenther@suse.de>
22240
22241         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
22242
22243 2005-11-16  Joel Sherrill  <joel.sherrill@oarcorp.com>
22244
22245         PR ada/24855
22246         * raise-gcc.c: Add missing stdarg.h include.
22247
22248 2005-11-16  Richard Guenther  <rguenther@suse.de>
22249
22250         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
22251         (ada/misc.o): Likewise.
22252
22253 2005-11-14  Thomas Quinot  <quinot@adacore.com>
22254
22255         * g-soccon.ads: Minor reformatting. Update comments.
22256
22257         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
22258         gain visibility on the declaration of struct timeval.
22259
22260         * g-soccon-freebsd.ads,
22261         g-soccon-darwin.ads,
22262         g-soccon-tru64.ads,
22263         g-soccon-aix.ads,
22264         g-soccon-irix.ads,
22265         g-soccon-hpux.ads,
22266         g-soccon-solaris.ads,
22267         g-soccon-vms.ads,
22268         g-soccon-mingw.ads,
22269         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
22270
22271         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
22272         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
22273         g-soccon-linux-x86.ads: New files.
22274
22275         * g-socthi-mingw.adb:
22276         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
22277
22278         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
22279         (time_t, suseconds_t): New types constructed to match the tv_sec
22280         and tv_usec fields of C struct timeval.
22281         (Timeval): Construct structure in terms of the new types.
22282         (Host_Errno): New function (imported from socket.c), returns last hosts
22283         database error.
22284
22285         * g-socthi-vxworks.adb:  Add error handling circuitry.
22286
22287         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
22288         components of struct timeval.
22289         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
22290         (Check_Selector): In error conditions, clear internal socket sets to
22291         avoid a memory leak.
22292         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
22293         Send_Timeout, Receive_Timeout.
22294
22295         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
22296         the tv_sec and tv_usec fields of C struct timeval.
22297         (Timeval): Construct structure in terms of the new types.
22298         (Host_Errno): New function (imported from socket.c), returns last hosts
22299         database error.
22300
22301         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
22302         hosts database last error code.
22303
22304         * gen-soccon.c: Complete value expansion should not be performed on
22305         TARGET, as it has the form of a math expression, and some components
22306         may be platform-defined macros.
22307         For VxWorks, generate the OK and ERROR values.
22308         New constants giving the sizes of the components of C struct timeval.
22309
22310 2005-11-14  Robert Dewar  <dewar@adacore.com>
22311             Ed Schonberg  <schonberg@adacore.com>
22312
22313         PR ada/18434
22314         * types.ads: Include All_Checks in Suppress_Array
22315
22316         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
22317         not(a=b), since we no longer do this rewriting, and hence it is not
22318         needed.
22319         (Elaboration_Checks_Suppressed): Add special casing to
22320         deal with different cases of static and dynamic elaboration checks (all
22321         checks does not count in the first case, but does in the second).
22322         (Expr_Known_Valid): Do not assume that the result of any arbitrary
22323         function call is valid, since this is not the case.
22324         (Ensure_Valid): Do not apply validity check to a real literal
22325         in a universal or fixed context
22326
22327         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
22328         elementary types using the operator in standard. It is cleaner not to
22329         modify the programmers intent, especially in the case of floating-point.
22330         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
22331         it did not matter because we always rewrote a/=b to not(a=b).
22332         (Expand_Allocator_Expression): For an allocator expression whose nominal
22333         subtype is an unconstrained packed type, convert the expression to its
22334         actual constrained subtype.
22335         Implement warning for <= or >= where < or > not possible
22336         Fix to Vax_Float tests (too early in many routines, causing premature
22337         Vax_Float expansions.
22338
22339         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
22340         to be used with packages and generic packages as well as with
22341         subprograms.
22342         (Suppress): Set All_Checks, but not Elaboration_Check, for case
22343         of pragma Suppress (All_Checks)
22344         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
22345         a string literal for precise control over warnings.
22346         Avoid raise of pragma in case of unrecognized pragma and just return
22347         instead.
22348
22349         * sem_prag.ads: Minor reformatting
22350
22351         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
22352         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
22353         Switch. Do not handle any exception.
22354         Include -gnatwx as part of -gnatg (warn on redundant parens)
22355         Allow optional = after -gnatm
22356         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
22357         longer sets Elaboration_Checks.
22358         Code to set warning mode moved to Sem_Warn
22359         so that it can be shared by pragma processing.
22360
22361         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
22362         statement.
22363
22364         * s-taprop-solaris.adb:
22365         Change some <= to =, to avoid new warning
22366
22367         * a-exexda.adb, prj-proc.adb:
22368         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
22369         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
22370
22371 2005-11-14  Robert Dewar  <dewar@adacore.com>
22372
22373         * exp_vfpt.adb: Handle /= case
22374         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
22375         so that we do not get duplicate scaling for fixed point conversions.
22376
22377         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
22378
22379 2005-11-14  Matthew Gingell  <gingell@adacore.com>
22380
22381         * system-lynxos-ppc.ads, system-lynxos-x86.ads:
22382         Increase default priority on Lynx from 15 to 17, and meet the Ada
22383         requirement that Default_Priority be ((Priority'First +
22384         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
22385
22386 2005-11-14  Vincent Celier  <celier@adacore.com>
22387
22388         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
22389         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
22390         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
22391         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
22392         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
22393         mlib-tgt-lynxos.adb (DLL_Prefix): New function
22394
22395 2005-11-14  Doug Rupp  <rupp@adacore.com>
22396
22397         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
22398         private part.
22399
22400 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
22401
22402         * s-traces-default.adb, s-trafor-default.ads,
22403         s-tratas-default.adb: Fix compilation errors.
22404
22405 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
22406
22407         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
22408         raising the exception so the memory used is freed.
22409
22410 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
22411
22412         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
22413         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
22414         (convert_address): Update comments and list of platforms using this.
22415
22416         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
22417         no longer used.
22418
22419 2005-11-14  Pascal Obry  <obry@adacore.com>
22420             Vincent Celier  <celier@adacore.com>
22421
22422         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
22423         GNAT.Command_Line.
22424
22425         * memroot.adb: Remove redundant with/use clause on
22426         System.Storage_Elements.
22427
22428 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
22429
22430         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
22431         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
22432         related code to a-exexpr.adb
22433         (Save_Occurrence_And_Private): Move GCC EH related code to
22434         a-exexpr-gcc.adb
22435         (Raise_Current_Excep): Add new variable Id with pragma
22436         volatile, to ensure that the variable lives on stack.
22437
22438         * a-exexpr-gcc.adb, raise-gcc.c: New file.
22439
22440         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
22441         from a-except.adb.
22442         Move GCC EH related code to a-exexpr-gcc.adb
22443
22444         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
22445         64-bit Solaris
22446         Split the Linux version of g-soccon into separate variants for 32 and 64
22447         bit platforms.
22448         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
22449         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
22450         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
22451         of host variable $(RANLIB_FLAGS).
22452         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
22453         Code clean up: remove unused/obsolete targets.
22454         (EH_MECHANISM): New variable introduced to differenciate between the
22455         two EH mechanisms statically.
22456         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
22457         (LIBGNAT_OBJS): Add raise-gcc.o
22458         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
22459         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
22460         supports VxWorks 6 RTPs.
22461         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
22462         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
22463
22464         * raise.c: Move all GCC EH-related routines to raise-gcc.c
22465
22466 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
22467
22468         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
22469         deferral level, when abort is not allowed, to a later stage (the
22470         Task_Wrapper).
22471         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
22472         it will not get changed by the generated code. It was previously done
22473         in Create_Task.
22474
22475 2005-11-14  Thomas Quinot  <quinot@adacore.com>
22476             Olivier Hainque  <hainque@adacore.com>
22477             Eric Botcazou  <ebotcazou@adacore.com>
22478
22479         * decl.c:
22480         Factor common code to build a storage type for an unconstrained object
22481         from a fat or thin pointer type and a constrained object type.
22482         (annotate_value): Handle BIT_AND_EXPR.
22483         (annotate_rep): Don't restrict the back annotation of inherited
22484         components to the type_annotate_only case.
22485         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
22486         we are not defining the type.
22487         <E_Record_Type>: Likewise.
22488         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
22489         to get advantage of the new maybe_stabilize_reference interface, to
22490         ensure that what we reference is indeed stabilized instead of relying
22491         on assumptions on what the stabilizer does.
22492         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
22493         type imported through a limited_with clause, use its non-limited view.
22494         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
22495         differentiation.
22496         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
22497         of #if sections + explicit comparisons of convention identifiers.
22498         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
22499         before early-returning for certain types when code generation is
22500         disabled.
22501         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
22502         nullification of gnu_expr we do for objects with address clause and
22503         that we are not defining.
22504         (elaborate_expression_1): Do not create constants when creating
22505         variables needed by the debug info: the dwarf2 writer considers that
22506         CONST_DECLs is used only to represent enumeration constants, and emits
22507         nothing for them.
22508         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
22509         object with an address clause into an indirect reference, drop the
22510         initializing expression.
22511         Include "expr.h".
22512         (STACK_CHECK_BUILTIN): Delete.
22513         (STACK_CHECK_PROBE_INTERVAL): Likewise.
22514         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
22515         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
22516         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
22517         corresponding to the renamed object as ignored for debugging purposes.
22518
22519         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
22520         related): For a prefix that is a dereference of a fat or thin pointer,
22521         if there is an actual subtype provided by the front-end, use that
22522         subtype to build an actual type with bounds template.
22523         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
22524         is provided by the front-end, use that subtype to compute the size of
22525         the deallocated object.
22526         (gnat_to_gnu): When adding a statement into an elaboration procedure,
22527         check for a potential violation of a No_Elaboration_Code restriction.
22528         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
22529         with extra arguments to control whether to recurse through non-values
22530         and to let the caller know if the stabilization has succeeded.
22531         (gnat_stabilize_reference): Now a simple wrapper around
22532         maybe_stabilize, for common uses without restriction on lvalues and
22533         without need to check for the success indication.
22534         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
22535         pass false instead of 0 as the FORCE argument which is a bool.
22536         (Identifier_to_gnu): Remove checks ensuring that an renamed object
22537         attached to a renaming pointer has been properly stabilized, as no such
22538         object is attached otherwise.
22539         (call_to_gnu): Invoke create_var_decl to create the temporary when the
22540         function uses the "target pointer" return mechanism.
22541         Reinstate conversion of the actual to the type of the formal
22542         parameter before any other specific treatment based on the passing
22543         mechanism. This turns out to be necessary in order for PLACEHOLDER
22544         substitution to work properly when the latter type is unconstrained.
22545
22546         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
22547         common pattern.
22548         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
22549         with extra arguments to control whether to recurse through non-values
22550         and to let the caller know if the stabilization has succeeded.
22551
22552         * utils2.c (gnat_build_constructor): Only sort the fields for possible
22553         static output of record constructor if all the components are constant.
22554         (gnat_build_constructor): For a record type, sort the list of field
22555         initializers in increasing bit position order.
22556         Factor common code to build a storage type for an unconstrained object
22557         from a fat or thin pointer type and a constrained object type.
22558         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
22559         types variants, and process special cases of VIEW_CONVERT expressions
22560         as their NOP_EXPR counterpart to ensure we get to the
22561         CORRESPONDING_VARs associated with CONST_DECls.
22562         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
22563         on the right-hand side.
22564
22565         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
22566         a common pattern.
22567         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
22568         are converting back to its original type.
22569         (convert) <JM input>: Fallthrough regular conversion code instead of
22570         extracting the object if converting to a type variant.
22571         (create_var_decl): When a variable has an initializer requiring code
22572         generation and we are at the top level, check for a potential violation
22573         of a No_Elaboration_Code restriction.
22574         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
22575         SIZE and SIZE_UNIT which we need for later back-annotations.
22576         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
22577         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
22578         is an unchecked union.
22579         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
22580         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
22581         main variant, just replace the VIEW_CONVERT_EXPR.
22582         <UNION_TYPE>: Revert 2005-03-02 change.
22583
22584         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
22585
22586         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
22587
22588 2005-11-14  Matthew Heaney  <heaney@adacore.com>
22589
22590         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads,
22591         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb,
22592         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads,
22593         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb,
22594         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
22595         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb:
22596         Compiles against the spec for ordered maps described in sections
22597         A.18.6 of the most recent (August 2005) AI-302 draft.
22598
22599 2005-11-14  Olivier Hainque  <hainque@adacore.com>
22600
22601         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
22602         to ensure bias adjustments take place when need be and to prevent
22603         occurrences of intermediate overflows.
22604
22605 2005-11-14  Matthew Gingell  <gingell@adacore.com>
22606             Olivier Hainque  <hainque@adacore.com>
22607
22608         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
22609         ia64 HP-UX.
22610
22611         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
22612         tracebacks on ia64 HP-UX and provide explanatory comment.
22613         Enable backtraces on ia64 GNU/Linux.
22614         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
22615         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
22616
22617 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
22618             Javier Miranda  <miranda@adacore.com>
22619
22620         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
22621         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
22622         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
22623         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
22624
22625         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
22626         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
22627         assertions).
22628
22629         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
22630         subprogram that generates the external name associated with a
22631         secondary dispatch table.
22632         (Get_Secondary_DT_External_Name): New subprogram that generates the
22633         external name associated with a secondary dispatch table.
22634
22635 2005-11-14  Emmanuel Briot  <briot@adacore.com>
22636
22637         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
22638         line in the ALI file to include both an instantiation reference, and a
22639         returned value.
22640
22641 2005-11-14  Vincent Celier  <celier@adacore.com>
22642
22643         * clean.adb (Check_Project): Look for Ada code in extending project,
22644         even if Ada is not specified as a language.
22645         Use new function DLL_Prefix for DLL_Name
22646         (Clean_Interface_Copy_Directory): New procedure
22647         (Clean_Library_Directory): New procedure
22648         (Clean_Directory): Remove procedure, no longer used
22649         (Clean_Project): Do not delete any file in an externally built project
22650
22651         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
22652         directory of an extending project, even when there are no Ada source
22653         present.
22654         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
22655         (Set_Ada_Paths.Add.Recursive_Add): Ditto
22656
22657         * mlib-prj.adb (Check_Library): For all library projects, get the
22658         library file timestamp.
22659         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
22660         (Build_Library): Use new function DLL_Prefix for the DLL_Name
22661         (Clean): Remove procedure, no longer used
22662         (Ultimate_Extension_Of): New function
22663         (Build_Library): When cleaning the library directory, only remove an
22664         existing library file and any ALI file of a source of the project.
22665         When cleaning the interface copy directory, remove any source that
22666         could be a source of the project.
22667
22668         * prj.ads, prj.adb (Project_Empty): Add values of new components
22669         Library_TS and All_Imported_Projects.
22670         (Project_Empty): Add values for new components of Project_Data:
22671         Library_ALI_Dir and Display_Library_ALI_Dir
22672
22673         * prj-attr.adb: New project level attribute name Library_ALI_Dir
22674
22675         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
22676         attribute Library_ALI_Dir.
22677         (Check_Library_Attributes): The library directory cannot be the same as
22678         any source directory of the project tree.
22679         (Check_Stand_Alone_Library): The interface copy directory cannot be
22680         the same as any source directory of the project tree.
22681
22682         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
22683         all temporary files.
22684
22685 2005-11-14  Robert Dewar  <dewar@adacore.com>
22686             Ed Schonberg  <schonberg@adacore.com>
22687
22688         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
22689         (Check_Elab_Call): A call within a protected body is never an
22690         elaboration call, and does not require checking.
22691         (Same_Elaboration_Scope): Take into account protected types for both
22692         entities.
22693         (Activate_Elaborate_All_Desirable): New procedure
22694
22695         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
22696         desirable
22697
22698         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
22699         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
22700
22701         * lib-writ.ads, lib-writ.adb:
22702         Implement new AD/ED for Elaborate_All/Elaborate desirable
22703         Use new Elaborate_All_Desirable flag in N_With_Clause node
22704
22705         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
22706         N_Free_Statement nodes.
22707         Define new class N_Subprogram_Instantiation
22708         Add Elaborate_Desirable flag to N_With_Clause node
22709         Add N_Delay_Statement (covering two kinds of delay)
22710
22711         * debug.adb: Introduce d.f flag for compiler
22712         Add -da switch for binder
22713
22714 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
22715             Cyrille Comar  <comar@adacore.com>
22716
22717         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
22718         for task component, in the case of a limited aggregate. The enclosed
22719         object declaration will create it earlier. Otherwise, in the case of a
22720         nested aggregate, the object may appear in the wrong scope.
22721         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
22722         (Gen_Assign): If the component being assigned is an array type and the
22723         expression is itself an aggregate, wrap the assignment in a block to
22724         force finalization actions on the temporary created for each row of the
22725         enclosing object.
22726         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
22727         structures are initialized after all discriminants are set so that
22728         they can be accessed even when their offset is dynamic.
22729
22730 2005-11-14  Robert Dewar  <dewar@adacore.com>
22731             Hristian Kirtchev  <kirtchev@adacore.com>
22732
22733         * sem_attr.adb: Implement Machine_Rounding attribute
22734         (Analyze_Access_Attribute): The access attribute may appear within an
22735         aggregate that has been expanded into a loop.
22736         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
22737         'Terminated whenever the prefix is of a task interface class-wide type.
22738         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
22739         the prefix is of a task interface class-wide type.
22740
22741         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
22742         to avoid warnings.
22743
22744         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
22745         Remove pragma Inline for [Unaligned_]Valid.
22746         Add comments that Valid routines do not work for Vax_Float
22747
22748         * exp_attr.adb: Implement Machine_Rounding attribute
22749
22750         * snames.h: Add entry for Machine_Rounding attribute
22751
22752 2005-11-14  Javier Miranda  <miranda@adacore.com>
22753             Robert Dewar  <dewar@adacore.com>
22754             Hristian Kirtchev  <kirtchev@adacore.com>
22755
22756         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
22757         and related): For a prefix that is an explicit dereference of an
22758         access to unconstrained packed array type, annotate the dereference
22759         with an actual subtype so GIGI can make a correct size computation.
22760         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
22761         'Unrestricted_Access, if the designated type is an interface we
22762         add a type conversion to force the displacement of the pointer
22763         to the secondary dispatch table.
22764         Use Universal_Real instead of Long_Long_Float when we need a high
22765         precision float type for the generated code (prevents gratuitous
22766         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
22767         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
22768         'Terminated for task interface class-wide objects. Generate a call to
22769         the predefined dispatching routine used to retrieve the _task_id from
22770         a task corresponding record.
22771         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
22772
22773         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
22774         (Check_Dispatching_Operation): Protect the frontend againts
22775         previously detected errors.
22776
22777         * Makefile.rtl: Add new instantiations of system.fat_gen
22778
22779         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads:
22780         Change name of instantiated package for better consistency
22781         with newly added system.fat_gen instantiations.
22782
22783         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
22784         s-fvagfl.ads: New files.
22785
22786 2005-11-14  Cyrille Comar  <comar@adacore.com>
22787             Thomas Quinot  <quinot@adacore.com>
22788
22789         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
22790         assignment of a value of a tagged type that has been rewritten to a
22791         block statement, it is known by construction that no checks are
22792         necessary for the statements within the block: analyze it with checks
22793         suppressed.
22794         (Expand_N_If_Statement): When killing a dead then-branch in an
22795         if-statement that has elsif_parts, recompute the Current_Value node
22796         for any entity whose value is known from the condition of the first
22797         elsif_part.
22798         (Expand_N_Return_Statement): When returning a mutable record, convert
22799         the return value into its actual subtype in order to help the backend
22800         to return the actual size instead of the maximum. This is another
22801         aftermath of not returning mutable records on the sec-stack anymore.
22802
22803         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
22804         handling of error msg for suspicious reverse range iteration.
22805         (Check_Possible_Current_Value_Condition): Move declaration from body to
22806         spec, to allow this subprogram to be called from exp_ch5.
22807
22808 2005-11-14  Thomas Quinot  <quinot@adacore.com>
22809
22810         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
22811         generate a set of nested array aggregates instead of a single flat
22812         aggregate for multi-dimensional arrays.
22813
22814 2005-11-14  Pascal Obry  <obry@adacore.com>
22815
22816         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
22817         by spawnve is a process handle, no need to convert. Add a parameter
22818         close to control wether the process handle must be closed.
22819         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
22820         a process handle, not need to convert.
22821         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
22822
22823         * g-expect.adb: (Kill): Document the new close parameter.
22824         (Close): Do not release the process handle in the kill there as
22825         waitpid() is using it.
22826         (Send_Signal): Release the process handle.
22827
22828 2005-11-14  Robert Dewar  <dewar@adacore.com>
22829
22830         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
22831         need a high precision float type for the generated code (prevents
22832         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
22833         used).
22834
22835         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
22836         need a high precision float type for the generated code (prevents
22837         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
22838         used).
22839         (Expand_Width_Attribute): In configurable run-time, the attribute is not
22840         allowed on non-static enumeration subtypes. Force a load error to emit
22841         the correct diagnostic.
22842
22843 2005-11-14  Thomas Quinot  <quinot@adacore.com>
22844             Robert Dewar  <dewar@adacore.com>
22845             Ed Schonberg  <schonberg@adacore.com>
22846
22847         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
22848         subtype to compute the size of the designated object at run-time,
22849         create such a subtype and store it in the Actual_Designated_Subtype
22850         attribute of the N_Free_Statement.
22851         Generate itype for classwide designated object in both cases of
22852         user-specified storage pool: specific and class-wide, not only in the
22853         specific case.
22854         Raise CE when trying to set a not null access type object to null.
22855         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
22856         an explicit loop, because freeze nodes make its position variable.
22857
22858         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
22859         null object.
22860
22861 2005-11-14  Javier Miranda  <miranda@adacore.com>
22862
22863         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
22864         Build_Stream_Procedure): Add the null-excluding attribute to the first
22865         formal.
22866         This has no semantic meaning under Ada95 mode but it is a
22867         requirement under Ada05 mode.
22868
22869         * par-ch3.adb (P_Access_Definition): Addition of warning message if
22870         the null exclusion is used under Ada95 mode
22871         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
22872         (P_Access_Definition): Remove assertion that forbids the use of
22873         the null-exclusion feature in Ada95.
22874
22875 2005-11-14  Robert Dewar  <dewar@adacore.com>
22876
22877         * impunit.adb: Exclude container helper units not intended for use by
22878         users.
22879
22880 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
22881
22882         * freeze.adb (Freeze_Entity): For an access formal that is an access
22883         to subprogram, freeze the anonymous subprogram type at the same time,
22884         to prevent later freezing in the wrong scope, such as the enclosing
22885         subprogram body.
22886         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
22887         subprogram whenever available.
22888
22889 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
22890
22891         PR ada/23732
22892         * gnatvsn.ads (Library_Version): Bump to 4.1
22893
22894 2005-11-14  Robert Dewar  <dewar@adacore.com>
22895
22896         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
22897         Storage_Offset to avoid wrap around causing invalid results.
22898
22899 2005-11-14  Pascal Obry  <obry@adacore.com>
22900
22901         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
22902         cross-compiler.
22903         (Scan_Bind_Arg): Fail with an error message if -M option is used
22904         on a native compiler.
22905
22906 2005-11-14  Robert Dewar  <dewar@adacore.com>
22907             Vincent Celier  <celier@adacore.com>
22908
22909         * gprep.adb: Implement -C switch to scan comments
22910
22911         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
22912
22913         * scans.ads: Comment updates (including new use of Tok_Comment in
22914         preprocessing)
22915
22916         * opt.ads: Add documentation for flags that are used by gprmake,
22917         currently and in the next version of gprmake.
22918         (Verbosity_Level): New variable
22919         Add Replace_In_Comments switch
22920
22921         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
22922         and -vm.
22923         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
22924
22925 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
22926
22927         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
22928         message, friendlier.
22929
22930 2005-11-14  Robert Dewar  <dewar@adacore.com>
22931
22932         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
22933
22934 2005-11-14  Doug Rupp  <rupp@adacore.com>
22935
22936         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
22937
22938 2005-11-14  Robert Dewar  <dewar@adacore.com>
22939
22940         * interfac.ads: Change declarations of IEEE float types so that we no
22941         longer need a separate version of this package for VMS.
22942
22943 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
22944
22945         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
22946         internal entity created for the declaration of a child subprogram body
22947         with no spec as coming from source, to generate proper cross-reference
22948         information.
22949
22950 2005-11-14  Vincent Celier  <celier@adacore.com>
22951
22952         * make.adb (Compile_Sources): Change verbose message to minimum
22953         verbosity level High for "is in an Ada library", "is a read-only
22954         library" and "is an internal library",
22955         (Create_Binder_Mapping_File): Path name of ALI file for library project
22956         must include the library directory, not the object directory.
22957         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
22958         for new switches -vl, -vm and -vh.
22959         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
22960         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
22961         (Compile_Sources): Do not attempt to compile if an ALI file is missing
22962         in a project that is externally built.
22963         (Compute_All_Imported_Projects): New procedure
22964         (Gnatmake): Check if importing libraries should be regenerated because
22965         at least an imported library is more recent.
22966         (Initialize): For each project compute the list of the projects it
22967         imports directly or indirectly.
22968         (Add_Library_Search_Dir): New procedure, used in place of
22969         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
22970         put in the search paths.
22971         (Add_Source_Search_Dir): New procedure, used in place of
22972         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
22973         put in the search paths.
22974         (Mark_Directory): Resolve the absolute path the directory before marking
22975         it.
22976
22977         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
22978         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
22979         Switch. Do not handle any exception.
22980         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
22981         so that the switch is recognized as valid.
22982         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
22983
22984 2005-11-14  GNAT Script  <nobody@adacore.com>
22985
22986         * Make-lang.in: Makefile automatically updated
22987
22988 2005-11-14  Pascal Obry  <obry@adacore.com>
22989
22990         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
22991         used.
22992         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
22993         In both cases the last argument was dropped.
22994
22995 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
22996
22997         * namet.h: (Column_Numbe): New type.
22998         (Get_Column_Number): Define to sinput__get_column_number.
22999         (Instantiation): Define to sinput__instantiation.
23000         (Get_Column_Number): Declare.
23001         (Instantiation): Likewise.
23002
23003 2005-11-14  Robert Dewar  <dewar@adacore.com>
23004
23005         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
23006         syntax, which could cause compiler hangs.
23007
23008 2005-11-14  Vincent Celier  <celier@adacore.com>
23009
23010         * prj-ext.adb: Take into account new environment variable
23011         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
23012         are defined.
23013         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
23014         normalize its path name, making it absolute and resolving symbolic
23015         links, and replace the original if resolved path is different.
23016
23017 2005-11-14  Vincent Celier  <celier@adacore.com>
23018
23019         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
23020         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
23021
23022 2005-11-14  Emmanuel Briot  <briot@adacore.com>
23023
23024         * prj-pp.adb (Print): Do not output the with statement if the
23025         associated name is empty, which happens for virtual extending projects.
23026         (Print): Preserve the "extends all" attribute when printing the project.
23027
23028         * prj-tree.ads (String_Value_Of): Add comment about returned value for
23029         a virtual extending project.
23030
23031 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
23032
23033         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
23034         rhs of an assignment even if the type is unconstrained, when the
23035         context is non-expanding.
23036         In an inlined body, if the context type is private,
23037         resolve with its full view, which must be a composite type.
23038
23039 2005-11-14  Robert Dewar  <dewar@adacore.com>
23040             Ed Schonberg  <schonberg@adacore.com>
23041
23042         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
23043         Do not give obsolescent warning on with of subprogram (since we
23044         diagnose calls)
23045         (Analyze_With_Clause): Add test for obsolescent package
23046         (Install_Context_Clauses): If the unit is the body of a child unit, do
23047         not install twice the private declarations of the parents, to prevent
23048         circular lists of Use_Clauses in a parent.
23049         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
23050         compiling body of child unit.
23051         Use new class N_Subprogram_Instantiation
23052         (Expand_With_Clause): If this is a private with_clause for a child unit,
23053         appearing in the context of a package declaration, then the implicit
23054         with_clauses generated for parent units are private as well.
23055         (License_Check): Do not generate message if with'ed unit is internal
23056
23057 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
23058             Ed Schonberg  <schonberg@adacore.com>
23059             Thomas Quinot  <quinot@adacore.com>
23060
23061         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
23062         names are internal, because they will not have a corresponding partner
23063         in the actual package.
23064         (Analyze_Formal_Package): Move the setting of the formal package spec's
23065         Generic_Parent field so that it occurs prior to analyzing the package,
23066         to allow proper operation of Install_Parent_Private_Declarations.
23067         (Analyze_Package_Instantiation): Set the instantiated package entity's
23068         Package_Instantiation field.
23069         (Get_Package_Instantiation_Node): Move declaration to package spec.
23070         Retrieve the N_Package_Instantiation node when the Package_Instantiation
23071         field is present.
23072         (Check_Generic_Child_Unit): Within an inlined call, the only possible
23073         instantiation is Unchecked_Conversion, for which no parents are needed.
23074         (Inline_Instance_Body): Deinstall and record the use_clauses for all
23075         parent scopes of a scope being removed prior to inlining an instance
23076         body.
23077         (Analyze_Package_Instantiation): Do not perform front-end inlining when
23078         the current context is itself an instance within a non-instance child
23079         unit, to prevent scope stack errors.
23080         (Save_References): If the node is an aggregate that is an actual in a
23081         call, rewrite as a qualified expression to preserve some type
23082         information, to resolve possible ambiguities in the instance.
23083         (Instance_Parent_Unit): New global variable to record the ultimate
23084         parent unit associated with a generic child unit instance (associated
23085         with the existing Parent_Unit_Visible flag).
23086         (type Instance_Env): New component Instance_Parent_Unit for stacking
23087         parents recorded in the global Instance_Parent_Unit.
23088         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
23089         stack.
23090         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
23091         it's not a top-level unit, and only do this if Instance_Parent_Unit is
23092         not already set. Replace test of Is_Child_Unit with test of parent's
23093         scope against package Standard. Add comments and a ??? comment.
23094         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
23095         on a child instance parent to test that the parent equals
23096         Instance_Parent rather than simply checking that the unit is not a
23097         child unit.
23098         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
23099         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
23100         a formal interface are ancestors of the corresponding actual.
23101         (Validate_Formal_Interface_Type): Additional legality checks.
23102         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
23103         interface types with ancestors.
23104         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
23105         to diagnose attempts to use generic within its own declaration.
23106
23107 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
23108             Javier Miranda  <miranda@adacore.com>
23109
23110         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
23111         discriminant.
23112         (Build_Private_Derived_Type): The entity of the created full view of the
23113         derived type does not come from source. If after installing the private
23114         declarations of the parent scope the parent is still private, use its
23115         full view to construct the full declaration of the derived type.
23116         (Build_Derived_Record_Type): Relax the condition that controls the
23117         execution of the check that verifies that the partial view and
23118         the full view agree in the set of implemented interfaces. In
23119         addition, this test now only takes into account the progenitors.
23120         (Derive_Interface_Subprograms): No need to derive subprograms
23121         of ancestors that are interfaces.
23122         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
23123         associated code.
23124         Change name Is_Package to Is_Package_Or_Generic_Package
23125         (Complete_Subprograms_Derivation): Handle the case in which the full
23126         view is a transitive derivation of the ancestor of the partial view.
23127         (Process_Full_View): Rename local subprogram Find_Interface_In_
23128         Descendant to Find_Ancestor_Interface to leave the code more clear.
23129         Remove wrong code that avoids the generation of an error message
23130         when the immediate ancestor of the partial view is an interface.
23131         In addition some minor reorganization of the code has been done to
23132         leave it more clear.
23133         (Analyze_Type_Declaration): If type has previous incomplete tagged
23134         partial view, inherit properly its primitive operations.
23135         (Collect_Interfaces): Make public, for analysis of formal
23136         interfaces.
23137         (Analyze_Interface_Declaration): New procedure for use for regular and
23138         formal interface declarations.
23139         (Build_Derived_Record_Type): Add support for private types to the code
23140         that checks if a tagged type implements abstract interfaces.
23141         (Check_Aliased_Component_Type): The test applies in the spec of an
23142         instance as well.
23143         (Access_Type_Declaration): Clean up declaration of malformed type
23144         declared as an access to its own classwide type, to prevent cascaded
23145         crash.
23146         (Collect_Interfaces): For private extensions and for derived task types
23147         and derived protected types, the parent may be an interface that must
23148         be included in the interface list.
23149         (Access_Definition): If the designated type is an interface that may
23150         contain tasks, create Master_Id for it before analyzing the expression
23151         of the declaration, which may be an allocator.
23152         (Record_Type_Declaration): Set properly the interface kind, for use
23153         in allocators, the creation of master id's for task interfaces, etc.
23154
23155 2005-11-14  Javier Miranda  <miranda@adacore.com>
23156             Ed Schonberg  <schonberg@adacore.com>
23157
23158         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
23159         omitted in case of stream attribute subprograms.
23160         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
23161         appear immediately after a subprogram body, when there is no previous
23162         subprogram declaration.
23163         Change name Is_Package to Is_Package_Or_Generic_Package
23164         (Process_Formals): A non null qualifier on a non null named access
23165         type is not an error, and is a warning only if Redundant_Constructs
23166         are flagged.
23167
23168 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
23169             Ed Schonberg  <schonberg@adacore.com>
23170
23171         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
23172         nested within Analyze_Package_Specification to install the private
23173         declarations and use clauses within each of the parent units of a
23174         package instance of a generic child package.
23175         (Analyze_Package_Specification): When entering a private part of a
23176         package associated with a generic instance or formal package, the
23177         private declarations of the parent must be installed (by calling new
23178         procedure Install_Parent_Private_Declarations).
23179         Change name Is_Package to Is_Package_Or_Generic_Package
23180         (Preserve_Full_Attributes): For a synchronized type, the corresponding
23181         record is absent in a generic context, which does not indicate a
23182         compiler error.
23183
23184 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
23185
23186         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
23187         not try to rewrite a renamed stream attribute, because the operations
23188         on the type may not have been generated.
23189         Handle properly a renaming_as_body generated for a stream operation
23190         whose default is abstract because the object type itself is abstract.
23191         (Find_Type): If the type is incomplete and appears as the prefix of a
23192         'Class reference, it is tagged, and its list of primitive operations
23193         must be initialized properly.
23194         (Chain_Use_Clauses): When chaining the use clauses that appear in the
23195         private declaration of a parent unit, prior to compiling the private
23196         part of a child unit, find on the scope stack the proper parent entity
23197         on which to link the use clause.
23198         (Note_Redundant_Use): Emit a warning when a redundant use clause is
23199         detected.
23200         (Analyze_Object_Renaming): An attribute reference is not a legal object
23201         if it is not a function call.
23202
23203 2005-11-14  Robert Dewar  <dewar@adacore.com>
23204             Ed Schonberg  <schonberg@adacore.com>
23205
23206         * sem_eval.adb: Implement d.f flag
23207         (Subtype_Statically_Match): A generic actual type has unknown
23208         discriminants when the corresponding actual has a similar partial view.
23209         If the routine is called to validate the signature of an inherited
23210         operation in a child instance, the generic actual matches the full view,
23211
23212 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
23213             Ed Schonberg  <schonberg@adacore.com>
23214             Robert Dewar  <dewar@adacore.com>
23215             Thomas Quinot  <quinot@adacore.com>
23216
23217         * sem_res.adb (Resolve_Call): Provide a better error message whenever
23218         a procedure call is used as a select statement trigger and is not an
23219         entry renaming or a primitive of a limited interface.
23220         (Valid_Conversion): If the operand has a single interpretation do not
23221         remove address operations.
23222         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
23223         statement to inhibit warning.
23224         (Resolve_Unary_Op): Do not produce a warning when
23225         processing an expression of the form -(A mod B)
23226         Use Universal_Real instead of Long_Long_Float when we need a high
23227         precision float type for the generated code (prevents gratuitous
23228         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
23229         (Resolve_Concatenation_Arg): Improve error message when argument is an
23230         ambiguous call to a function that returns an array.
23231         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
23232         there is an implicit operator in the given scope if we are within an
23233         instance: legality check has been performed on the generic.
23234         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
23235         after resolving operand, to avoid false warnings on overloaded calls.
23236
23237 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
23238             Javier Miranda  <miranda@adacore.com>
23239
23240         PR ada/15604
23241         * sem_type.adb (Covers): In an inlined body, a composite type matches
23242         a private type whose full view is a composite type.
23243         (Interface_Present_In_Ancestor): Protect the frontend against
23244         previously detected errors to ensure that its compilation
23245         with assertions enabled gives the same output that its
23246         compilation without assertions.
23247         (Interface_Present_In_Ancestor): Add support for private types.
23248         Change name In_Actual to In_Generic_Actual (clean up)
23249         (Disambiguate): New predicate In_Actual, to recognize expressions that
23250         appear in the renaming declaration generated for generic actuals, and
23251         which must be resolved in the outer context.
23252
23253 2005-11-14  Robert Dewar  <dewar@adacore.com>
23254             Thomas Quinot  <quinot@adacore.com>
23255             Hristian Kirtchev  <kirtchev@adacore.com>
23256             Ed Schonberg  <schonberg@adacore.com>
23257
23258         * sem_util.ads, sem_util.adb: Change name Is_Package to
23259         Is_Package_Or_Generic_Package.
23260         (Check_Obsolescent): New procedure.
23261         (Set_Is_Public): Remove obsolete junk test.
23262         (Set_Public_Status): Do not set Is_Public on an object whose declaration
23263         occurs within a handled_sequence_of_statemets.
23264         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
23265         for a parameterless procedure.
23266         (Enter_Name): Recognize renaming declarations created for private
23267         component of a protected type within protected operations, so that
23268         the source name of the component can be used in the debugger.
23269
23270 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
23271             Robert Dewar  <dewar@adacore.com>
23272
23273         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
23274         of a generic subprogram are not visible outside the body.
23275         (Set_Warning_Switch): New procedure (code to set warning mode moved
23276         here from Switch.C so that it can be shared by pragma processing.
23277         (Check_References): Special case warning for non-modified non-imported
23278         volatile objects.
23279         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
23280         form with a string literal argument
23281
23282 2005-11-14  Javier Miranda  <miranda@adacore.com>
23283
23284         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
23285         anonymous access.
23286         (Write): Addition of "not null" to the anonymous access.
23287         (Read): Addition of "not null" to the anonymous access.
23288         (Write): Addition of "not null" to the anonymous access.
23289
23290         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
23291         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
23292         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
23293         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
23294         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
23295         "not null" to the anonymous access.
23296
23297 2005-11-14  Robert Dewar  <dewar@adacore.com>
23298
23299         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
23300         offset values
23301
23302 2005-11-14  Vincent Celier  <celier@adacore.com>
23303
23304         * switch.adb (Bad_Switch): New procedure
23305         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
23306         message when in error.
23307
23308         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
23309         Too_Many_Output_Files): Remove declarations, no longer used.
23310         (Scan_Nat): New parameter Switch
23311         (Scan_Pos): Ditto
23312         (Bad_Switch): New procedure
23313
23314         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
23315         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
23316         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
23317         to Osint.Fail. Do not handle any exception.
23318
23319 2005-11-14  Vincent Celier  <celier@adacore.com>
23320
23321         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
23322         designates a non existent directory.
23323
23324 2005-11-14  Robert Dewar  <dewar@adacore.com>
23325
23326         * xgnatugn.adb: Replace invalid membership test by 'Valid
23327
23328 2005-11-14  Vincent Celier  <celier@adacore.com>
23329
23330         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
23331         there is no object directory.
23332
23333 2005-11-14  Robert Dewar  <dewar@adacore.com>
23334
23335         * usage.adb: Minor adjustment to output format, use nn instead of nnn
23336         (so that -gnateInnn does not run into next column)
23337
23338 2005-11-14  Ed Falis  <falis@adacore.com>
23339
23340         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
23341         "constrained"
23342
23343 2005-11-14  Cyrille Comar  <comar@adacore.com>
23344
23345         * s-chepoo.ads: Add comments on Dereference.
23346         Remove unnecessary inherited abstract primitives.
23347         Cosmetic cleanup.
23348
23349 2005-11-14  Robert Dewar  <dewar@adacore.com>
23350
23351         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
23352         node parameter, not needed, since it is available as Declaration_Node.
23353
23354 2005-11-14  Geert Bosch  <bosch@adacore.com>
23355
23356         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
23357         grammatically correct.
23358
23359 2005-11-14  Vincent Celier  <celier@adacore.com>
23360
23361         * s-fileio.ads: Correct spelling error in comment
23362
23363 2005-11-14  Cyrille Comar  <comar@adacore.com>
23364             Robert Dewar  <dewar@adacore.com>
23365             Vincent Celier  <celier@adacore.com>
23366             Ben Brosgol  <brosgol@adacore.com>
23367             Jose Ruiz  <ruiz@adacore.com>
23368             Pascal Obry  <obry@adacore.com>
23369
23370         * gnat_ugn.texi:
23371         Document that -fstack-check is needed for strict compliance with the
23372         Ada 95 Reference Manual.
23373         Correct reference to VAX systems to meet HP guidelines
23374         Add documentation for new gnatmake switches -vl, -vm and -vh
23375         Replace DEC Ada by HP Ada
23376         Replace DIGITAL by HP
23377         Remove empty section on tools in compatibility section
23378         Clarify the Windows convention semantics.
23379         Document the Win32 calling convention.
23380         The Stdcall, Win32 and DLL convention are synonyms.
23381         Add a note in -gnatR description about zero size record components
23382         Note on new >= and <= warnings for -gnatwc
23383         Document that equal sign after -gnatm is optional.
23384         Note that strip is working fine on DLL built with a Library
23385         Project. The restriction apply only to DLL built with gnatdll.
23386         Update section about the way to debug a DLL.
23387         Update information about the DLL convention.
23388         Document -C switch for gnatprep
23389         Document new attribute Library_ALI_Dir
23390         Update elaboration doc to include implicit Elaborate pragmas now
23391         generated for subprogram instantiations.
23392         Document limitation on executable names that include spaces for --GCC,
23393         --GNATBIND, and --GNATLINK switches.
23394         Document that -w causes -gnatws to be added at start of gcc switches
23395
23396         * gnat_rm.texi: Document that -mieee is needed for generating infinite
23397         and NaN values in case of overflow on machines that are not fully
23398         compliant with the IEEE floating-point standard.
23399         Create a section describing the set of compiler options needed for
23400         strict compliance with the Ada 95 Reference Manual.
23401         Add documentation for pragma Obsolescent applied to a package
23402         Clarify potential issues of mixed language programs related to the
23403         I/O buffering enabling in the elaboration of the GNAT runtime.
23404         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
23405         This documentation only patch adds extra documentsion for pragma
23406         Restrictions (No_Elaboration_Code), explaining why it is not possible
23407         to document this restriction in terms of allowed source constructs.
23408         Document string literal form of pragma Warnings
23409         Document new attribute Library_ALI_Dir
23410         Add documentation on stable attributes in project files that was missing
23411
23412         * gnat-style.texi: Indicate that paragraphs within a single comment
23413         should be separated by empty comment lines
23414
23415         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
23416         /05 respectively)
23417
23418         * bindusg.adb: Minor cleanup, put -m before -M for consistency
23419
23420 2005-11-14  Robert Dewar  <dewar@adacore.com>
23421
23422         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
23423         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
23424         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
23425         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
23426         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
23427         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
23428         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
23429         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
23430         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
23431         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
23432         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
23433         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
23434         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
23435         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
23436         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
23437         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
23438         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
23439         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
23440         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
23441         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
23442         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
23443         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
23444         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
23445         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
23446         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
23447         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
23448         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
23449         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
23450         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
23451         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
23452         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
23453         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
23454         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
23455         system-interix.ads, system-solaris-sparc.ads,
23456         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
23457         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
23458         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
23459         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
23460         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
23461         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
23462         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
23463         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
23464         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
23465         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
23466         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
23467         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
23468         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
23469         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
23470         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
23471         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
23472         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
23473         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
23474         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
23475         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
23476         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
23477         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
23478         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
23479         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
23480         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
23481         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
23482         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
23483         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
23484         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
23485         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
23486         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
23487         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
23488         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
23489         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
23490         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
23491         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
23492         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
23493         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
23494         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
23495         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
23496         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
23497         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
23498         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
23499         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
23500         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
23501         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
23502         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
23503         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
23504         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
23505         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
23506         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
23507         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
23508         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
23509         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
23510         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
23511         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
23512         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
23513         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
23514         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
23515         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
23516         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
23517         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
23518         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
23519         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
23520         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
23521         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
23522         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
23523         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
23524         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
23525         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
23526         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
23527         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
23528         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
23529         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
23530         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
23531         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
23532         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
23533         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
23534         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
23535         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
23536         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
23537         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
23538         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
23539         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
23540         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
23541         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
23542         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
23543         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
23544         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
23545         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
23546         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
23547         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
23548         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
23549         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
23550         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
23551         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
23552         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
23553         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
23554         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
23555         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
23556         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
23557         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
23558         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
23559         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
23560         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
23561         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
23562         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
23563         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
23564         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
23565         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
23566         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
23567         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
23568         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
23569         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
23570         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
23571         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
23572         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
23573         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
23574         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
23575         a-numaux-darwin.ads, a-numaux-darwin.adb,
23576         a-swuwha.ads, a-stunha.ads: Minor reformatting
23577
23578 2005-11-14  Robert Dewar  <dewar@adacore.com>
23579
23580         PR ada/18434
23581         * osint-m.adb: Add pragma Elaborate_All for Osint
23582
23583 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
23584
23585         PR ada/23995
23586         * trans.c (call_to_gnu): Restore statement lost in translation.
23587
23588 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
23589
23590         * init.c: Use the Linux-specific section for the IA-64/Linux target.
23591         (__gnat_adjust_context_for_raise): Add conditional code so that the
23592         IA-64 is also supported.
23593
23594 2005-11-03  James E Wilson  <wilson@specifix.com>
23595
23596         PR ada/23427
23597         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
23598         TREE_OVERFLOW check.
23599
23600 2005-09-21  Olivier Hainque  <hainque@adacore.com>
23601
23602         PR ada/22418
23603         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
23604         as we create them to store a size in bits.
23605
23606 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
23607
23608         PR ada/21937
23609         PR ada/22328
23610         PR ada/22381
23611         PR ada/22383
23612         PR ada/22419
23613         PR ada/22420
23614         * utils2.c (build_return_expr): New helper function.
23615         * gigi.h (build_return_expr): Declare it.
23616         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
23617         of manually building the RETURN_EXPR tree.
23618         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
23619         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
23620         build_binary_op for the "target pointer" case.  Use build_return_expr
23621         instead of manually building the RETURN_EXPR tree.
23622
23623 2005-09-16  Laurent Guerby  <laurent@guerby.net>
23624
23625         PR ada/23788
23626         * s-tpinop.ads: Make this unit Preelaborate.
23627
23628 2005-09-16  Andreas Jaeger  <aj@suse.de>
23629
23630         * socket.c: Add string.h for memcpy.
23631
23632 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
23633
23634         * dec-io.ads, dec-io.adb: Removed, no longer used.
23635
23636 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
23637
23638         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
23639
23640         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
23641         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
23642         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
23643         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
23644         dependent units are Preelaborate.
23645         (Initialize): Call Interrupt_Managemeent.Initialize and
23646         OS_Primitives.Initialize to ensure proper initialization of this unit.
23647         Remove use of System.Soft_Links
23648         Make this unit Preelaborate.
23649
23650         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
23651         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
23652         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
23653         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
23654         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
23655         s-tratas.ads, s-tasinf.ads: Minor reformatting.
23656         Add pragma Preelaborate, since these packages are suitable for this
23657         categorization.
23658         Update comments.
23659
23660         * s-traent-vms.ads, s-intman-dummy.adb,
23661         s-taprop-dummy.adb: Make this unit Preelaborate.
23662
23663         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
23664         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
23665         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
23666         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
23667         s-intman-solaris.adb, s-intman-irix-athread.adb,
23668         s-intman-irix.adb: Mark this unit Preelaborate.
23669         (Initialize): New procedure.
23670         Update comments.
23671
23672         * s-taspri-linux.ads: Removed.
23673
23674         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
23675         as done by other implementations (e.g. posix).
23676
23677         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
23678         responsible for deferring abort.
23679         Mark this unit Preelaborate.
23680
23681         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
23682         proper initialization of the tasking run-time.
23683
23684         * s-tasdeb.ads: Mark this unit Preelaborate.
23685         (Known_Tasks): Add explicit default value to avoid elaboration code.
23686
23687         * s-inmaop-vms.adb (Elaboration code): Add call to
23688         Interrupt_Management.Initialize since the elaboration code depends on
23689         proper initialization of this package.
23690
23691         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
23692         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
23693         s-osprim-posix.adb: Make this unit Preelaborate.
23694
23695         * a-calend.adb: Add call to OS_Primitives.Initialize
23696
23697         * a-elchha.adb: Update use of Except.Id.Full_Name.
23698         Minor reformatting.
23699         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
23700
23701         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
23702         Move with clauses outside Warnings Off now that dependent units are
23703         Preelaborate.
23704         Use raise xxx with "..."; Ada 2005 form.
23705
23706         * a-taside.ads, a-taside.adb:
23707         Remove some dependencies, to make it easier to make this unit truly
23708         Preelaborate.
23709         Rewrite some code to be conformant with Preelaborate rules.
23710
23711         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
23712         marked Preelaborate in the future.
23713
23714         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
23715         these units Preelaborate.
23716
23717         * s-exctab.adb: Update use of Except.Id.Full_Name.
23718
23719         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
23720         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
23721         Set_Exc_Stack_Addr): Removed, no longer used.
23722         Remove reference to *Machine_State_Addr*, no longer needed.
23723
23724         * s-stalib.ads: Mark this unit as Preelaborate[_05].
23725         (Exception_Data): Full_Name is now a System.Address so that this unit
23726         can be made Preelaborate.
23727         Clean up/simplify code thanks to Full_Name being a System.Address.
23728         Remove obsolete pragma Suppress (All_Checks), no longer needed.
23729
23730         * s-taskin.ads, s-taskin.adb:
23731         Move with clauses outside Warnings Off now that dependent units are
23732         Preelaborate.
23733         Make this unit Preelaborate.
23734         (Initialize): New proceduure, replace elaboration code and makes the
23735         set up of the tasking run-time cleaner.
23736         (Detect_Blocking): Now a function instead of a deferred boolean, to
23737         obey Preelaborate rules.
23738
23739         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
23740         soft links, no longer used.
23741
23742         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
23743         packages are suitable for this categorization.
23744
23745         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
23746         since we compile run-time sources in Ada 2005 mode.
23747         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
23748         avoid having s-taprop*.adb depend on s-soflin and to avoid code
23749         duplication.
23750         Remove reference to *Machine_State_Addr*, no longer needed.
23751
23752 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
23753
23754         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
23755         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
23756         Remove reference to System.Exceptions.
23757
23758         * s-mastop-x86.adb: Removed, no longer used.
23759
23760         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
23761
23762         * a-excach.adb: Minor reformatting.
23763
23764         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
23765         instead fix new warnings that were hidden by this change.
23766         (AAA, ZZZ): Removed, replaced by...
23767         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
23768         are used instead of constants, to help make Ada.Exception truly
23769         preelaborate.
23770         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
23771         Raise_Storage_Error): File is now a System.Address, to simplify code.
23772         (Elab code): Removed, no longer used.
23773         (Null_Occurrence): Remove Warnings Off and make this construct
23774         preelaborate.
23775         Remove code related to front-end zero cost exception handling, since
23776         it is no longer used.
23777         Remove -gnatL/-gnatZ switches.
23778
23779         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
23780         Update use of Except.Msg.
23781
23782         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
23783         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
23784         to front-end zero cost exception handling, since it is no longer used.
23785         Remove -gnatL/-gnatZ switches.
23786
23787         * lib-writ.ads: Minor reformatting
23788         Remove doc of UX
23789
23790         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
23791
23792         * Make-lang.in: Remove references to s-except.ads
23793
23794         * s-except.ads: Removed, no longer used.
23795
23796         * s-mastop.ads, s-mastop.adb:
23797         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
23798         Remove reference to System.Exceptions.
23799
23800         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
23801         switch-b.adb: Remove code related to front-end zero cost exception
23802         handling, since it is no longer used.
23803         Remove -gnatL/-gnatZ switches.
23804
23805 2005-09-01  Robert Dewar  <dewar@adacore.com>
23806             Gary Dismukes  <dismukes@adacore.com>
23807             Javier Miranda  <miranda@adacore.com>
23808
23809         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
23810         type by valid test and generate warning.
23811         (Tagged_Membership): Generate call to the run-time
23812         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
23813         Change formal name Subtype_Mark to Result_Definition in several calls to
23814         Make_Function_Specification.
23815         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
23816         check for proper accessibility of the operand of a class-wide allocator.
23817         The check can be left out if checks are suppressed or if the expression
23818         has a specific tagged type whose level is known to be safe.
23819
23820         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
23821         generates the run-time check associated with null-excluding entities.
23822         (Expand_N_Return_Statement): Add tests to determine if the accessibility
23823         check on the level of the return expression of a class-wide function
23824         can be elided. The check usually isn't needed if the expression has a
23825         specific type (unless it's a conversion or a formal parameter). Also
23826         add a test for whether accessibility checks are suppressed. Augment
23827         the comments to describe the conditions for performing the check.
23828
23829 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
23830             Javier Miranda  <miranda@adacore.com>
23831             Gary Dismukes  <dismukes@adacore.com>
23832             Ed Schonberg  <schonberg@adacore.com>
23833
23834         * a-tags.adb (IW_Membership): Give support to
23835         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
23836         subprogram has been extended to look for the tag in the ancestors tag
23837         table.
23838         Update the structure of the GNAT Dispatch Table to reflect the
23839         additional two tables used in dispatching selects.
23840         Introduce appropriate array types and record components in
23841         Type_Specific_Data to reflect the two tables.
23842         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
23843         the TSD of a tag, indexed by position.
23844         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
23845         operation kind in the TSD of a tag, indexed by position.
23846
23847         * a-tags.ads: Introduce an enumeration type to capture different
23848         primitive operation kinds. Define a constant reflecting the number of
23849         predefined primitive operations.
23850         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
23851         of an entry wrapper.
23852         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
23853         callable entity of a primitive operation.
23854
23855         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
23856         primitive operations used in dispatching selects for limited
23857         interfaces, limited tagged, task and protected types what implement a
23858         limited interface.
23859         (Freeze_Type): Generate the bodies of the primitive operations used in
23860         dispatching selects for limited tagged, task and protected types that
23861         implement a limited interface. Generate statements to populate the two
23862         auxiliary tables used for dispatching in select statements.
23863         (Freeze_Record_Type): Add call to initialize the dispatch table entries
23864         associated with predefined interface primitive operations.
23865         (Build_Dcheck_Function): Change Set_Subtype_Mark to
23866         Set_Result_Definition.
23867         (Build_Variant_Record_Equality): Change Subtype_Mark to
23868         Result_Definition.
23869         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
23870         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
23871         (Build_Assignment): Simplify the code that adds the run-time-check.
23872         (Expand_N_Object_Declaration): Code cleanup.
23873
23874         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
23875         entries when there is a protected type that implements a limited
23876         interface.
23877
23878         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
23879         common routines used in expansion of dispatching selects.
23880         (Add_Private_Declarations): Select the appropriate protection type when
23881         there is a protected type that implements a limited interface.
23882         (Build_Parameter_Block): Generate a wrapped parameter block.
23883         (Build_Protected_Subprogram_Body): Select the appropriate type for
23884         locking entries when there is a protected type that implements a
23885         limited interface.
23886         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
23887         classified as entry wrappers.
23888         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
23889         asynchronous selects.
23890         (Expand_N_Conditional_Entry_Call): Add support for expansion of
23891         dispatching conditional selects.
23892         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
23893         protection when there is a protected type that implements limited
23894         interfaces.
23895         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
23896         timed selects.
23897         (Extract_Dispatching_Call): Extract the entity of the name of a
23898         dispatching call, the object parameter, actual parameters and
23899         corresponding formals.
23900         (Make_Initialize_Protection): Correct logic of protection initialization
23901         when there is a protected type that implements a limited interface.
23902         (Parameter_Block_Pack): Populate a wrapped parameter block with the
23903         values of actual parameters.
23904         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
23905         block and assign them to the original actual parameters.
23906
23907         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
23908         (Build_Protected_Sub_Specification): Change the type and name of the
23909         last formal to account for the increased variety of protection modes.
23910
23911         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
23912         entities. Used to save the value of the Is_Hidden attribute when the
23913         limited-view is installed.
23914         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
23915         the attribute of procedures classified as entry wrappers.
23916         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
23917         entity of a primitive wrapper.
23918         (Write_Entity_Flags): Output the name and value of the
23919         Is_Primitive_Wrapper attribute.
23920         (Write_Field27_Name): Output the name and entity of the field Wrapped_
23921         Entity.
23922         (Underlying_Type): If we have an incomplete entity that comes from
23923         the limited view then we return the Underlying_Type of its non-limited
23924         view if it is already available.
23925         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
23926         including operators.
23927         (Write_Field26_Name): Add entry for Overridden_Operation
23928         (Overridden_Operation): New attribute of functions and procedures.
23929
23930         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
23931         predefined position in the dispatch table for the primitive operations
23932         used in dispatching selects.
23933         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
23934         predefined primitive operations and replace it with
23935         Default_Prim_Op_Count.
23936         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
23937         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
23938         the names of the generated primitive operations used in dispatching
23939         selects.
23940         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
23941         case of abstract interface types. They will be inherit by the objects
23942         implementing the interface.
23943         (Make_DT): There is no need to inherit the dispatch table of the
23944         ancestor interface for the elaboration of abstract interface types.
23945         The dispatch table will be inherited by the object implementing the
23946         interface.
23947         (Copy_Secondary_DTs): Add documentation.
23948         (Validate_Position): Improve this static check in case of
23949         aliased subprograms because aliased subprograms must have
23950         the same position.
23951         (Init_Predefined_Interface_Primitives): New subprogram that initializes
23952         the entries associated with predefined primitives of all the secondary
23953         dispatch tables.
23954         (Build_Anonymous_Access_Type): Removed.
23955         (Expand_Interface_Actuals): With the previous cleanup there is no need
23956         to build an anonymous access type. This allows further cleanup in the
23957         code generated by the expander.
23958         (Expand_Interface_Conversion): If the actual is an access type then
23959         build an internal function to handle the displacement. If the actual
23960         is null this function returns null because no displacement is
23961         required; otherwise performs a type conversion that will be
23962         expanded in the code that returns the value of the displaced actual.
23963         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
23964         conversions that have no effect in the generated code because no
23965         displacement is required. Code cleanup; use local variables to
23966         avoid repeated calls to the subprogram directly_designated_type().
23967
23968         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
23969         Classify the primitive operations used in dispatching selects as
23970         predefined.
23971         (Implements_Limited_Interface): Determine whether some type either
23972         directly implements a limited interface or extends a type that
23973         implements a limited interface.
23974         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
23975         (Expand_Subtype_From_Expr): Do not build actual subtype if the
23976         expression is limited.
23977         (Find_Interface_Tag): Add code to handle class-wide types and
23978         entities from the limited-view.
23979
23980         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
23981         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
23982         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
23983         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
23984         Set_Prim_Op_Kind.
23985
23986         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
23987         of procedure name or prefix that appears as a trigger in a triggering
23988         alternative.
23989
23990         * uintp.ads: Introduce constants Uint_11 and Uint_13.
23991
23992 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
23993
23994         * s-tataat.adb, a-tasatt.adb:
23995         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
23996
23997         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
23998         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
23999         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
24000         longer used.
24001
24002 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
24003             Jose Ruiz  <ruiz@adacore.com>
24004
24005         * s-taprop-vxworks.adb:
24006         Move with clauses outside Warnings Off now that dependent units are
24007         Preelaborate.
24008         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
24009         initialization of this unit.
24010         (Specific): Add new procedures Initialize and Delete so that this
24011         package can be used for VxWorks 5.x and 6.x
24012         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
24013         differences between VxWorks 5.x and 6.x
24014         Minor reformatting.
24015         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
24016         caller.
24017         Use only Preelaborate-compatible constructs.
24018
24019         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
24020         Primitives.Operations.
24021         (Delete, Initialize): New procedures.
24022
24023         * s-osinte-vxworks.adb: Body used to handle differences between
24024         VxWorks 5.x and 6.x
24025         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
24026
24027         * s-osinte-vxworks.ads: Minor reformatting.
24028         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
24029         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
24030         and 6.
24031         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
24032         between Vxworks 5 and 6.
24033         (taskLock, taskUnlock): Removeed, no longer used.
24034
24035         * adaint.c: The wait.h header is not located in the sys directory on
24036         VxWorks when using RTPs.
24037         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
24038         using RTPs.
24039         (__gnat_dup): dup is available on Vxworks when using RTPs.
24040         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
24041
24042         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
24043
24044         * expect.c: The wait.h header is not located in the sys directory on
24045         VxWorks when using RTPs.
24046
24047 2005-09-01  Thomas Quinot  <quinot@adacore.com>
24048
24049         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
24050
24051         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
24052
24053         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
24054         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
24055         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
24056         g-soccon-freebsd.ads: Add new constants:
24057          IP_MULTICAST_IF
24058          SO_RCVTIMEO/SO_SNDTIMEO
24059          IOV_MAX
24060
24061         * gen-soccon.c:
24062         Move all target-specific file inclusions and macro definitions to
24063         gsocket.h, in order to ensure that any C code in socket.c will see a
24064         set of constants that is consistent with the contents of g-soccon.ads.
24065
24066         * gsocket.h: Code imported from gen-soccon.c:
24067         Move all target-specific file inclusions and macro definitions to
24068         gsocket.h, in order to ensure that any C code in socket.c will see a set
24069         of constants that is consistent with the contents of g-soccon.ads.
24070         This change also makes gen-soccon self-contained (removing dependencies
24071         upon GCC internal headers).
24072
24073         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
24074         iovecs at a time.
24075         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
24076
24077         * socket.c: Minor reformatting.
24078
24079 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24080             Thomas Quinot  <quinot@adacore.com>
24081
24082         * fname-sf.adb, mlib-tgt.ads,
24083         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
24084         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
24085         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
24086         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
24087         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
24088         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
24089         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
24090         makegpr.adb: Remove redundant use_clauses.
24091
24092 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
24093
24094         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
24095         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
24096         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
24097         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
24098         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
24099         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
24100         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
24101         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
24102         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
24103         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
24104         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
24105         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
24106         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
24107         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
24108         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
24109         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
24110         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
24111         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
24112         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
24113         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
24114         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
24115         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
24116         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
24117         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
24118         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
24119         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
24120         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
24121         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
24122         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
24123         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
24124         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
24125         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
24126         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
24127         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
24128         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
24129         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
24130         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
24131         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
24132         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
24133         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
24134         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
24135         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
24136         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
24137         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
24138         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
24139         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
24140         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
24141         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
24142         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
24143         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
24144         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
24145         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
24146         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
24147         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
24148         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
24149         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
24150         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
24151         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
24152         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
24153         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
24154         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
24155         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
24156         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
24157         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
24158         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
24159         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
24160         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
24161         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
24162         and always use the no parameter form for consistency.
24163
24164         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
24165
24166 2005-09-01  Robert Dewar  <dewar@adacore.com>
24167
24168         * binde.adb: Minor reformatting
24169         (Find_Elab_Order): Output warning if -p used with static elab order
24170
24171 2005-09-01  Robert Dewar  <dewar@adacore.com>
24172
24173         * checks.adb (Check_Needed): New procedure, deals with removing checks
24174         based on analysis of short-circuited forms. Also generates warnings for
24175         improper use of non-short-circuited forms.
24176         Code clean ups.
24177
24178 2005-09-01  Robert Dewar  <dewar@adacore.com>
24179
24180         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
24181         with 'Valid tests.
24182
24183 2005-09-01  Robert Dewar  <dewar@adacore.com>
24184
24185         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
24186         spec.
24187         Implement new insertion char < (conditional warning)
24188         * errutil.adb, erroutc.adb: Implement new insertion char <
24189         (conditional warning).
24190         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
24191         (Error_Msg_Warn): New variable for < insertion char.
24192         * prj-nmsc.adb: Implement new errout insertion char < (conditional
24193         warning).
24194         (Check_For_Source): Change value of Source_Id only after the current
24195         source has been dealt with.
24196
24197 2005-09-01  Robert Dewar  <dewar@adacore.com>
24198             Doug Rupp  <rupp@adacore.com>
24199
24200         * exp_attr.adb: Handle vax fpt for 'Valid attribute
24201         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
24202         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
24203         (Valid_D, Valid_F, Valid_G): New functions
24204
24205 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24206             Hristian Kirtchev  <kirtchev@adacore.com>
24207             Javier Miranda  <miranda@adacore.com>
24208
24209         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
24210         from object notation, the original node is unanalyzed and carries no
24211         semantic information, so that accessiblity checks must be performed on
24212         the type of the actual itself.
24213         (Expand_N_Subprogram_Declaration): Change last actual parameter for
24214         compatibility with Build_Protected_Sub_Specification.
24215         (Check_Overriding_Inherited_Interfaces): Add suport to handle
24216         overloaded primitives.
24217         (Register_Interface_DT_Entry): Use the new name of the formal
24218         the the calls to Expand_Interface_Thunk
24219
24220         * exp_dbug.ads: Augment comments on encoding of protected types to
24221         include the generation of dispatching subprograms when the type
24222         implements at least one interface.
24223
24224         * lib.ads: Extend information in Load_Stack to include whether a given
24225         load comes from a Limited_With_Clause.
24226
24227         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
24228         whether a potential circularity is harmless, because it includes units
24229         loaded through a limited_with clause. Extends previous treatment which
24230         did not handle properly arbitrary combinations of limited and
24231         non-limited clauses.
24232
24233 2005-09-01  Nicolas Setton  <setton@adacore.com>
24234
24235         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
24236         to be encoded as typ___XBLU_lowerbound__upperbound instead of
24237         typ___XB_lowerbound__upperbound.
24238
24239 2005-09-01  Thomas Quinot  <quinot@adacore.com>
24240
24241         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
24242         dummy access formal for RACW/RAS TypeCode TSS.
24243         (Build_TypeCode_Call): Do not generate dummy null access actual for
24244         calls to the TypeCode TSS.
24245
24246 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24247
24248         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
24249         fully qualified name, to distinguish instances with the same local name.
24250
24251         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
24252         fully qualified.
24253
24254 2005-09-01  Robert Dewar  <dewar@adacore.com>
24255
24256         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
24257         packed arrays.
24258
24259 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
24260
24261         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
24262         (Free): New deallocation procedure for filter elements
24263         (Close): Deallocate any existing filter for the concerned connection
24264
24265 2005-09-01  Laurent Pautet  <pautet@adacore.com>
24266
24267         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
24268         position set is provided, we compute one in order to reduce the maximum
24269         length of the keys.  This computation first selects a character
24270         position between 1 and the minimum length of the keys in order to
24271         avoid reducing one of the keys to an empty string.
24272         (Initialize, Compute): When the ratio V to K is too low, the algorithm
24273         does not converge. The initialization procedure now comes with a
24274         maximum number of iterations such that when exceeded, an exception is
24275         raised in Compute. The user can initialize this ratio to another value
24276         and try again
24277         Reformating and updated headers.
24278
24279 2005-09-01  Javier Miranda  <miranda@adacore.com>
24280
24281         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
24282         that given an entity T creates and returns an Itype that duplicates the
24283         contents of T. The returned Itype has the null-exclusion
24284         attribute set to True, and its Etype attribute references T
24285         to keep the association between the two entities.
24286         Update copyright notice
24287
24288         * sem_aggr.adb (Check_Can_Never_Be_Null,
24289         Aggregate_Constraint_Checks, Resolve_Aggregate,
24290         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
24291
24292         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
24293
24294 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
24295             Robert Dewar  <dewar@adacore.com>
24296             Hristian Kirtchev  <kirtchev@adacore.com>
24297
24298         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
24299         Result_Definition.
24300
24301         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
24302         function specs.
24303         Call Set_Result_Definition instead of Set_Subtype_Mark.
24304         (P_Subprogram_Specification): Add parsing of anonymous access result
24305         plus null exclusions. Call Set_Result_Definition instead of
24306         Set_Subtype_Mark.
24307
24308         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
24309         (P_Access_Type_Definition): Add parsing for an anonymous access result
24310         subtype, plus parsing for null exclusions. Call Set_Result_Definition
24311         instead of Set_Subtype_Mark.
24312
24313         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
24314         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
24315         (Result_Definition): New function for N_Function_Specifications.
24316         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
24317         N_Function_Specification.
24318         (Set_Null_Exclusion_Present): Allow this flag for
24319         N_Function_Specification.
24320         (Set_Result_Definition): New procedure for N_Function_Specifications.
24321         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
24322         and N_Function_Specification.
24323
24324         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
24325         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
24326         Add support for LIMITED NEW for Ada 2005 AI-419
24327         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
24328         syntax for anonymous access results.
24329         Replace Subtype_Mark field by Result_Definition in
24330         N_Function_Specification and N_Access_Definition specs.
24331         Add Null_Exclusion_Present to spec of N_Function_Specification.
24332         (Result_Definition): New function for N_Function_Specification and
24333         N_Access_Function_Definition.
24334         (Set_Result_Definition): New procedure for N_Function_Specification and
24335         N_Access_Function_Definition.
24336
24337         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
24338         Result_Definition for cases of N_Access_Function_Definition and
24339         N_Function_Specification.
24340         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
24341
24342 2005-09-01  Vincent Celier  <celier@adacore.com>
24343
24344         * lib-writ.adb: Update Copyright notice
24345         (Write_With_Lines): On platforms where file names are case-insensitive,
24346         record the file names in lower case.
24347         (Write_ALI): For D lines, on platforms where file names are
24348         case-insensitive, record the file names in lower case.
24349
24350 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24351             Emmanuel Briot  <briot@adacore.com>
24352
24353         * lib-xref.adb (Output_Overridden_Op): Display information on
24354         overridden operation.
24355
24356         * lib-xref.ads: Add documentation on overridden operations.
24357
24358         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
24359         information.
24360
24361         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
24362         overriding entity information.
24363
24364 2005-09-01  Vincent Celier  <celier@adacore.com>
24365
24366         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
24367         including those that are inherited.
24368
24369 2005-09-01  Robert Dewar  <dewar@adacore.com>
24370
24371         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
24372
24373         * par-prag.adb: Implement new pragma Debug_Policy
24374
24375         * sem_prag.adb Implement new pragma Debug_Policy
24376         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
24377         Component_Size attribute specification. Give warning for ignored pragma
24378         Pack.
24379
24380         * snames.h, snames.ads, snames.adb: Introduce entries in
24381         Preset_Names for Name_Disp_Asynchronous_Select,
24382         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
24383         Name_Disp_Timed_Select.
24384         New pragma Debug_Policy
24385
24386         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
24387         explicitly.
24388         Switch -gnata also sets Debug_Pragmas_Enabled
24389
24390         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
24391         handle an explicit -gnata when compiling predefined files.
24392
24393 2005-09-01  Vincent Celier  <celier@adacore.com>
24394
24395         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
24396         directories of projects that have no Ada sources.
24397
24398 2005-09-01  Robert Dewar  <dewar@adacore.com>
24399
24400         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
24401         (makes a difference for wide characters)
24402
24403         * widechar.adb, widechar.ads:
24404         Add Wide_Char_Byte_Count feature to count chars vs bytes
24405
24406 2005-09-01  Thomas Quinot  <quinot@adacore.com>
24407             Ed Schonberg  <schonberg@adacore.com>
24408             Robert Dewar  <dewar@adacore.com>
24409
24410         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
24411         'Address attribute reference with an overloaded prefix, use the
24412         location of the prefix (not the location of the attribute reference) as
24413         the error location.
24414         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
24415         a function renaming thereof, is a valid prefix for 'Size (where it is
24416         intepreted as a function call).
24417         (Statically_Denotes_Entity): New predicate to determine whether the
24418         prefix of an array attribute can be considered static.
24419
24420         PR ada/9087
24421         (Eval_Attr): Fix failure to evaluate Component_Size for
24422         unconstrained arrays (resulted in wrong value in packed case, since
24423         back end cannot handle this case)
24424
24425 2005-09-01  Robert Dewar  <dewar@adacore.com>
24426
24427         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
24428         error msgs for most common cases.
24429         Use new errout insertion char < (conditional warning)
24430
24431 2005-09-01  Javier Miranda  <miranda@adacore.com>
24432             Ed Schonberg  <schonberg@adacore.com>
24433
24434         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
24435         become local to the whole package.
24436         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
24437         the package was already analyzed the new algorithm "replaces" the
24438         real entities by the shadow ones. This is required to ensure that
24439         the order of these entities in the homonym chains does not change;
24440         otherwise we can have undefined references at linking time because
24441         in case of conflicts the external name of the entities will have
24442         a suffix that depends on the order of the entities in the chain.
24443         (Remove_Limited_With_Clause): Complementary code that completes the
24444         new algorithm and replaces the shadow entities by the real ones.
24445         (Install_Limited_Withed_Unit): When unchaining entities before the
24446         installation of the shadow entities, only regular entities of the
24447         public part must be taken into account. This is required to
24448         keep this routine in synch with the work done by Remove_Limited_
24449         With_Clause
24450         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
24451         even if unit is analyzed, because the analysis of the unit is
24452         idempotent in any case, and the limited view of the unit may have to
24453         be installed for proper visibility.
24454         (Expand_Limited_With_Clause): Even if the unit in the implicit
24455         with_clause has been analyzed already, a limited view of the package
24456         must be built for the current context, if it does not exist yet.
24457
24458 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24459             Javier Miranda  <miranda@adacore.com>
24460             Gary Dismukes  <dismukes@adacore.com>
24461
24462         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
24463         defining entity for the instance body, make a new defining identifier
24464         rather than copying the entity of the spec, to prevent accidental
24465         sharing of the entity list.
24466         (Check_Private_View): When exchanging views of private types, build the
24467         list of exchanged views as a stack, to ensure that on exit the exchanges
24468         are undone in the proper order.
24469         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
24470         Restore the compilation environment in case of instantiation_error.
24471         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
24472         for an anonymous access result.
24473         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
24474         (Formal_Entity): Handle properly the case of a formal package that
24475         denotes a generic package renaming.
24476
24477 2005-09-01  Thomas Quinot  <quinot@adacore.com>
24478
24479         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
24480         clause if the array aggregate is surrounded by parentheses.
24481
24482 2005-09-01  Cyrille Comar  <comar@adacore.com>
24483             Gary Dismukes  <dismukes@adacore.com>
24484             Ed Schonberg  <schonberg@adacore.com>
24485             Javier Miranda  <miranda@adacore.com>
24486
24487         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
24488         underlying type
24489         to check if a type is Constrained in cases related to code generation
24490         (rather than semantic checking) since otherwise we do not generate
24491         similar code for mutable private types depending if their
24492         discriminants are visible or not.
24493         (Check_Abstract_Overriding): Do not complain about failure to override
24494         the primitive operations used in dispatching selects since they will
24495         always be overriden at the freeze point of the type.
24496         (Access_Definition): Separate out handling for resetting the scope
24497         of an anonymous access function result type. Retrieve the scope
24498         of the associated function rather than using Current_Scope, which
24499         does not have a consistent value (depends on whether we're in the
24500         middle of analyzing formal parameters). Add ??? comment about
24501         finding a cleaner way to handle the special cases of scope setting.
24502         (Process_Incomplete_Dependents): A protected operation is never a
24503         dispatching operation (only its wrapper may be).
24504         (Build_Derived_Record_Type): In case of tagged private types that
24505         implement interfaces add derivation of predefined primitive
24506         operations.
24507         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
24508         by two parameters that are used in case of derivation from abstract
24509         interface types: No_Predefined_Prims is used to avoid the derivation
24510         of predefined primitives from the interface, and Predefined
24511         Prims_Only is used to complete the derivation predefined primitives
24512         in case of private tagged types implementing interfaces.
24513         Fix typo in comments
24514         (Find_Interface_In_Descendant): Protect the frontend against
24515         wrong code with large circularity chains.
24516         (Is_Private_Overriding): Add support for entities overriding interface
24517         subprograms. The test failed because Entities associated with overriden
24518         interface subprograms are always marked as hidden (and used to build
24519         the secondary dispatch table); in this case the overriden entity is
24520         available through the field abstract_interface_alias (cf. override_
24521         dispatching_operation)
24522         (Access_Definition): Set the scope of the type to Current_Scope for the
24523         case of a function with an anonymous access result type.
24524         (Access_Subprogram_Declaration): Handle creation of the type entity for
24525         an access-to-function type with an anonymous access result.
24526         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
24527         in handling for N_Access_Function_Definition.
24528         (Analyze_Subtype_Declaration): Modify the text of error message.
24529         (Derived_Type_Declaration): Modify the text of error message.
24530         (Process_Subtype): Modify the text of error message plus cleanup
24531         of one redundant error message.
24532         (Analyze_Component_Declaration): Code cleanup.
24533         (Analyze_Object_Declaration): Code cleanup.
24534         (Analyze_Subtype_Declaration): Propagate the null-exclusion
24535         attribute in case of access types. Code cleanup.
24536         (Array_Type_Declaration): Code cleanup.
24537         (Process_Discriminants): Create the new null-excluding itype
24538         if required. Code cleanup.
24539         (Process_Subtype): Create the new null-excluding itype if
24540         required. Code cleanup.
24541         (Build_Derived_Record_Type): Code cleanup to avoid calling
24542         twice the subprogram derive_subprograms in case of private
24543         types that implement interfaces. In this particular case the
24544         subprogram Complete_Subprograms_Derivation already does the
24545         job associated with the second call.
24546
24547         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
24548         conversion to the full view when generating an operation for a
24549         discriminant whose type may currently be private.
24550
24551 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24552             Javier Miranda  <miranda@adacore.com>
24553
24554         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
24555         V (Obj.F), the rewriting does not involve the indexed component, but
24556         only the selected component itself.
24557         Do not apply the transformation if the analyzed node is an actual of a
24558         call to another subprogram.
24559         (Complete_Object_Operation): Retain the entity of the
24560         dispatching operation in the selector of the rewritten node. The
24561         entity will be used in the expansion of dispatching selects.
24562         (Analyze_One_Call): Improve location of the error message associated
24563         with interface.
24564         (Analyze_Selected_Component): No need to resolve prefix when it is a
24565         function call, resolution is done when parent node is resolved, as
24566         usual.
24567         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
24568         when attempting to resolve a call transformed from its object notation.
24569         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
24570         of the argument list for each interpretation of the operation.
24571         (Try_Object_Operation): The designated type of an access parameter may
24572         be an incomplete type obtained through a limited_with clause, in which
24573         case the primitive operations of the type are retrieved from its full
24574         view.
24575         (Analyze_Call): If this is an indirect call, and the return type of the
24576         access_to_subprogram is incomplete, use its full view if available.
24577
24578 2005-09-01  Javier Miranda  <miranda@adacore.com>
24579             Gary Dismukes  <dismukes@adacore.com>
24580
24581         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
24582         access types the null-exclusion and access-to-constant attributes must
24583         also match.
24584         (Analyze_Return_Statement): When the result type is an anonymous access
24585         type, apply a conversion of the return expression to the access type
24586         to ensure that appropriate accessibility checks are performed.
24587         (Analyze_Return_Type): For the case of an anonymous access result type,
24588         generate the Itype and set Is_Local_Anonymous_Access on the type.
24589         Add ??? placeholder for check to disallow returning a limited object
24590         in Ada 2005 unless it's an aggregate or a result of a function call.
24591         Change calls from Subtype_Mark to Result_Definition.
24592         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
24593         Result_Definition in call to Make_Function_Specification.
24594         (Build_Body_To_Inline): Change Set_Subtype_Mark to
24595         Set_Result_Definition.
24596         (Make_Inequality_Operator): Change formal Subtype_Mark to
24597         Result_Definition in call to Make_Function_Specification.
24598         (Process_Formals): Create the new null-excluding itype if required.
24599         (New_Overloaded_Entity): For an entity overriding an interface primitive
24600         check if the entity also covers other abstract subprograms in the same
24601         scope. This is required to handle the general case, that is, overriding
24602         other interface primitives and overriding abstract subprograms inherited
24603         from some abstract ancestor type.
24604         (New_Overloaded_Entity): For an overriding entity that comes from
24605         source, note the operation that it overrides.
24606         (Check_Conformance, Type_Conformant): Addition of one new formal
24607         to skip controlling formals in the analysis. This is used to
24608         handle overloading of abstract interfaces.
24609         (Base_Types_Match): Add missing case for types imported from
24610         limited-with clauses
24611         (New_Overloaded_Entity): Add barrier to protect the use of
24612         the "alias" attribute.
24613
24614 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24615
24616         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
24617         verify that the procedure and the entry are mode conformant.
24618         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
24619         as a different operator, which is often a cut-and-paste error.
24620
24621 2005-09-01  Javier Miranda  <miranda@adacore.com>
24622             Ed Schonberg  <schonberg@adacore.com>
24623
24624         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
24625         used in controlling parameters exclude null because it is necessary to
24626         read the tag to dispatch, and null has no tag.
24627         (Override_Dispatching_Operation): If the previous operation is inherited
24628         from an interface, it becomes hidden  and does not participate in later
24629         name resolution.
24630
24631 2005-09-01  Javier Miranda  <miranda@adacore.com>
24632             Ed Schonberg  <schonberg@adacore.com>
24633             Gary Dismukes  <dismukes@adacore.com>
24634
24635         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
24636         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
24637         the expander will generate the corresponding run-time check to evaluate
24638         the expression.
24639         (Resolve_Call): Check for legal type of procedure name or prefix that
24640         appears as a trigger in a triggering alternative.
24641         (Valid_Conversion): If expression is ambiguous and the context involves
24642         an extension of System, remove System.Address interpretations.
24643         (Resolve_Qualified_Expression): Reject the case of a specific-type
24644         qualification applied to a class-wide argument. Enhance comment
24645         to explain checking of Original_Node.
24646         (Resolve_Type_Conversion): The location of the error message was not
24647         general enough to handle the general case and hence it has been removed.
24648         In addition, this patch improves the text of the message.
24649         (Resolve_Type_Conversion): Add missing support for access to interface
24650         types.
24651         (Resolve_Type_Conversion): If the target is a class-wide interface type,
24652         do not expand if the expression is the actual in a call, because proper
24653         expansion will take place when the call itself is expanded.
24654         (Resolve_Allocator): If the context is an unchecked conversion, the
24655         allocator inherits its storage pool, if any, from the target type of
24656         the conversion.
24657
24658 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24659             Javier Miranda  <miranda@adacore.com>
24660
24661         * sem_type.adb (Add_One_Interp): If a candidate operation is an
24662         inherited interface operation that has an implementation, use the
24663         implementation to avoid spurious ambiguities.
24664         (Interface_Present_In_Ancestor): In case of concurrent types we can't
24665         use the Corresponding_Record_Typ attribute to look for the interface
24666         because it is set by the expander (and hence it is not always
24667         available). For this reason we traverse the list of interfaces
24668         (available in the parent of the concurrent type).
24669         (Interface_Present_In_Ancestor): Handle entities from the limited view
24670
24671 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24672
24673         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
24674         from the list of required components.
24675         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
24676         primitive procedure of a limited interface with a controlling first
24677         parameter.
24678         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
24679         of an entry.
24680         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
24681         capture if it is generated in the second operand of a short-circuit
24682         operation.
24683         Do not capture values for variables with address clauses.
24684         (Is_Object_Reference): Treat a function call as an object reference only
24685         if its type is not Standard_Void_Type.
24686
24687 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24688
24689         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
24690         to a variable that is statically known to be constant.
24691
24692 2005-09-01  Geert Bosch  <bosch@adacore.com>
24693             Robert Dewar  <dewar@adacore.com>
24694
24695         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
24696         (VAXGF_Safe_First): Idem.
24697
24698 2005-09-01  Robert Dewar  <dewar@adacore.com>
24699             Arnaud Charlet  <charlet@adacore.com>
24700
24701         * g-dirope.ads: Minor reformatting
24702         Document that bounds of result of Base_Name match the input index
24703         positions.
24704         Add documentation on environment variable syntax for Expand_Path
24705
24706         * gnat_ugn.texi: Update documentation to include mention of -m switches
24707         Document new treatment of wide characters in max line length
24708         style check.
24709         Remove -gnatL/-gnatZ switches, no longer used.
24710         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
24711         of -gnata switch.
24712
24713         * gnat_rm.texi: Add doc for two argument form of pragma
24714         Float_Representation.
24715         Add documentation for pragma No_Strict_Aliasing
24716         Add note that explicit component clause overrides pragma Pack.
24717         Add documentation of pragma Debug_Policy
24718
24719 2005-09-01  Matthew Heaney  <heaney@adacore.com>
24720
24721         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
24722         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
24723         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
24724         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
24725         draft (Draft 13, August 2005) of Ada Amendment 1.
24726
24727 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
24728
24729         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
24730         Note that the platform-specific version of g-soccon.ads for VMS is now
24731         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
24732         really is a package spec).
24733         Replace s-taspri-linux.ads by s-taspri-posix.ads
24734         Remove references to s-mastop-x86.adb
24735
24736         * system-vxworks-xscale.ads: Removed, no longer used.
24737         * s-vxwork-xscale.ads: Removed, no longer used.
24738
24739 2005-09-01  Robert Dewar  <dewar@adacore.com>
24740
24741         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
24742         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
24743         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
24744         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
24745         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
24746         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
24747         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
24748         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
24749         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
24750         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
24751         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
24752         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
24753         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
24754         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
24755         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
24756         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
24757         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
24758         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
24759         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
24760         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
24761         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
24762
24763 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
24764
24765         PR ada/23187
24766         * adaint.c
24767         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
24768
24769 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
24770             Doug Rupp  <rupp@adacore.com>
24771
24772         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
24773         when needed.
24774         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
24775         this code in the GNAT run-time.
24776
24777         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
24778
24779         PR ada/21053
24780         * init.c (__gnat_error_handler [many]): Mark "msg" as const
24781         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
24782
24783         (__gnat_inside_elab_final_code): Moved here from
24784         Standard_Library and only defined for the compiler.
24785         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
24786         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
24787         using RTPs because directly vectored Interrupt routines are not
24788         supported on this configuration.
24789         (getpid): Do not redefine this function on VxWorks when using RTPs
24790         because this primitive is well supported by the RTP libraries.
24791         (copy_msg): Correct the code that checks for buffer overflow.
24792         Discovered during code reading.
24793
24794 2005-08-29  Olivier Hainque  <hainque@adacore.com>
24795
24796         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
24797         a library level mutable variable with an initializer, tell
24798         build_allocator to ignore the initializer's size. It may not be large
24799         enough for all the values that might be assigned to the variable later
24800         on.
24801
24802 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
24803             Eric Botcazou  <ebotcazou@adacore.com>
24804
24805         * trans.c: Protect < in error msg with quote
24806         Replace GCC_ZCX by Back_End_Exceptions.
24807         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
24808         has been sufficiently aligned in the record.
24809
24810 2005-08-15  James E. Wilson  <wilson@specifix.com>
24811
24812         * system-linux-alpha.ads: Change ia64 to alpha.
24813
24814 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
24815
24816         * decl.c, utils.c: Fix comment typos.
24817
24818 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
24819
24820         * decl.c, init.c, initialize.c: Fix comment typos.
24821
24822 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
24823
24824         Make CONSTRUCTOR use VEC to store initializers.
24825         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
24826         CONSTRUCTOR_ELTS.
24827         * trans.c (extract_values): Likewise.
24828         * utils.c (convert, remove_conversions): Likewise.
24829         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
24830         gnat_build_constructor): Likewise.
24831
24832 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
24833
24834         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
24835         DECL_SECTION_NAME.
24836         (compare_field_bitpos): Likewise.
24837
24838 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
24839
24840         * utils.c (create_var_decl): Only set DECL_COMMON on
24841         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
24842         VAR_OR_FUNCTION_DECL_P.
24843
24844 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
24845
24846         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
24847         removed.
24848
24849 2005-07-07  Pascal Obry  <obry@adacore.com>
24850
24851         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
24852         returned type on Windows.
24853
24854         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
24855         routine.
24856
24857         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
24858         exception in this case.
24859         Simplify the code as "Image (Image'Range)" = "Image".
24860
24861 2005-07-07  Vincent Celier  <celier@adacore.com>
24862
24863         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
24864         the destructor/constructor attributes for <lib>final/<lib>init.
24865
24866         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
24867
24868 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
24869
24870         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
24871         type if the parameter is not passed by copy but reference by default.
24872
24873 2005-07-07  Javier Miranda  <miranda@adacore.com>
24874
24875         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
24876         Reimplementation of the support for abstract interface types in order
24877         to leave the code more clear and easy to maintain.
24878
24879         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
24880         abstract interface types in order to leave the code clearer and easier
24881         to maintain.
24882
24883         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
24884         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
24885         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
24886         appropriate entry of the secondary dispatch table.
24887         (Make_DT): Add code to inherit the secondary dispatch tables of
24888         the ancestors.
24889
24890         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
24891         implementing both functionalities by means of a common routine, each
24892         routine has its own code.
24893
24894 2005-07-07  Javier Miranda  <miranda@adacore.com>
24895
24896         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
24897
24898         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
24899         types:
24900         --
24901           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
24902         --
24903
24904         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
24905         use of tag incomplete types.
24906
24907         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
24908         give support to tagged incomplete types.
24909
24910         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
24911         expression is a discriminant reference and its type is private, as can
24912         happen within a stream operation for a mutable record, use the full
24913         view of the type to resolve the case alternatives.
24914         (Analyze_Assignment): Check wrong dereference of incomplete types.
24915
24916         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
24917         types.
24918
24919         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
24920         incomplete types.
24921
24922         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
24923         N_Incomplete_Type_Declaration nodes.
24924
24925         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
24926         Tag_Present to give support to tagged incomplete types:
24927         --
24928           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
24929         --
24930
24931 2005-07-07  Olivier Hainque  <hainque@adacore.com>
24932
24933         PR ada/22301
24934         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
24935         definitions for the Unwind wrappers in the compiler case.
24936
24937 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
24938             Javier Miranda  <miranda@adacore.com>
24939
24940         * par-load.adb (Load): If a child unit is loaded through a limited_with
24941         clause, each parent must be loaded as a limited unit as well.
24942
24943         * sem_ch10.adb (Previous_Withed_Unit): Better name for
24944         Check_Withed_Unit. Return true if there is a previous with_clause for
24945         this unit, whether limited or not.
24946         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
24947         the current unit.
24948         (Is_Visible_Through_Renamings): New local subprogram of install_limited
24949         _withed_unit that checks if some package installed through normal with
24950         clauses has a renaming declaration of package whose limited-view is
24951         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
24952         of the current Draft document for Ada 2005.
24953         (Analyze_Context): Complete the list of compilation units that
24954         are allowed to contain limited-with clauses. It also contains
24955         checks that were previously done by Install_Limited_Context_Clauses.
24956         This makes the code more clear and easy to maintain.
24957         (Expand_Limited_With_Clause) It is now a local subprogram of
24958         Install_Limited_Context_Clauses, and contains the code that adds
24959         the implicit limited-with clauses for parents of child units.
24960         This functionality was prevously done by Analyze_Context.
24961
24962         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
24963         incomplete type.
24964
24965         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
24966         been erroneously named in a limited-with clause of its own context.
24967         In this case the error has been previously notified by Analyze_Context.
24968
24969 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
24970
24971         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
24972         generic package that contains local declarations with the same name.
24973         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
24974
24975 2005-07-07  Bernard Banner  <banner@adacore.com>
24976
24977         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
24978         ia64 platform only on platforms that you the GCC unwind library
24979         rather than the system unwind library.
24980
24981 2005-07-07  Thomas Quinot  <quinot@adacore.com>
24982
24983         * expect.c: Minor reformatting
24984
24985 2005-07-07  Sergey Rybin  <rybin@adacore.com>
24986
24987         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
24988         --no-separate-is
24989
24990         * gnat_ugn.texi: Add description for new gnatpp option
24991         (--no-separate-is)
24992
24993 2005-07-04  Thomas Quinot  <quinot@adacore.com>
24994
24995         * g-expect-vms.adb, g-expect.ads, g-expect.adb
24996         (Get_Command_Output): New subprogram to launch a process and get its
24997         standard output as a string.
24998
24999 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
25000             Olivier Hainque  <hainque@adacore.com>
25001
25002         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
25003         fetch a code-range descriptor associated with the machine state. On
25004         failure set the machine state's PC to 0; on success, pass the
25005         descriptor to exc_virtual_unwind.
25006
25007         * init.c (Tru64 section): New function __gnat_set_code_loc.
25008
25009 2005-07-04  Vincent Celier  <celier@adacore.com>
25010
25011         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
25012         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
25013         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
25014         Remove all auto-initialization code, as this is now done through the
25015         constructor mechanism.
25016
25017         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
25018         __gnat_sals_init_using_constructors): New functions.
25019
25020         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
25021         Linker_Constructor and Linker_Destructor when switch -a is used.
25022
25023         * bindusg.adb: Add line for new switch -a
25024
25025         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
25026         (Gnatbind): When switch -a is used, check if it is allowed
25027
25028         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
25029
25030 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
25031
25032         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
25033         This prevents us from hitting a limitation during the debug info
25034         generation when using stabs.
25035         (Prims_Ptr): Likewise.
25036
25037 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
25038             Ed Schonberg  <schonberg@adacore.com>
25039             Javier Miranda  <miranda@adacore.com>
25040
25041         * checks.adb (Null_Exclusion_Static_Checks): In the case of
25042         N_Object_Declaration, only perform the checks if the Object_Definition
25043         is not an Access_Definition.
25044
25045         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
25046         where the parent of an the access definition is an N_Object_Declaration
25047         when determining the Associated_Node_For_Itype and scope of an
25048         anonymous access-to-subprogram type.
25049
25050         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
25051         Corresponding_Spec on the body created for a null procedure. Add ???
25052         comment. Remove New_Copy_Tree call on body argument to
25053         Set_Body_To_Inline.
25054
25055         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
25056         discriminants, use the type of the actual as well, because the
25057         discriminants may be read by the called subprogram.
25058
25059         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
25060         access type we do not need to handle non-limited views.
25061         (Build_Derived_Record_Type): Additional check to check that in case of
25062         private types, interfaces are only allowed in private extensions.
25063
25064 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
25065
25066         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
25067         <Pragma_Linker_Destructor>: Likewise.
25068
25069         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
25070         Pragma_Linker_Destructor.
25071
25072         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
25073         ATTR_LINK_DESTRUCTOR.
25074         (static_ctors, static_dtors): New variables.
25075
25076         * misc.c (gnat_expand_body): Output current function as constructor
25077         and destructor if requested.
25078
25079         * par-prag.adb: Add processing for pragma Linker_Constructor and
25080         Linker_Destructor.
25081
25082         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
25083         extracted from Check_Interrupt_Or_Attach_Handler.
25084         (Check_Interrupt_Or_Attach_Handler): Invoke it.
25085         Implement pragma Linker_Constructor and Linker_Destructor with the
25086         help of Find_Unique_Parameterless_Procedure.
25087         Replace Name_Alias with Name_Target for pragma Linker_Alias.
25088
25089         * snames.h, snames.ads, snames.adb:
25090         Add Name_Linker_Constructor and Name_Linker_Destructor.
25091         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
25092         * snames.adb: Remove Name_Alias.
25093
25094         * trans.c: Include cgraph.h.
25095         (build_global_cdtor): New function.
25096         (Compilation_Unit_to_gnu): Build global constructor and destructor if
25097         needed.
25098         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
25099         of objects too.
25100         (addressable_p) <COMPONENT_REF>: Unconditionally test
25101         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
25102
25103         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
25104         variable if it is external.
25105
25106         (static_ctors, static_dtors): New global variables.
25107         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
25108         <ATTR_LINK_DESTRUCTOR>: Likewise.
25109         (end_subprog_body): Chain function as constructor and destructor
25110         if requested.
25111
25112         * exp_util.adb (Force_Evaluation): Unconditionally invoke
25113         Remove_Side_Effects with Variable_Ref set to true.
25114         (Remove_Side_Effects): Handle scalar types first. Use a renaming
25115         for non-scalar types even if Variable_Ref is true and for class-wide
25116         expressions.
25117
25118 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
25119
25120         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
25121         to prevent spurious warnings.
25122
25123 2005-07-04  Thomas Quinot  <quinot@adacore.com>
25124
25125         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
25126         Itypes. Itypes are really unexpected there.
25127         (Build_TypeCode_Function): Generalise special processing for Itypes to
25128         handle the case of numeric implicit base types as well as enumerated
25129         ones.
25130
25131 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
25132
25133         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
25134         controlled, indicate the expected type of the dereference that is
25135         created for the call to Deep_Finalize, to prevent spurious errors when
25136         the designated type is private and completed with a derivation from
25137         another private type.
25138
25139 2005-07-04  Vincent Celier  <celier@adacore.com>
25140
25141         * make.adb (Change_To_Object_Directory): When unable to change the
25142         current dir to the object directory, output the full path of the
25143         directory.
25144
25145 2005-07-04  Matthew Gingell  <gingell@adacore.com>
25146
25147         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
25148
25149         * indepsw-linux.adb: Replace by...
25150
25151         * indepsw-gnu.adb: ...this new file
25152
25153 2005-07-04  Vincent Celier  <celier@adacore.com>
25154
25155         * mlib-prj.adb (Auto_Initialize): New constant String
25156         (SALs_Use_Constructors): New Boolean function
25157         (Build_Library): Call gnatbind with Auto_Initialize switch when
25158         SALs_Use_Constructors returns True.
25159
25160         * mlib-tgt.ads: Minor reformatting
25161
25162         * mlib-utl.ads: Minor reformatting
25163
25164         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
25165
25166 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
25167
25168         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
25169         single protected declarations can have an interface list.
25170         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
25171         with seriously malformed entry declarations, and lead to compilation
25172         abandoned messages.
25173
25174 2005-07-04  Javier Miranda  <miranda@adacore.com>
25175
25176         * par-load.adb: Load the context items in two rounds.
25177
25178 2005-07-04  Robert Dewar  <dewar@adacore.com>
25179
25180         * scng.adb: Do not consider Mod used as an attribute to be a keyword
25181
25182 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
25183             Javier Miranda  <miranda@adacore.com>
25184
25185         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
25186         type extension needs a limited view.
25187         Remove previous restriction on private types available through the
25188         limited-view (only tagged private types were previously allowed).
25189         (Install_Withed_Unit): In the code that implements the
25190         legality rule given in AI-377, exclude a child unit with the name
25191         Standard, because it is a homonym of the Standard environment package.
25192
25193 2005-07-04  Thomas Quinot  <quinot@adacore.com>
25194
25195         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
25196         overloaded function call, carry interpretations from the original tree
25197         to the copy.
25198
25199 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
25200
25201         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
25202         types check whether some designated type is a limited view, and use
25203         the non-limited view if available.
25204
25205 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
25206
25207         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
25208         constraint of full view of a private view T1 if present, when T2 is a
25209         discriminated full view.
25210
25211 2005-07-04  Thomas Quinot  <quinot@adacore.com>
25212
25213         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
25214         actual that is a view conversion of a bit packed array reference.
25215
25216 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
25217
25218         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
25219         present before checking whether an interface type covers a synchronized
25220         type.
25221
25222 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
25223
25224         * sem_util.adb (Is_Object_Reference): An indexed or selected component
25225         whose prefix is an implicit dereference is an object reference. Removes
25226         spurious errors when compiling with -gnatc.
25227
25228 2005-07-04  Robert Dewar  <dewar@adacore.com>
25229
25230         PR ada/22039
25231         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
25232
25233 2005-07-04  Matthew Gingell  <gingell@adacore.com>
25234
25235         * tracebak.c: Enable tracebacks on ia64 platforms
25236
25237 2005-07-04  Vincent Celier  <celier@adacore.com>
25238
25239         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
25240         the GNAT BIND command, as gnatbind accepts multiples ALI files with
25241         the -L or -n switches.
25242
25243 2005-07-04  Vincent Celier  <celier@adacore.com>
25244
25245         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
25246         correctly computed and the main project data is not modified while
25247         doing so.
25248         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
25249         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
25250         c++linker as this does not work on some platforms.
25251
25252 2005-07-04  Matthew Heaney  <heaney@adacore.com>
25253
25254         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
25255         was changed.
25256         * a-coinve.adb: Perform constraint checks explicitly.
25257
25258 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25259             Thomas Quinot  <quinot@adacore.com>
25260
25261         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
25262         new target gen-soccon.
25263
25264 2005-07-04  Robert Dewar  <dewar@adacore.com>
25265
25266         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
25267
25268 2005-07-04  Thomas Quinot  <quinot@adacore.com>
25269
25270         * g-socket.ads (Check_Selector): Minor rewording of comment.
25271
25272 2005-07-04  Vincent Celier  <celier@adacore.com>
25273
25274         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
25275
25276 2005-07-04  Thomas Quinot  <quinot@adacore.com>
25277
25278         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
25279
25280 2005-07-04  Sergey Rybin  <rybin@adacore.com>
25281
25282         * gnat_ugn.texi: Add description of --eol gnatpp option
25283
25284 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
25285             Thomas Quinot  <quinot@adacore.com>
25286
25287         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
25288         if the user wants all calls of a subprogram to be flagged,
25289         independently of whether they are made from within the same unit or
25290         another unit.
25291         Mention restriction for pragma Linker_Alias on some platforms.
25292         Document pragma Linker_Constructor and Linker_Destructor.
25293         Rewrite documentation of Weak_External, Linker_Section and
25294         Linker_Alias pragmas.
25295
25296 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
25297
25298         * s-stausa.ads, s-stausa.adb: New files.
25299
25300 2005-06-30  Kelley Cook
25301
25302         * all files:  Update FSF address in copyright headers.
25303         * gen-soccon.co (main): Output new FSF address in generated files.
25304
25305 2005-06-28  Paul Brook  <paul@codesourcery.com>
25306
25307         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
25308
25309 2005-06-14  Olivier Hainque  <hainque@adacore.com>
25310             Eric Botcazou  <ebotcazou@adacore.com>
25311
25312         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
25313         exc_unwind, now that we are generating proper .debug_frame output for
25314         that target.
25315
25316         * tracebak.c: Remove the mips-irix section, as we are now using the
25317         s-mastop based unwinder again.
25318         Under SPARC/Solaris, take into account the stack bias to compute the
25319         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
25320         ABI.
25321
25322 2005-06-14  Doug Rupp  <rupp@adacore.com>
25323
25324         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
25325
25326         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
25327
25328 2005-06-14  Pascal Obry  <obry@adacore.com>
25329
25330         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
25331         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
25332         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
25333         package name).
25334
25335         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
25336         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
25337         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
25338         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
25339         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
25340         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
25341         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
25342         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
25343         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
25344         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
25345         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
25346         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
25347         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
25348         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
25349         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
25350         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
25351         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
25352         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
25353         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
25354         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
25355         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
25356         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
25357         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
25358         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
25359         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
25360         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
25361         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
25362         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
25363         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
25364         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
25365         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
25366         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
25367         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
25368         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
25369         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
25370         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
25371         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
25372         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
25373         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
25374         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
25375         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
25376         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
25377         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
25378         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
25379         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
25380         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
25381         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
25382         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
25383         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
25384         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
25385         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
25386         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
25387         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
25388         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
25389         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
25390         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
25391         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
25392         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
25393         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
25394         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
25395         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
25396         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
25397         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
25398         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
25399         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
25400         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
25401         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
25402         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
25403         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
25404         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
25405         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
25406         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
25407         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
25408         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
25409         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
25410         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
25411         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
25412         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
25413         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
25414         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
25415         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
25416         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
25417         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
25418         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
25419         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
25420         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
25421         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
25422         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
25423         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
25424         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
25425         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
25426         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
25427         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
25428         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
25429         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
25430         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
25431         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
25432         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
25433         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
25434         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
25435         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
25436         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
25437         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
25438         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
25439         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
25440         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
25441         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
25442         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
25443         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
25444         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
25445         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
25446         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
25447         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
25448         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
25449         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
25450         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
25451         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
25452         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
25453         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
25454         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
25455         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
25456         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
25457         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
25458         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
25459         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
25460         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
25461         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
25462         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
25463         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
25464         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
25465         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
25466         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
25467         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
25468
25469 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
25470             Arnaud Charlet  <charlet@adacore.com>
25471
25472         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
25473         longer protected objects. They have been replaced by lower-level
25474         suspension objects made up by a mutex and a condition variable (or
25475         their equivalent given a particular OS) plus some internal data to
25476         reflect the state of the suspension object.
25477         (Initialize, Finalize): Add this initialization procedure for
25478         Suspension_Object, which is a controlled type.
25479         (Finalize): Add the finalization procedure for Suspension_Object,
25480         which is a controlled type.
25481
25482         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
25483         Ada.Synchronous_Task_Control because there is no longer a need for a
25484         VxWorks specific version of this package. Target dependencies
25485         has been moved to System.Task_Primitives.Operations.
25486
25487         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
25488         longer needed.
25489         (InitializeCriticalSection, EnterCriticalSection,
25490         LeaveCriticalSection, DeleteCriticalSection): Replace the type
25491         pCriticalSection by an anonymous access type so that we avoid problems
25492         of accessibility to local objects.
25493
25494         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
25495         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
25496         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
25497         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
25498         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
25499         set the environment task mask here.
25500         (Current_State): Add this function that returns the state of the
25501         suspension object.
25502         (Set_False): Add this procedure that sets the state of the suspension
25503         object to False.
25504         (Set_True): Add this procedure that sets the state of the suspension
25505         object to True, releasing the task that was suspended, if any.
25506         (Suspend_Until_True): Add this procedure that blocks the calling task
25507         until the state of the object is True. Program_Error is raised if
25508         another task is already waiting on that suspension object.
25509         (Initialize): Add this procedure for initializing the suspension
25510         object. It initializes the mutex and the condition variable which are
25511         used for synchronization and queuing, and it sets the internal state
25512         to False.
25513         (Finalize): Add this procedure for finalizing the suspension object,
25514         destroying the mutex and the condition variable.
25515
25516         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
25517         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
25518         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
25519         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
25520         which provides a low-level abstraction (using operating system
25521         primitives) for Ada.Synchronous_Task_Control.
25522         This object is made up by a mutex (for ensuring mutual exclusion), a
25523         condition variable (for queuing threads until the condition is
25524         signaled), a Boolean (State) indicating whether the object is open,
25525         and a Boolean (Waiting) reflecting whether there is a task already
25526         suspended on this object.
25527
25528         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
25529         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
25530         s-intman-vms.ads, s-intman-mingw.adb,
25531         (Initialize_Interrupts): Removed, no longer used.
25532
25533         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
25534         (Setup_Interrupt_Mask): New procedure.
25535
25536         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
25537
25538         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
25539
25540         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
25541         this is no longer done in the body of s-taprop
25542         (Server_Task): Explicitely test for Pending_Action in case
25543         System.Parameters.No_Abort is True.
25544
25545         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
25546         is no longer done in the body of s-taprop
25547
25548 2005-06-14  Robert Dewar  <dewar@adacore.com>
25549
25550         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
25551         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
25552         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
25553         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
25554         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
25555         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
25556         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
25557         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
25558         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
25559         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
25560         system-linux-hppa.ads, system-vms_64.ads,
25561         system-vxworks-alpha.ads: Minor comment update for
25562         AI-362 (unit is Pure).
25563
25564         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
25565         Add pragma Pure_05 for AI-362
25566         Make remaining conversion functions obsolescent in Ada 95
25567
25568         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
25569         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
25570         Add entries for a-wichun and a-zchuni
25571         Add a-widcha a-zchara for AI-395
25572         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
25573
25574         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
25575         Add entries for a-wichun.o and a-zchuni.o
25576         Entries for a-widcha.o and a-zchara.o
25577         Add entry for a-chacon.o
25578
25579         * a-ztenau.adb: Add with of Ada.Characters.Conversions
25580
25581         * a-chacon.ads, a-chacon.adb: New files.
25582
25583         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
25584         categorization violations.
25585
25586         * a-strmap.ads: Add pragma Pure_05 for AI-362
25587         * a-strmap.ads: Add note on implicit categorization for AI-362
25588
25589         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
25590
25591         * par-prag.adb: Dummy entry for pragma Persistent_BSS
25592         Set Ada_Version_Explicit, for implementation of AI-362
25593         Add processing for pragma Pure_05 and Preelaborate_05
25594         Add entry for Assertion_Policy pragma
25595
25596         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
25597         when needed for proper processing of categorization stuff
25598
25599         * sem_cat.adb:
25600         For several cases, make errors in preealborate units warnings,
25601         instead of errors, if GNAT_Mode is set. For AI-362.
25602
25603         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
25604         preelaborate unit is now warning if in GNAT mode
25605
25606         * s-stoele.ads: Document AI-362 for pragma preelaborate
25607
25608 2005-06-14  Doug Rupp  <rupp@adacore.com>
25609
25610         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
25611         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
25612         Default_Exception_Msg_Max_Length: new parameter.
25613
25614         * a-except.ads: (Exception_Msg_Max_Length): Set to
25615         System.Parameters.Default_Exception_Msg_Max_Length
25616         Add pragma Preelaborate_05 for AI-362
25617         Add warnings off to allow categorization violations for AI-362
25618
25619 2005-06-14  Vincent Celier  <celier@adacore.com>
25620
25621         * gnatsym.adb: Adapt to modification of package Symbols: procedure
25622         Process is now in package Processing.
25623
25624         * symbols.ads, symbols.adb:
25625         (Processing): New package, containing procedure Process
25626
25627         * symbols-vms-alpha.adb:
25628         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
25629
25630         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
25631         symbols-processing-vms-ia64.adb: New files.
25632
25633 2005-06-14  Pascal Obry  <obry@adacore.com>
25634
25635         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
25636         implementation. This new version generates the proper DllMain routine
25637         to initialize the SAL. The DllMain is generated in Ada and compiled
25638         before being added as option to the library build command.
25639
25640 2005-06-14  Doug Rupp  <rupp@adacore.com>
25641             Pascal Obry  <obry@adacore.com>
25642
25643         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
25644         call to decc$translate_vms.
25645         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
25646         need to remove those quotes before catenating the filename.
25647         (__gnat_locate_exec_on_path): improvements to the Win32 section:
25648         * avoid allocating the memory twice for better efficiency;
25649         * allocate 32K buffer for environment expansion as suggested by MSDN;
25650         * prepend ".;" to the path so that current directory is searched too.
25651
25652 2005-06-14  Robert Dewar  <dewar@adacore.com>
25653
25654         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
25655         instead of raising CE (AI-241)
25656         Add warnings off to allow categorization violations for AI-362
25657
25658 2005-06-14  Robert Dewar  <dewar@adacore.com>
25659
25660         * ali-util.adb, gnatbind.adb: Remove references to
25661         Force_RM_Elaboration_Order.
25662
25663         * switch-b.adb: Remove recognition of -f switch
25664
25665 2005-06-14  Pascal Obry  <obry@adacore.com>
25666
25667         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
25668         implementation which is slightly more efficient.
25669
25670 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
25671             Javier Miranda  <miranda@adacore.com>
25672             Ed Schonberg  <schonberg@adacore.com>
25673             Hristian Kirtchev  <kirtchev@adacore.com>
25674
25675         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
25676         allocator's designated type is a class-wide type, and compiling for
25677         Ada 2005, emit a run-time check that the accessibility level of the
25678         type given in the allocator's expression is not deeper than the level
25679         of the allocator's access type.
25680
25681         (Tagged_Membership): Modified to gives support to abstract interface
25682         types.
25683
25684         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
25685         Access_Level.
25686         (Descendant_Tag): New predefined function
25687         (Is_Descendant_At_Same_Level): New predefined function
25688         (Get_Access_Level): New private function
25689         (Set_Access_Level): New private procedure
25690         (IW_Membership): New function. Given the tag of an object and the tag
25691         associated with an interface, evaluate if the object implements the
25692         interface.
25693         (Register_Interface_Tag): New procedure used to initialize the table of
25694         interfaces used by the IW_Membership function.
25695         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
25696         of the dispatch table.
25697         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
25698         table of interfaces of the parent.
25699         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
25700         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
25701         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
25702         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
25703         Ada 2005 semantics for the new predefined function.
25704
25705         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
25706         call to Descendant_Tag rather than Internal_Tag.
25707         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
25708         the accessibility level of the attribute's Item parameter is not deeper
25709         than the level of the attribute's prefix type. Tag_Error is raised if
25710         the check fails. The check is only emitted for Ada_05.
25711         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
25712         requested stream attribute, use it.
25713         (Expand_N_Attribute_Reference): If the designated type is an interface
25714         then rewrite the referenced object as a conversion to force the
25715         displacement of the pointer to the secondary dispatch table.
25716         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
25717         is a dereference of an object with a constrained partial view.
25718
25719         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
25720         type is a class-wide type, emit a run-time check that the accessibility
25721         level of the returned object is not deeper than the level of the
25722         function's master (only when compiling for Ada 2005).
25723
25724         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
25725         Action_Nb_Arg): Add entries for new Get_Access_Level and
25726         Set_Access_Level routines in these tables.
25727         (Make_DT): Generate a call to set the accessibility level of the
25728         tagged type in its TSD.
25729         (Make_DT): Code cleanup. The functionality of generating all the
25730         secondary dispatch tables has been moved to freeze_record_type.
25731         (Make_Abstract_Interface_DT): Minor code cleanup.
25732         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
25733         this subprogram implements a new algorithm that provides the
25734         same functionality and it is more clear in case of primitives
25735         associated with abstract interfaces.
25736         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
25737         clean up, the functionality of this subprogram is now provided
25738         by Set_All_DT_Position.
25739         (Write_DT): New subprogram: a debugging procedure designed to be called
25740         within gdb to display the dispatch tables associated with a tagged
25741         type.
25742         (Collect_All_Interfaces): New subprogram that collects the whole list
25743         of interfaces that are directly or indirectly implemented by a tagged
25744         type.
25745         (Default_Prim_Op_Position): New subprogram that returns the fixed
25746         position in the dispatch table of the default primitive operations.
25747         (Expand_Interface_Actuals): New subprogram to generate code that
25748         displaces all the actuals corresponding to class-wide interfaces to
25749         reference the interface tag of the actual object.
25750         (Expand_Interface_Conversion): New subprogram. Reference the base of
25751         the object to give access to the interface tag associated with the
25752         secondary dispatch table.
25753         (Expand_Interface_Thunk): New subprogram that generates the code of the
25754         thunk. This is required for compatibility with the C+ ABI.
25755         (Make_Abstract_Interface_DT): New subprogram that generate the
25756         declarations for the secondary dispatch tables associated with an
25757         abstract interface.
25758         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
25759         attribute for each primitive operation covering interface subprograms
25760         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
25761         These subprograms were upgraded to give support to abstract interfaces
25762
25763         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
25764         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
25765         RE_Set_Access_Level.
25766         (RE_Unit_Table): Add entries for new Ada.Tags operations.
25767         Add support to call the followig new run-time subprograms:
25768         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
25769
25770         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
25771         match its full declaration when both have an access definition with
25772         statically matching designated subtypes.
25773         (Analyze_Component_Declaration): Delete commented out code that was
25774         incorrectly setting the scope of an anonymous access component's type.
25775         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
25776         an access discriminant when the containing type is nonlimited.
25777         (Make_Incomplete_Type_Declaration): Create an incomplete type
25778         declaration for a record type that includes self-referential access
25779         components.
25780         (Check_Anonymous_Access_Types): Before full analysis of a record type
25781         declaration, create anonymous access types for each self-referential
25782         access component.
25783         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
25784         an access component in this context is a Local_Anonymous_Access, for
25785         proper accessibility checks.
25786         (Access_Definition): Set properly the scope of the anonymous access type
25787         created for a stand-alone access object.
25788         (Find_Type_Of_Object): An object declaration may be given with an access
25789         definition.
25790         (Complete_Subprograms_Derivation): New subprogram used to complete
25791         type derivation of private tagged types implementing interfaces.
25792         In this case some interface primitives may have been overriden
25793         with the partial-view and, instead of re-calculating them, they
25794         are included in the list of primitive operations of the full-view.
25795         (Build_Derived_Record_Type): Modified to give support to private
25796         types implemening interfaces.
25797         (Access_Definition): Reject ALL on anonymous access types.
25798         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
25799         type derivation to occur at a deeper accessibility level than the
25800         parent type.
25801         For the case of derivation within a generic body however, disallow the
25802         derivation if the derived type has an ancestor that is a formal type
25803         declared in the formal part of an enclosing generic.
25804         (Analyze_Object_Declaration): For protected objects, remove the check
25805         that they cannot contain interrupt handlers if not declared at library
25806         level.
25807         (Add_Interface_Tag_Components): New subprogram to add the tag components
25808         corresponding to all the abstract interface types implemented by a
25809         record type or a derived record type.
25810         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
25811         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
25812         Process_Full_View, Record_Type_Declaration): Modified to give
25813         support to abstract interface types
25814         (Collect_Interfaces): New subprogram that collects the list of
25815         interfaces that are not already implemented by the ancestors
25816         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
25817         when partial view has no discriminants and full view has defaults.
25818         (Constrain_Access): Reject a constraint on a general access type
25819         if the discriminants of the designated type have defaults.
25820         (Access_Subprogram_Declaration): Associate the Itype node with the inner
25821         full-type declaration or subprogram spec. This is required to handle
25822         nested anonymous declarations.
25823         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
25824         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
25825         Process_Full_View, Record_Type_Declaration): Modified to give
25826         support to abstract interface types
25827         (Derive_Subprograms): Addition of a new formal to indicate if
25828         we are in the case of an abstact-interface derivation
25829         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
25830         to the specification because it is requied to analyze all the
25831         identifiers found in a list of interfaces
25832
25833         * debug.adb: Complete documentation of flag "-gnatdZ"
25834
25835         * exp_ch3.adb: Implement config version of persistent_bss pragma
25836         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
25837         testing for TSS presence to properly enforce visibility rules.
25838         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
25839         Make_Abstract_Interfaces_DT to generate the secondary tables
25840         associated with abstract interfaces.
25841         (Build_Init_Procedure): Modified to initialize all the tags
25842         corresponding.
25843         (Component_Needs_Simple_Initialization): Similar to other tags,
25844         interface tags do not need initialization.
25845         (Freeze_Record_Type): Modified to give support to abstract interface
25846         types.
25847         (Expand_N_Object_Declaration): Do not generate an initialization for
25848         a scalar temporary marked as internal.
25849
25850         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
25851         in-out parameter that is a component in an initialization procedure,
25852         whose constraint might depend on discriminants, and that may be
25853         misaligned because of packing or representation clauses.
25854         (Is_Legal_Copy): New predicate to determine whether a possibly
25855         misaligned in-out actual can actually be passed by copy/return. This
25856         is an error in case the type is by_reference, and a warning if this is
25857         the consequence of a DEC import pragma on the subprogram.
25858         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
25859         interface types
25860         (Expand_Inlined_Call): Mark temporary generated for the return value as
25861         internal, so that no useless scalar normalization is generated for it.
25862         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
25863         null procedure can always be inlined.
25864         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
25865         procedure, generate an explicit empty body for it.
25866
25867         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
25868         Given a type implementing an interface, returns the corresponding
25869         access_disp_table value.
25870         (Find_Interface_Tag): New subprogram. Given a type implementing an
25871         interface, returns the record component containing the tag of the
25872         interface.
25873         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
25874         previous ones that return the corresponding tag and access_disp_table
25875         entities.
25876         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
25877         is a predefined primitive operation.
25878         (Expand_Subtype_From_Expr): If the expression is a selected component
25879         within an initialization procedure, compute its actual subtype, because
25880         the component may depend on the discriminants of the enclosing record.
25881
25882         * i-cpp.ads, i-cpp.adb:
25883         This package has been left available for compatibility with previous
25884         versions of the frontend. As part of the new layout this is now a
25885         dummy package that uses declarations available at a-tags.ads
25886
25887         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
25888         "constant access" and "aliased [constant] access" when not compiling
25889         with -gnat05.
25890         Suppress Ada 2005 keyword warning if -gnatwY used
25891         (P_Identifier_Declarations): Add support for object declarations with
25892         access definitions.
25893         (Private_Extension_Declaration): Complete the documentation
25894         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
25895         attribute in case of private extension declaration
25896         (P_Type_Declaration): Mark as "abstract" the type declarations
25897         corresponding with protected, synchronized and task interfaces
25898         (P_Declarative_Items): "not" and "overriding" are overriding indicators
25899         for a subprogram or instance declaration.
25900
25901         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
25902         instantiation that is a dispatching operation has controlling access
25903         parameters that are null excluding.
25904         Save and restore Ada_Version_Explicit, for implementation of AI-362
25905         (Validate_Derived_Type_Instance): Add check for abstract interface
25906         types.
25907         (Analyze_Formal_Package): Establish Instantiation source for the copy of
25908         the generic that is created to represent the formal package.
25909         (Analyze_Package_Instantiation): Instantiate body immediately if the
25910         package is a predefined unit that contains inlined subprograms, and
25911         we are compiling for a Configurable_Run_Time.
25912         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
25913         If the program has a null default, generate an empty body for it.
25914
25915         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
25916         error message condition, null procedures are correctly detected now.
25917         (New_Overloaded_Entity): Bypass trivial overriding indicator check
25918         for subprograms in the context of protected types. Instead, the
25919         indicator is examined in Sem_Ch9 while analysing the subprogram
25920         declaration.
25921         (Check_Overriding_Indicator): Check consistency of overriding indicator
25922         on subprogram stubs as well.
25923         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
25924         the library level.
25925         (Analize_Subprogram_Specification): When analyzing a subprogram in which
25926         the type of the first formal is a concurrent type, replace this type
25927         by the corresponding record type.
25928         (Analyze_Subprogram_Body): Undo the previous work.
25929         (Analyze_Procedure_Call): If the call has the form Object.Op, the
25930         analysis of the prefix ends up analyzing the call itself, after which
25931         we are done.
25932         (Has_Interface_Formals): New subprogram subsidiary to analyze
25933         subprogram_specification that returns true if some non
25934         class-wide interface subprogram is found
25935         (New_Overloaded_Entity): Modified to give support to abstract
25936         interface types
25937         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
25938         access to subprograms must be recursive.
25939         (Is_Unchecked_Conversion): Improve the test that recognizes
25940         instantiations of Unchecked_Conversion, and allows them in bodies that
25941         are to be inlined by the front-end. When the body comes from an
25942         instantiation, a reference to Unchecked_Conversion will be an
25943         Expanded_Name, even though the body has not been analyzed yet.
25944         Replace Is_Overriding and Not_Overriding in subprogram_indication with
25945         Must_Override and Must_Not_Override, to better express intent of AI.
25946         (Analyze_Subprogram_Body): If an overriding indicator is given, check
25947         that it is consistent with the overrinding status of the subprogram
25948         at this point.
25949         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
25950         always inlined.
25951         If the subprogram is a null procedure, indicate that it does not need
25952         a completion.
25953
25954         * sem_disp.adb (Check_Controlling_Type): Give support to entities
25955         available through limited-with clauses.
25956         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
25957         allowed as the last primitive of a tagged type if it has no previous
25958         spec.
25959         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
25960         to give support to abstract interface types
25961
25962         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
25963         in the case where the target type is an anonymous access type of an
25964         object or component (that is, when Is_Local_Anonymous_Access is true).
25965         Prevent the special checks for conversions of access discriminants in
25966         the case where the discriminant belongs to a nonlimited type, since
25967         such discriminants have their accessibility level defined in the same
25968         way as a normal component of an anonymous access type.
25969         (Resolve_Allocator): When an allocator's designated type is a class-wide
25970         type, check that the accessibility level of type given in the
25971         allocator's expression or subtype indication is not statically deeper
25972         than the level of the allocator's access type.
25973         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
25974         name in a discriminant constraint of a record component.
25975         (Resolve_Explicit_Dereference): Do not check whether the type is
25976         incomplete when the dereference is a use of an access discriminant in
25977         an initialization procedure.
25978         (Resolve_Type_Conversion): Handle conversions to abstract interface
25979         types.
25980         (Valid_Tagged_Conversion): The conversion of a tagged type to an
25981         abstract interface type is always valid.
25982         (Valid_Conversion): Modified to give support to abstract interface types
25983         (Resolve_Actuals): Enable full error reporting on view conversions
25984         between unrelated by_reference array types.
25985         The rule for view conversions of arrays with aliased components is
25986         weakened in Ada 2005.
25987         Call to obsolescent subprogram is now considered to be a violation of
25988         pragma Restrictions (No_Obsolescent_Features).
25989         (Check_Direct_Boolean_Operator): If the boolean operation has been
25990         constant-folded, there is nothing to check.
25991         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
25992         check on possible violation of restriction No_Direct_Boolean_Operators
25993         until after expansion of operands, to prevent spurious errors when
25994         operation is constant-folded.
25995
25996         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
25997         Has_Compatible_Type): Modified to give support to abstract interface
25998         types.
25999         (Interface_Present_In_Ancestor): New function to theck if some ancestor
26000         of a given type implements a given interface
26001
26002         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
26003         prefix is a parameterless function that returns an access_to_procedure.
26004         (Transform_Object_Operation): Handle properly function calls of the
26005         form Obj.Op (X), which prior to analysis appear as indexed components.
26006         (Analyze_One_Call): Complete the error notification to help new Ada
26007         2005 users.
26008         (Analyze_Allocator): For an allocator without an initial value, where
26009         the designated type has a constrained partial view, a discriminant
26010         constraint is illegal.
26011
26012 2005-06-14  Robert Dewar  <dewar@adacore.com>
26013
26014         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
26015         do with treatment of Set_Col when positioned at end of line character.
26016
26017 2005-06-14  Robert Dewar  <dewar@adacore.com>
26018
26019         * atree.adb: (Elist*): Protect against uninitialized field
26020
26021 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26022
26023         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
26024         for an attribute reference that returns an access type.
26025         (Apply_Discriminant_Check): No need for check if (designated) type has
26026         constrained partial view.
26027
26028         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
26029         both bound checks, rather than a conjunction.
26030         (Insert_Valid_Check): If the expression is an actual that is an indexed
26031         component of a bit-packed array, force expansion of the packed element
26032         reference, because it is specifically inhibited elsewhere.
26033
26034 2005-06-14  Vincent Celier  <celier@adacore.com>
26035
26036         * clean.adb (Clean_Project): Correctly delete executable specified as
26037         absolute path names.
26038
26039         * make.adb (Gnatmake): Allow relative executable path names with
26040         directory information even when project files are used.
26041         (Change_To_Object_Directory): Fail gracefully when unable to change
26042         current working directory to object directory of a project.
26043         (Gnatmake): Remove exception handler that could no longer be exercized
26044         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
26045         may be deallocated by Normalize_Arguments.
26046         (Collect_Arguments): Eliminate empty arguments
26047
26048         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
26049         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
26050         (Check_Project): Return False when Project is No_Project. Return True
26051         when All_Projects is True.
26052         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
26053         All_Projects to True.
26054         Minor reformatting
26055
26056 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26057             Javier Miranda  <miranda@adacore.com>
26058             Thomas Quinot  <quinot@adacore.com>
26059             Robert Dewar  <dewar@adacore.com>
26060             Hristian Kirtchev  <kirtchev@adacore.com>
26061             Gary Dismukes  <dismukes@adacore.com>
26062
26063         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
26064         anonymous access types, to indicate that the accessibility level of
26065         the type is determined by that of the enclosing declaration.
26066         (Has_Persistent_BSS): New flag
26067         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
26068         of this attribute with functions.
26069         (Is_Primitive_Wrapper): Remove the barrier.
26070         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
26071         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
26072         New subprograms.
26073         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
26074         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
26075         New subprograms.
26076         (Is_Pure_Unit_Access_Type): New flag
26077         (Abstract_Interfaces): Complete the assertion to cover all usages.
26078         (Set_Is_Interface): Complete the assertion to cover all usages.
26079         (Is_Primitive_Wrapper): New attribute.
26080         (Is_Obsolescent): Now applies to all entities (though it is only set
26081         for subprograms currently)
26082         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
26083         which solves various problems concerning access subtypes.
26084         (Has_Persistent_BSS): New flag
26085         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
26086         Remove these subprograms because this attribute is currently
26087         not used.
26088         New entity flags:
26089         Has_Specified_Stream_Input (Flag190)
26090         Has_Specified_Stream_Output (Flag191)
26091         Has_Specified_Stream_Read (Flag192)
26092         Has_Specified_Stream_Write (Flag193)
26093         Present in all type and subtype entities. Set for a given view if the
26094         corresponding stream-oriented attribute has been defined by an
26095         attribute definition clause. When such a clause occurs, a TSS is set
26096         on the underlying full view; the flags are used to track visibility of
26097         the attribute definition clause for partial or incomplete views.
26098         (Is_Pure_Unit_Access_Type): New flag
26099         Clarify use of Is_Internal.
26100         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
26101         internally generated to wrap the invocation of tasks and protected
26102         types that implement interfaces.
26103         (Implementation_Base_Type): Documentation correction
26104         (Is_Obsolescent): Now applies to all entities (though it is only set
26105         for subprograms currently)
26106         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
26107         which solves various problems concerning access subtypes.
26108
26109         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
26110         for examined parameters. Identify unequal parameter list lengths as
26111         non-conformant parameters.
26112         (Overriding_Possible): Do not check for "All" qualifier in declaration
26113         of controlling access parameter, following prescription of AI-404.
26114         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
26115         that build the procedure body that wraps an entry invocation
26116         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
26117         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
26118         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
26119         give support to abstract interface types
26120
26121         * freeze.adb (Freeze_Entity): Issue error message if
26122         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
26123         type has no storage pool (Ada 2005) AI-366.
26124         Also modified to give support to abstract interface types
26125         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
26126         Inline_Always pragma.
26127
26128         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
26129         now begin an entry declaration.
26130         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
26131         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
26132         a subprogram declaration preceded by an overriding indicator.
26133         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
26134         declarations or subprogram declarations preceded by reserved words
26135         "not" or "overriding".
26136         (P_Entry_Declaration): Update comment. Parse and check overriding
26137         indicator, set semantic flags of entry declarations.
26138         (P_Task): New error message in case of private applied
26139         to a task type declaration.
26140         (P_Protected): New error message in case of private applied
26141         to a task type declaration.
26142
26143         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
26144         in which the full view of a type implementing an interface is a
26145         concurrent type.
26146         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
26147         Declare_Inherited_Private_Subprograms): If an explicit operation
26148         overrides an operation that is inherited in the private part, mark the
26149         explicit one as overriding, to enable overriding indicator checks.
26150         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
26151         full view to partial view, to simplify handling in back-end.
26152
26153         * sprint.adb: Print interface lists where needed: derived types,
26154         protected types, task types.
26155         output "is null" for null procedures. Part of implementation of
26156
26157         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
26158         relaxation of rules for access types in pure, shared passive partitions.
26159
26160         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
26161         first read discriminants into temporary objects, performing checks on
26162         the read values, then possibly performing discriminant checks on the
26163         actual (if it is constrained), and only finally reading the components
26164         into a constrained temporary object.
26165         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
26166         case of reading discriminants of a mutable record type to recognize
26167         the new form of the code generated by
26168         Build_Mutable_Record_Read_Procedure.
26169
26170         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
26171         of a simple call to Make_TSS_Name.
26172         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
26173         buffer, in order for Is_TSS to work correctly on local TSS names.
26174
26175         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
26176         Is_Local_Anonymous_Access to check legaliy of attributes in the
26177         context of  access components and stand-alone access objects.
26178         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
26179         treated as available for a limited private type if there is an
26180         attribute_definition_clause that applies to its full view, but not in
26181         other cases where the attribute is available for the full view
26182         (specifically, the sole fact that the full view is non-limited does not
26183         make the attribute available for the partial view).
26184         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
26185         non-overloaded intrinsic subprogram.
26186         (Check_Stream_Attribute): Reject an attribute reference for an
26187         unavailable stream attribute even if the prefix is not a limited type
26188         (case of a 'Input attribute reference for an abstract, non-classwide
26189         type)
26190         (Stream_Attribute_Available): New function to determine whether a stream
26191         attribute is available at a place.
26192         (Check_Attribute): Use Stream_Attribute_Available instead of just
26193         testing for TSS presence on the implementation base type.
26194         (Analyze_Attribute): Modified to give support to task interfaces.
26195         (Analyze_Access_Attribute): Add error check for use of an Access (or
26196         Unrestricted_Access) attribute with a subprogram marked as
26197         Inline_Always.
26198         (Analyze_Attribute, case Attribute_Address): Add error check for use of
26199         an Address attribute with a subprogram marked as Inline_Always.
26200         Update Eval_Attribute to handle new value of Width from AI-395
26201
26202         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
26203         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
26204         Factor common code across the stream-oriented attribute circcuits into
26205         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
26206         processing is functionally identical to the previous duplicated one,
26207         except that an expression that denotes an abstract subprogram will now
26208         be rejected, as mandated by AI-195 item 5.
26209
26210         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
26211         Is_Local_Anonymous_Access to apply accessibility checks to access
26212         components and stand-alone access objects.
26213         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
26214         elsewhere.
26215         (Is_Potentially_Persistent_Type): New function
26216         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
26217         a heap-object whose type has a constrained partial view, the object is
26218         unconstrained and the component may depend on a discriminant, making its
26219         renaming illegal.
26220
26221         * sinfo.ads, sinfo.adb
26222         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
26223         (Must_Override): Flag applicable to N_Entry_Declaration.
26224         Indicate that interface_list can appear in single task and single
26225         protected declarations.
26226         Replace Is_Overriding and Not_Overriding with Must_Override and
26227         Must_Not_Override, to better express intent of AI.
26228         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
26229         of an overriding indicator in a subprogram or instance.
26230         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
26231         Add the overriding indicator [[not] overriding] construct to the
26232         following grammar productions:
26233          ENTRY_DECLARATION
26234          GENERIC_INSTANTIATION
26235          SUBPROGRAM_SPECIFICATION
26236
26237         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
26238         can start with an overriding indicator.
26239
26240         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
26241         flags accordingly on subrogram specifications or instances.
26242
26243         * sem_ch8.adb:
26244         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
26245         overriding_indicator, if present, is consistent with status of spec.
26246         Improve error message for null-excluding checks on controlling access
26247         parameters.
26248         (Check_In_Previous_With_Clause): Protect the frontend against
26249         previously reported critical errors in the context clauses.
26250         Save and restore Ada_Version_Explicit, for implementation of AI-362
26251         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
26252         operation verify that controlling formals of the renamed entity that
26253         are access parameters are explicitly non-null.
26254         (Find_Expanded_Name): Improve error message when prefix is an illegal
26255         reference to a private child unit.
26256
26257         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
26258         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
26259         Rewrite to correspond to new wide character names in AI-395
26260
26261         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
26262         default procedures.
26263
26264 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26265             Robert Dewar  <dewar@adacore.com>
26266
26267         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
26268         code, not on the bodies of predefined operations, to cut down on
26269         spurious noise.
26270
26271 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26272
26273         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
26274         be expanded in place. The size computation does not require a
26275         subtraction, which would raise an exception on a compiler built with
26276         assertions when the upper bound is Integer'first.
26277         (Flatten): For an array of composite components, take into account the
26278         size of the components to determine whether it is safe to expand the
26279         array into a purely positional representation.
26280
26281 2005-06-14  Thomas Quinot  <quinot@adacore.com>
26282
26283         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
26284         denoting a formal parameter into account.
26285
26286 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26287
26288         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
26289         the entry_call alternative of a conditional entry call, wrap the
26290         conditional entry call itself.
26291
26292 2005-06-14  Nicolas Setton  <setton@adacore.com>
26293             Ed Schonberg  <schonberg@adacore.com>
26294
26295         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
26296         the "simple_choice" member in a variant record, in accordance with the
26297         description in the package spec: the information output for a constant
26298         should be "S number", not "SS number".
26299         (Get_Encoded_Name): Return at once if not generating code. Avoids name
26300         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
26301
26302 2005-06-14  Thomas Quinot  <quinot@adacore.com>
26303
26304         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
26305         RACW without any primitives, do not generate the if statement for
26306         dispatching by name in the PolyORB/DSA case, as it would be malformed
26307         (it would have an Elsif_Parts list that is not No_List, but with a
26308         length of 0).
26309
26310 2005-06-14  Robert Dewar  <dewar@adacore.com>
26311
26312         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
26313
26314 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
26315
26316         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
26317         can determine whether pragma Suppress_Exception_Locations is in effect.
26318
26319         * utils2.c (build_call_raise): Do not pass the file name to the
26320         exception handler if pragma Suppress_Exception_Locations is in effect.
26321         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
26322
26323 2005-06-14  Emmanuel Briot  <briot@adacore.com>
26324
26325         * g-debpoo.adb (Deallocate, Dereference): Improve output.
26326
26327 2005-06-14  Nicolas Roche  <roche@adacore.com>
26328
26329         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
26330         to ""
26331         (Next_Level): Fix minor bug in handling of ../dir case
26332         (Read): Add dir separator to Directory name so that "" is understood as
26333          "/"
26334
26335 2005-06-14  Pascal Obry  <obry@adacore.com>
26336
26337         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
26338         releasing the items.
26339
26340 2005-06-14  Vincent Celier  <celier@adacore.com>
26341             Cyrille Comar  <comar@adacore.com>
26342
26343         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
26344         with output file descriptor and with output file name.
26345         (Dup, Dup2): Now global procedures as they are used by two subprograms
26346         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
26347
26348 2005-06-14  Thomas Quinot  <quinot@adacore.com>
26349
26350         PR ada/6717
26351         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
26352         broadcast address.
26353         (Create_Selector): Bind listening socket used to create the signalling
26354         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
26355         Set listen backlog to 1 to ensure that we detect socket theft by a
26356         failure of our own connect(2) call.
26357         (Check_Selector): Improve documentation of the selector mechanism.
26358         (Broadcast_Inet_Addr): New constant.
26359
26360 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
26361
26362         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
26363         type which turns out to be an incomplete and incorrect fix.
26364         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
26365         of the type is declared in a record (for determination of insertion
26366         type).
26367         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
26368         a private type and ensure that the primary entity is used for the type
26369         of the newly created function's V formal by taking the Etype of the
26370         view.
26371
26372 2005-06-14  Javier Miranda  <miranda@adacore.com>
26373             Jose Ruiz  <ruiz@adacore.com>
26374             Robert Dewar  <dewar@adacore.com>
26375             Ed Schonberg  <schonberg@adacore.com>
26376
26377         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
26378         that indicates if we are parsing a compilation unit found in a
26379         limited-with clause.
26380         It is use to avoid the circularity check.
26381
26382         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
26383         we are parsing a compilation unit found in a limited-with clause. This
26384         is use to avoid the circularity check.
26385
26386         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
26387         unit as a consequence of parsing a limited-with clause. This is used
26388         to avoid the circularity check.
26389
26390         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
26391         (Analyze_Context): Limited-with clauses are now allowed
26392         in more compilation units.
26393         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
26394         againts previously reported critical errors in context clauses
26395         (Install_Limited_Withed_Unit): Code cleanup plus static detection
26396         of two further errors: renamed subprograms and renamed packages
26397         are not allowed in limited with clauses.
26398         (Install_Siblings): Do not install private_with_clauses on the package
26399         declaration for a non-private child unit.
26400         (Re_Install_Parents): When a parent of the subunit is reinstalled,
26401         reset visibility of child units properly.
26402         (Install_Withed_Unit): When a child unit appears in a with_clause of its
26403         parent, it is immediately visible.
26404
26405 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26406             Emmanuel Briot  <briot@adacore.com>
26407
26408         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
26409         declared within an inlined body as referenced, to prevent spurious
26410         warnings.
26411         (Output_One_Ref): If an entity renames an array component, indicate in
26412         the ALI file that this aliases (renames) the array. Capture as well
26413         function renamings that rename predefined operations.
26414         Add information about generic parent for package and subprogram
26415         instances.
26416         (Get_Type_Reference): For a subtype that is the renaming of an actual in
26417         an instantiation, use the first_subtype to ensure that we don't generate
26418         cross-reference information for internal types.
26419         For objects and parameters of a generic private type, retain the '*'
26420         indicator to distinguish such an entity from its type.
26421
26422         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
26423         to store information about instantiated entities.
26424
26425         * ali.adb (Scan_ALI): Add support for parsing the reference to the
26426         generic parent
26427
26428         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
26429         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
26430         information.
26431
26432 2005-06-10  Doug Rupp  <rupp@adacore.com>
26433             Arnaud Charlet  <charlet@adacore.com>
26434             Olivier Hainque  <hainque@adacore.com>
26435             Jose Ruiz  <ruiz@adacore.com>
26436
26437         * Make-lang.in: Add initialize.o when needed.
26438         Remove obsolete references to RT_FLAGS.
26439         Add missing dependencies for sdefault.o
26440
26441         * initialize.c: New file.
26442
26443         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
26444         [VMS] cond_signal_table: Fix problem in declaration.
26445         [VMS] __gnat_error_handler: rewrite.
26446         Move all __gnat_initialize() routines to initialize.c
26447         Specialize the former "hpux" section to "hppa hpux", as this is what the
26448         section really is here for and we now have other hpux ports that need
26449         different contents.
26450         (__gnat_adjust_context_for_raise) i386-linux: First version of this
26451         function for this target. Adjust PC by one in the machine context. This
26452         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
26453         it is more reliable to do that in the signal handler itself.
26454         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
26455         flags, so that the handler is passed the context structure to adjust
26456         prior to the raise.
26457         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
26458         SA_SIGINFO sigaction should look like. Call
26459         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
26460         Machine_State_Operations stuff.
26461         Add conditional code so that the x86_64 is also supported.
26462
26463 2005-06-14  Pascal Obry  <obry@adacore.com>
26464
26465         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
26466         the library name.
26467
26468 2005-06-14  Robert Dewar  <dewar@adacore.com>
26469
26470         * opt.ads, opt.adb: New flags for persistent_bss mode
26471         Add Ada_Version_Explicit, for implementation of AI-362
26472         Add Assertions_Enabled_Config and associated handling
26473         Needed since setting can be changed with Assertion_Policy pragma
26474         Add new flag Warn_On_Ada_2005_Compatibility
26475
26476         * switch-c.adb: Recognize -gnatwy/Y
26477         Set Ada_Version_Explicit, for implementation of AI-362
26478         The -gnatg switch now includes -gnatyu
26479
26480         * usage.adb: Add -gnatwy/Y
26481         Remove wrong asterisk on -gnatwX line
26482         Add line for -gnatyu switch
26483
26484 2005-06-14  Vincent Celier  <celier@adacore.com>
26485
26486         * osint.adb (Add_Default_Search_Dirs): Put source and object
26487         directories of project files before directories coming from
26488         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
26489
26490 2005-06-14  Robert Dewar  <dewar@adacore.com>
26491
26492         PR ada/15613
26493         * par-ch2.adb (Scan_Pragma_Argument): New procedure
26494         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
26495
26496 2005-06-14  Vincent Celier  <celier@adacore.com>
26497
26498         * prep.adb (Preprocess): Ignore error when scanning the first token of
26499         a line.
26500
26501 2005-06-14  Vincent Celier  <celier@adacore.com>
26502
26503         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
26504         (Check_Stand_Alone_Library): If the specified reference symbol file does
26505         not exist, only issue a warning when the symbol policy is not
26506         Controlled. And, when symbol policy is Compliant, set the symbol
26507         policy to Autonomous.
26508
26509 2005-06-14  Vincent Celier  <celier@adacore.com>
26510
26511         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
26512         when the project file in a with clause is not the last one, that is the
26513         project file name is followed by a comma.
26514         * prj-pp.adb: (First_With_In_List): New Boolean global variable
26515         (Print): Issue list of project files separated by commas in with clauses
26516         according to the values returned by Is_Not_Last_In_List.
26517         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
26518         (Set_Is_Not_Last_In_List): New procedure
26519
26520 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
26521
26522         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
26523
26524 2005-06-14  Robert Dewar  <dewar@adacore.com>
26525
26526         * scng.adb: Add call to new Check_EOF routine
26527         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
26528         Add some comments regarding wide character handling
26529
26530         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
26531
26532         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
26533
26534         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
26535         characters are now considered graphic characters and hence yield false
26536         in this call.
26537
26538         * nmake.adt: Modify header so that xnmake does not generate output
26539         files with multiple blank lines.
26540
26541         * treeprs.adt: Remove a blank line so that output from xtreeprs does
26542         not have an extra blank line
26543
26544 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
26545
26546         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
26547         expression when the component type is an anonymous access type to
26548         ensure that appropriate accessibility checks are done.
26549
26550         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
26551         expression of an assignment when the target object is of an anonymous
26552         access type. This ensures that required accessibility checks are done.
26553         (One_Bound): Move the check for type Universal_Integer to
26554         Process_Bounds.
26555         (Process_Bounds): Check whether the type of the preanalyzed range is
26556         Universal_Integer, and in that case set Typ to Integer_Type prior
26557         to setting the type of the original range and the calls to One_Bound.
26558
26559 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26560
26561         * sem_case.adb (Expand_Others_Choice): Improve warning.
26562
26563 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26564
26565         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
26566         constraint of full view if present, when other type is discriminated.
26567         (Eval_Relational_Op): Recognize tests of pointer values against Null,
26568         when the pointer is known to be non-null, and emit appropriate warning.
26569
26570 2005-06-14  Robert Dewar  <dewar@adacore.com>
26571             Ed Schonberg  <schonberg@adacore.com>
26572
26573         PR ada/10671
26574         * sem_prag.adb: Implement pragma Persistent_BSS
26575         Remove obsolete pragma Persistent_Data, Persistent_Object
26576         Set Ada_Version_Explicit, for implementation of AI-362
26577         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
26578         Add processing for pragma Pure_05 and Preelaborate_05
26579         Add processing for Assertion_Policy pragma
26580         Add pragma identifiers for Assert
26581         (Analyze_Pragma, case Assert): Check number of arguments
26582         (Process_Inline): Additional guard against an illegal program, where the
26583         argument of the pragma is undefined, and warnings on redundant
26584         constructs are enabled.
26585         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
26586         Ada_05 to this pragma, specifying that the pragma is only active in
26587         Ada_05 mode.
26588         (Check_Arg_Order): New procedure
26589         Add appropriate calls to this procedure throughout
26590         Also throughout, check entity name before doing any other checks
26591
26592         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
26593         Remove obsolete pragma Persistent_Data, Persistent_Object
26594         Add entries for pragma Pure_05 and Preelaborate_05
26595         Add entries for Assertion_Policy pragma and associated names
26596         Add some names for pragma argument processing
26597
26598         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
26599
26600 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26601
26602         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
26603         appears within a negation (either from source or as a rewriting of
26604         inequality) adjust text of warning accordingly.
26605
26606 2005-06-14  Thomas Quinot  <quinot@adacore.com>
26607
26608         * s-strxdr.adb: Follow AI95-00132
26609
26610 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
26611
26612         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
26613
26614 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
26615             Jose Ruiz  <ruiz@adacore.com>
26616
26617         * s-tposen.adb, s-tpobop.adb
26618         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
26619         the exception id.
26620         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
26621         there is no violation of the Max_Entry_Queue_Length restriction (if it
26622         has been set); Program_Error is raised otherwise.
26623         (Requeue_Call): Before requeuing the task on the target entry queue we
26624         check that there is no violation of the Max_Entry_Queue_Length
26625         restriction (if it has been set); Program_Error is raised otherwise.
26626
26627 2005-06-14  Robert Dewar  <dewar@adacore.com>
26628
26629         * styleg.adb: Fix several remaining problems in -gnatyu switch
26630         Blank line count not reset at start
26631         Scanning outside source buffer in some cases
26632         Confusing message for blanks at end of file
26633         Non-empty blank lines not recognized
26634
26635         * nmake.adt: Modify header so that xnmake does not generate output
26636         files with multiple blank lines.
26637
26638         * treeprs.adt: Remove a blank line so that output from xtreeprs does
26639         not have an extra blank line
26640
26641 2005-06-14  Sergey Rybin  <rybin@adacore.com>
26642
26643         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
26644
26645 2005-06-14  Doug Rupp  <rupp@adacore.com>
26646             Vincent Celier  <celier@adacore.com>
26647
26648         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
26649         Update copyright.
26650
26651         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
26652         Remove "Library" command.
26653         Change keyword for style check -gnatyd from NOCRLF to
26654         DOS_LINE_ENDINGS.
26655         Remove useless second style check keyword NONE
26656         Remove help documentation for inexistent style check keyword
26657         RM_COLUMN_LAYOUT.
26658         Add help documentation for style check keywords DOS_LINE_ENDINGS,
26659         UNNECESSARY_BLANK_LINES and XTRA_PARENS
26660         Add UNNECESSARY_BLANK_LINES for -gnatyu
26661         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
26662
26663         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
26664
26665 2005-06-14  Vincent Celier  <celier@adacore.com>
26666
26667         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
26668         gprmake was invoked with -d.
26669         (Compile_Sources): If -d was used, output the "completed ..." message
26670         for each compilation.
26671         (Scan_Arg): Recognize new switch -d
26672         When -c and at least one main is specified, set
26673         Unique_Compile to True to guarantee that no other sources will be
26674         compiled.
26675
26676 2005-06-14  Matthew Heaney  <heaney@adacore.com>
26677
26678         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
26679         * a-swuwha.ads, a-swuwha.adb: New files
26680
26681         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
26682         * a-szuzha.ads, a-szuzha.adb: New files.
26683
26684         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
26685         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
26686         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
26687         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
26688         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
26689         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
26690         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
26691         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
26692         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
26693         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
26694         Ada 2005 RM.
26695
26696 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
26697             Olivier Hainque  <hainque@adacore.com>
26698             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26699             Pascal Obry  <obry@adacore.com>
26700
26701         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
26702
26703         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
26704         making a temporary around a procedure call because of non-addressable
26705         actual parameter.
26706         (process_freeze_entity): If entity is a private type, capture size
26707         information that may have been computed for the full view.
26708         (tree_transform, case N_Allocator): If have initializing expression,
26709         check type for Has_Constrained_Partial_View and pass that to
26710         build_allocator.
26711         (tree_transform, case N_Return_Statement): Pass extra arg to
26712         build_allocator.
26713
26714         * decl.c (annotate_value): Remove early return if -gnatR is not
26715         specified.
26716         (gnat_to_gnu_field): Don't make a packable type for a component clause
26717         if the position is byte aligned, the field is aliased, and the clause
26718         size isn't a multiple of the packable alignment. It serves no useful
26719         purpose packing-wise and would be rejected later on.
26720         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
26721
26722         PR ada/20515
26723         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
26724         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
26725         instead.
26726         (create_concat_name): Idem.
26727
26728 2005-06-10  Robert Dewar  <dewar@adacore.com>
26729             Eric Botcazou  <ebotcazou@adacore.com>
26730             Ben Brosgol  <brosgol@adacore.com>
26731             Cyrille Comar  <comar@adacore.com>
26732             Sergey Rybin  <rybin@adacore.com>
26733             Pascal Obry  <obry@adacore.com>
26734
26735         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
26736         Document second argument (Ada_05) of pragma Obsolescent
26737         Add note that call to subprogram marked with pragma Obsolescent
26738         is now considered to be a violation of program Restrictions
26739         (No_Obsolescent_Features).
26740         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
26741         that only machine-dependent attributes are supported.
26742
26743         * gnat_ugn.texi:
26744         Commented out menu lines and empty section for gnatclean examples
26745         Document -gnatwy/Y
26746         Fix some over long lines
26747         Clarify and enhance documentation of ADA_PROJECT_PATH.
26748         Rework section 2.11.2(3) about linking with a non-GNU compiler.
26749         Mention new switch -fcallgraph-info.
26750         Mention new switch -fstack-usage.
26751         For gnatpp, replace '-notab' with '-N' and add this option to Index
26752         Corrected VMS example.
26753         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
26754         Minor reformatting
26755         Add documentation for -gnatyu switch (unnecessary blank lines)
26756         Document new switch -U for GNAT PRETTY and GNAT METRIC
26757         Add note about Stdcall being handled as C convention on non Windows OS.
26758         Remove some junk typo in description of gnatbind -S switch
26759         Remove reference to Extensions_Allowed pragma
26760         Document the new order of the directories to be searched (source and
26761         object directories of project files before directories in ADA_*_PATH
26762         environment variables.
26763
26764         * g-trasym.ads: Document that IRIX is supported
26765
26766 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
26767
26768         * Makefile.in: Add initialize.o when needed.
26769         Adapt to new VMS package body Symbols and subunits
26770         No specialized version of a-sytaco is needed for VxWorks.
26771
26772         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
26773         * a-zchara.ads, a-widcha.ads: New files.
26774
26775         * system-hpux-ia64.ads: New file.
26776
26777         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
26778         is imported from the VxWorks kernel.
26779
26780 2005-06-14  Robert Dewar  <dewar@adacore.com>
26781
26782         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
26783         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
26784         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
26785         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
26786         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
26787         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
26788         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
26789         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
26790         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
26791         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
26792         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
26793         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
26794
26795 2005-06-14  Thomas Quinot  <quinot@adacore.com>
26796
26797         * xeinfo.adb: Fix typo in comment
26798
26799 2005-06-14  Javier Miranda  <miranda@adacore.com>
26800
26801         * repinfo.ads: Fix typo in comment
26802
26803 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
26804
26805         * s-finimp.adb (Parent_Tag): Delete this imported function (function
26806         Parent_Tag is now in the visible part of Ada.Tags).
26807         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
26808         using imported function.
26809
26810 2005-06-14  Bernard Banner  <banner@adacore.com>
26811
26812         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
26813         also apply for handling support for VxSim 653.
26814
26815 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
26816
26817         * xsnames.adb: Add automatic generation of snames.h.
26818
26819 2005-06-14  Thomas Quinot  <quinot@adacore.com>
26820
26821         * gen-soccon.c: Add IP_MULTICAST_IF constant
26822         Minor reformatting and adjustments to prevent warnings.
26823
26824 2005-06-14  Pascal Obry  <obry@adacore.com>
26825
26826         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
26827
26828 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
26829
26830         * trans.c (gnat_gimplify_expr): Call
26831         recompute_tree_invarant_for_addr_expr when we change
26832         the operand of the ADDR_EXPR.
26833
26834 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26835
26836         * misc.c: Don't include errors.h.
26837
26838 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26839
26840         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
26841
26842 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
26843
26844         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
26845         comment typos.
26846         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
26847
26848 2005-05-16  Nathanael Nerode  <neroden@gcc.gnu.org>
26849
26850         PR ada/20270
26851         * Makefile.in: Make TGT_LIB behave correctly.
26852
26853 2005-04-23  DJ Delorie  <dj@redhat.com>
26854
26855         * misc.c: Adjust warning() callers.
26856
26857 2005-04-16  Laurent Guerby  <laurent@guerby.net>
26858
26859         PR ada/18847
26860         * a-nudira.adb (Value): Check for valid string.
26861         * a-nuflra.adb (Value): Likewise.
26862
26863 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
26864
26865         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
26866
26867 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
26868
26869         * adaint.c, init.c, tracebak.c: Fix comment typos.
26870         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
26871
26872 2005-04-07  Laurent Guerby  <laurent@guerby.net>
26873             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26874
26875         * Makefile.in: Add make ifeq define for hppa linux tasking support.
26876         * system-hpux.ads: Define Signed_Zeros to be True.
26877         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
26878
26879 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
26880
26881         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
26882         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
26883         typos.
26884
26885 2005-03-30  Tom Tromey  <tromey@redhat.com>
26886
26887         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
26888
26889 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
26890
26891         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
26892
26893 2005-03-29  Robert Dewar  <dewar@adacore.com>
26894
26895         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
26896         fixed-point expression has value that is not a multiple of the Small
26897         value.
26898
26899         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
26900
26901         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
26902         nanoseconds.
26903
26904         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
26905
26906 2005-03-29  Vincent Celier  <celier@adacore.com>
26907
26908         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
26909         (Build_Dynamic_Library.Version_String): Return the empty string when
26910         Lib_Version is empty or when the symbol policy is not Autonomous.
26911
26912         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
26913         a symbol is not in the reference symbol file, increase the Major ID
26914         and set the Minor ID to 0.
26915         Use gsmatch=lequal instead of gsmatch=equal
26916
26917 2005-03-29  Doug Rupp  <rupp@adacore.com>
26918
26919         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
26920         name and translate.
26921
26922 2005-03-29  Javier Miranda  <miranda@adacore.com>
26923
26924         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
26925         (Inherit_DT): The first formal has been redefined as a Tag.
26926         This allows us the removal of the subprogram Get_TSD.
26927         (TSD): Replace the call to Get_TSD by the actual code.
26928
26929         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
26930         (Make_DT): Upgrade the call to Inherit_TSD according to the
26931         new interface: the first formal is now a Tag.
26932
26933         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
26934         redefined as a Tag.
26935         This change allows us to remove the subprogram Get_TSD.
26936         (CPP_Get_TSD): Subprogram removed.
26937         (TSD): Replace the call to CPP_Get_TSD by the actual code.
26938
26939         * rtsfind.ads: Remove support to call the run-time
26940         subprogram Get_TSD
26941
26942 2005-03-29  Robert Dewar  <dewar@adacore.com>
26943
26944         * errutil.adb, errout.adb:
26945         Minor comment updates on Line_Terminator references
26946
26947         * par-ch10.adb: Add ??? comment about line terminator
26948
26949         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
26950         (check dos line terminator).
26951         (Check_Line_Max_Length): New procedure, split off from the existing
26952         Check_Line_Terminator routine. Separating this out allows -gnatyf to
26953         be properly recognized.
26954
26955         * styleg.adb: Add ??? comment for line terminator reference
26956
26957         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
26958         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
26959
26960         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
26961         (check dos line terminator).
26962         (Check_Line_Max_Length): New procedure, split off from the existing
26963         Check_Line_Terminator routine. Separating this out allows -gnatyf to
26964         be properly recognized.
26965
26966         * stylesw.ads, stylesw.adb:
26967         Add handling for new -gnatyd switch (check dos line terminator)
26968
26969         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
26970         Recognize -gnatwb/-gnatwB switches
26971         Include Warn_On_Bad_Fixed_Value for -gnatg
26972
26973         * usage.adb:
26974         Add line for new -gnatyd switch (check dos line terminator)
26975
26976         * usage.adb: Add lines for -gnatwb/-gnatwB
26977
26978         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
26979
26980         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
26981
26982         * gnat_ugn.texi: Fix overlong lines
26983         Document new -gnatyd switch
26984         Document new -gnatwb/-gnatwB switches
26985
26986 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
26987
26988         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
26989         order to retrieve the component list of the type, before examining
26990         individual components.
26991
26992         * sem_type.adb (Covers): Types are compatible if one is the base type
26993         of the other, even though their base types might differ when private
26994         views are involved.
26995
26996 2005-03-29  Thomas Quinot  <quinot@adacore.com>
26997
26998         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
26999         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
27000         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
27001         analyzed if expansion is disabled (which could otherwise cause spurious
27002         error messages if expansion has been disabled due to previous
27003         (unrelated) errors).
27004
27005         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
27006         is disabled, the entity denoted by the argument is the access type
27007         itself, not an underlying record type, so there is no need to go back
27008         to the Corresponding_Remote_Type.
27009
27010 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
27011             Robert Dewar  <dewar@adacore.com>
27012
27013         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
27014         expand a call to an instance of
27015         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
27016         Constructor actual of the instance. A class-wide membership
27017         check is also generated, to ensure that the tag passed to the instance
27018         denotes a type in the class.
27019         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
27020         of Name_Generic_Dispatching_Constructor.
27021
27022         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
27023         05 unit for AI-260-02).
27024
27025         * a-tgdico.ads: New file.
27026
27027         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
27028         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
27029
27030         * snames.ads, snames.adb (Preset_Names): Add entry for
27031         Generic_Dispatching_Constructor.
27032
27033         PR ada/20300
27034         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
27035         character type cases.
27036         (Analyze_Subprogram_Renaming): Add special handling for
27037         the case of renaming of stream attributes when the renaming denotes a
27038         generic formal subprogram association for an abstract formal subprogram.
27039         Check that the attribute is a primitive stream attribute (and not
27040         a class-wide stream attribute) and then rewrite the attribute name
27041         as the name of the appropriate compiler-generated stream primitive.
27042
27043 2005-03-29  Robert Dewar  <dewar@adacore.com>
27044
27045         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
27046         recursive calls.
27047         (Is_Possibly_Unaligned_Object): Correct typo that
27048         resulted in inaccurate result for unaligned scalars within records.
27049
27050 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
27051
27052         * freeze.adb (Freeze_Record_Type): If the type of the component is an
27053         itype whose parent is controlled and not yet frozen, do not create a
27054         freeze node for the itype if expansion is disabled.
27055
27056 2005-03-29  Vincent Celier  <celier@adacore.com>
27057
27058         * make.adb (Gnatmake): Don't fail if the main project file is declared
27059         as having no Ada sources. Do not display message "no sources to
27060         compile" in quiet output.
27061
27062 2005-03-29  Doug Rupp  <rupp@adacore.com>
27063
27064         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
27065         extra tools.
27066
27067 2005-03-29  Robert Dewar  <dewar@adacore.com>
27068
27069         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
27070         child.
27071
27072 2005-03-29  Robert Dewar  <dewar@adacore.com>
27073
27074         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
27075         missing TYPE Improve the error message generated when compiling a
27076         limited interface in Ada83 or Ada95 mode.
27077
27078 2005-03-29  Robert Dewar  <dewar@adacore.com>
27079
27080         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
27081         rather than proceed ahead using a junk attribute name.
27082
27083 2005-03-29  Vincent Celier  <celier@adacore.com>
27084
27085         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
27086
27087         * prj-part.adb (Parse_Single_Project): Set the location of a project
27088         on its defining identifier, rather than on the reserved word "project".
27089
27090         * prj-proc.adb (Expression): Adapt to the fact that default of external
27091         references may be string expressions, not always literal strings.
27092         (Recursive_Process): Set Display_Name equal to Name
27093         when Location is No_Location, that is when there is no actual file.
27094         Get the Display_Name of the project from the source, when it is not a
27095         virtual project.
27096         (Process): Use the Display_Name in error messages
27097
27098         * prj-strt.adb (External_Reference): Allow default to be string
27099         expressions, not only literal strings.
27100
27101 2005-03-29  Vincent Celier  <celier@adacore.com>
27102
27103         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
27104         file and the reference symbol file to be the same file.
27105
27106 2005-03-29  Thomas Quinot  <quinot@adacore.com>
27107
27108         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
27109         forbid conversion of a local access-to-subprogram type to a remote one.
27110
27111         * sem_util.adb (Wrong_Type): For a record type that is the expanded
27112         equivalent type for a remote access-to-subprogram type, go back to the
27113         original RAS entity when displaying an error message, so the casing is
27114         the original source casing.
27115
27116 2005-03-29  Robert Dewar  <dewar@adacore.com>
27117
27118         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
27119         on param update.
27120
27121 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
27122
27123         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
27124         subtype if code is being pre-analyzed, to prevent un-expanded
27125         references to protected formals, among others.
27126         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
27127         interpretation that can be a call, include the result of the call as a
27128         possible interpretation of the dereference.
27129
27130         * sem_ch5.adb (Process_Bounds): Determine type of range by
27131         pre-analyzing a copy of the original range, and then analyze the range
27132         with the expected type.
27133
27134         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
27135         with an overloaded prefix where not all interpretations yield an
27136         access to subprogram, do not rewrite node as a call.
27137         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
27138         the node as a call once the context identifies the interpretation of
27139         the prefix whose call yields the context type.
27140         (Valid_Conversion): For the case of a conversion between
27141         local access-to-subprogram types, check subtype conformance using
27142         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
27143         detailed error message.
27144
27145 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
27146
27147         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
27148         indicator, indicate that the formal can never be null.
27149         (Process_Formals): If a formal has a non_null indicator, insert the
27150         resulting subtype immediately before the enclosing subprogram decl,
27151         and not at the beginning of the corresponding declarative part, to
27152         prevent access before elaboration (Ada2005).
27153
27154 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27155
27156         PR ada/19956
27157         * utils.c (finish_record_type): Use variable_size when setting sizes.
27158
27159 2005-03-29  Robert Dewar  <dewar@adacore.com>
27160
27161         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
27162         guarantee Unix style line terminators for the output files, even when
27163         running on windows.
27164
27165 2005-03-29  Robert Dewar  <dewar@adacore.com>
27166
27167         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
27168         buffer if an exception is raised.
27169
27170 2005-03-29  Ed Falis  <falis@adacore.com>
27171
27172         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
27173         VxWorks 653 1.4
27174
27175 2005-03-29  Robert Dewar  <dewar@adacore.com>
27176
27177         * sem_util.ads: Minor reformatting
27178         * gnat_rm.texi: Minor editing.
27179
27180 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
27181
27182         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
27183         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
27184
27185 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
27186
27187         * adaint.c (__gnat_portable_spawn): Adjust cast.
27188
27189 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
27190
27191         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
27192
27193 2005-03-17  Pascal Obry  <obry@adacore.com>
27194
27195         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
27196         used.
27197
27198         * expect.c (__gnat_waitpid): Moved here from adaint.c.
27199         Reimplement under Win32 using Win32 API.
27200
27201         (__gnat_kill) [Win32]: Properly close the process handle before leaving
27202         this routine.
27203
27204 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
27205
27206         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
27207         (DECL_RENAMED_OBJECT): New accessor macro.
27208         (SET_DECL_RENAMED_OBJECT): New setter macro.
27209
27210         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
27211         object in all cases.  Attach the renamed object to the VAR_DECL.
27212         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
27213         field is not prescribed.
27214
27215         * misc.c (gnat_handle_option): Handle -gnatO separately.
27216         (gnat_print_decl) <VAR_DECL>: New case.
27217         Print the DECL_RENAMED_OBJECT node.
27218
27219         * lang.opt:  Declare separate -gnatO option.
27220
27221         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
27222         pointer, replace it with the renamed object.
27223         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
27224         pointer type if the source is not a fat pointer type whose underlying
27225         array has the same non-zero alias set as that of the destination array.
27226
27227 2005-03-17  Javier Miranda  <miranda@adacore.com>
27228
27229         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
27230         (Get_Inheritance_Depth): Removed.
27231         (Set_Inheritance_Depth): Removed.
27232
27233         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
27234         subprogram Get_Expanded_Name because it is not referenced by the
27235         frontend.
27236
27237         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
27238         (CPP_Get_Inheritance_Depth): Removed.
27239         (CPP_Set_Inheritance_Depth): Removed.
27240
27241         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
27242
27243 2005-03-17  Robert Dewar  <dewar@adacore.com>
27244
27245         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
27246         3, since we now expect GCC 3 to do all the work.
27247
27248 2005-03-17  Javier Miranda  <miranda@adacore.com>
27249
27250         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
27251         of one barrier to avoid wrong usage of this attribute.
27252
27253         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
27254         First_Private_Entity.
27255
27256         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
27257         the subprogram against wrong usage.
27258         Adapt the code to traverse the entities in the
27259         scope of a record_type because in addition to its usage regarding
27260         packages, this subprogram is also called by Expand_N_Freeze_Entity
27261         to install the visible declarations of the enclosing scope of a
27262         record_type_with_private to establish the proper visibility before
27263         freezing the entity and related subprograms.
27264
27265 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
27266
27267         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
27268         entry formals.
27269
27270 2005-03-17  Thomas Quinot  <quinot@adacore.com>
27271
27272         * exp_ch3.adb (Check_Attr): New subprogram.
27273         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
27274         into a new Check_Attr subprogram, in order to provide a more
27275         explanatory error message (including the name of the missing attribute).
27276         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
27277         subprogram determines whether a default implementation exists for a
27278         given stream attribute.
27279         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
27280         Determine whether to generate a default implementation for each stream
27281         attribute separately, as this depends on the specific attribute.
27282
27283         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
27284         limited extension where a stream attribute is missing for a limited
27285         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
27286         generate a bogus reference to the missing attribute to prevent
27287         cascaded errors. Instead, generate a null statement.
27288
27289         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
27290         available for a limited type if it has been specified for an ancestor
27291         of the type.
27292
27293 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
27294
27295         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
27296         entity is an operator.
27297
27298 2005-03-17  Thomas Quinot  <quinot@adacore.com>
27299
27300         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
27301         spec, to make this predicate available to other units.
27302
27303         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
27304         reimplementing it.
27305
27306         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
27307         when no distribution runtime library is available.
27308
27309         * sem_res.adb, sem_dist.adb: Disable expansion of remote
27310         access-to-subprogram types when no distribution runtime library is
27311         available.
27312         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
27313         predicate available to other units.
27314
27315         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
27316         spec, to make this predicate available to other units.
27317
27318 2005-03-17  Vincent Celier  <celier@adacore.com>
27319
27320         * make.adb (Insert_Project_Sources): Make sure the Q is always
27321         initialized.
27322
27323         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
27324         the default for the tree, not the global default naming.
27325
27326         * prj-proc.adb (Recursive_Process): No need to put the default naming
27327         in the project data, it's already there.
27328
27329 2005-03-17  Doug Rupp  <rupp@adacore.com>
27330
27331         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
27332
27333         * 5xcrtl.ads: Renamed to...
27334         * s-crtl-vms64.ads: ...this new file
27335
27336 2005-03-17  Robert Dewar  <dewar@adacore.com>
27337
27338         PR ada/19519
27339         * namet.adb (Copy_One_Character): Set proper wide character encoding
27340         for upper half character if we have upper half encoding.
27341
27342 2005-03-17  Robert Dewar  <dewar@adacore.com>
27343
27344         * par.adb (Par): Improved msg for attempt to recompile predefined unit
27345
27346 2005-03-17  Thomas Quinot  <quinot@adacore.com>
27347
27348         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
27349         tagged limited type, the TSS is a newly built renaming declaration:
27350         insert it using Set_TSS, not Copy_TSS.
27351
27352 2005-03-17  Javier Miranda  <miranda@adacore.com>
27353
27354         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
27355         Try_Object_Operation): Analyze the object that is accessible
27356         through the prefix of the subprogram call before we apply
27357         the transformation of the object-operation notation.
27358
27359 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
27360
27361         * s-taprob.adb (Initialize_Protection): Initialize the protected
27362         object's owner to Null_Task.
27363         (Lock): If pragma Detect_Blocking is in effect and the caller of this
27364         procedure is already the protected object's owner then Program_Error
27365         is raised. In addition the protected object's owner is updated.
27366         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
27367         of this procedure is already the protected object's owner then
27368         Program_Error is raised.
27369         In addition the protected object's owner is updated.
27370         (Unlock): Remove the ownership of the protected object.
27371
27372         * s-taprob.ads (Protection): Add the field Owner, used to store the
27373         protected object's owner.
27374         This component is needed for detecting one type of potentially blocking
27375         operations (external calls on a protected subprogram with the same
27376         target object as that of the protected action). Document the rest of
27377         the components.
27378
27379         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
27380         Initialize the protected object's owner to Null_Task.
27381         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
27382         caller of this procedure is already the protected object's owner then
27383         Program_Error is raised.
27384         Do not raise Program_Error when this procedure is called from a
27385         protected action.
27386         (Unlock_Entries): Remove the ownership of the protected object.
27387         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
27388         of this procedure is already the protected object's owner then
27389         Program_Error is raised.
27390         Do not raise Program_Error when this procedure is called from
27391         a protected action.
27392
27393         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
27394         used to store the protected object's owner.
27395
27396         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
27397         effect and this procedure (a potentially blocking operation) is called
27398         from whithin a protected action, Program_Error is raised.
27399         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
27400         and this procedure (a potentially blocking operation) is called from
27401         whithin a protected action, Program_Error is raised.
27402
27403 2005-03-17  Vincent Celier  <celier@adacore.com>
27404             Nicolas Setton  <setton@adacore.com>
27405
27406         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
27407         switch, not supported by the linker on Darwin. Add '_' before
27408         <library>init, as this character is added unconditionally by the
27409         compiler.
27410         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
27411         correct one ".dylib". This fixes detection of the archive files when
27412         building library projects.
27413
27414 2005-03-17  Vincent Celier  <celier@adacore.com>
27415
27416         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
27417         -gnat83, -gnat95 and -gnat05.
27418
27419 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
27420
27421         * gnat_ugn.texi: Document gnatmem restriction
27422
27423 2005-03-17  Thomas Quinot  <quinot@adacore.com>
27424
27425         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
27426         cleanup
27427
27428 2005-03-17  Robert Dewar  <dewar@adacore.com>
27429
27430         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
27431         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
27432         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
27433
27434         * casing.adb: Comment improvements
27435
27436 2005-03-17  Pascal Obry  <obry@adacore.com>
27437
27438         * g-expect.adb: Minor reformatting.
27439
27440 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
27441
27442         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
27443         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
27444         to dependencies.
27445
27446 2005-03-15  Vincent Celier  <celier@adacore.com>
27447
27448         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
27449         Add new parameter In_Tree to specify the project tree: needed
27450         by the project manager. Adapt to changes in project manager
27451         using new parameter In_Tree.
27452
27453 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
27454
27455         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
27456         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
27457         ada/bldtools to avoid make -jN failures.
27458
27459 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
27460
27461         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
27462         to NULL_TREE on entry.
27463
27464 2005-03-15  Robert Dewar  <dewar@adacore.com>
27465
27466         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
27467         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
27468         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
27469         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
27470         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
27471         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
27472         system-interix.ads, system-solaris-sparc.ads,
27473         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
27474         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
27475         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
27476         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
27477         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
27478         Compiler_System_Version to be False.
27479
27480         * opt.ads: Add new flag Opt.Address_Is_Private
27481
27482         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
27483         Add new parameter Compiler_System_Version to avoid checking for
27484         completeness of parameters when compiler is compiling itself.
27485         Allows old versions of GNAT to be compiled with new compiler.
27486
27487 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
27488
27489         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
27490         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
27491         calling thread.
27492         (Stack_Base_Available): New flag.
27493         (Get_Page_Size): New overloaded functions imported from C.
27494         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
27495         PROT_ON, PROT_OFF): New constants.
27496         (mprotect): New function imported from C.
27497         (pthread_teb_t): New record type.
27498
27499         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
27500         (Create_Task): Account for the Yellow Zone and the guard page.
27501
27502 2005-03-15  Vincent Celier  <celier@adacore.com>
27503
27504         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
27505         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
27506         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
27507         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
27508         Library_File_Name_For): Add new parameter In_Tree
27509         to specify the project tree: needed by the project manager.
27510         Adapt to changes in project manager using new parameter In_Tree.
27511         Remove local imports, use functions in System.CRTL.
27512
27513         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
27514         to use the project manager.
27515
27516         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
27517         In_Tree to designate the project tree. Adapt to changes in the project
27518         manager, using In_Tree.
27519
27520         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
27521         Copy_Interface_Sources): Add new parameter In_Tree to specify the
27522         project tree: needed by the project manager.
27523         (Build_Library): Check that Arg'Length >= 6 before checking if it
27524         contains "--RTS=...".
27525
27526         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
27527         Library_File_Name_For): Add new parameter In_Tree to specify the
27528         project tree: needed by the project manager.
27529
27530         * prj.ads, prj.adb: Major modifications to allow several project trees
27531         in memory at the same time.
27532         Change tables to dynamic tables and hash tables to dynamic hash
27533         tables. Move tables and hash tables from Prj.Com (in the visible part)
27534         and Prj.Env (in the private part). Move some constants from the visible
27535         part to the private part. Make other constants deferred.
27536         (Project_Empty): Make it a variable, not a function
27537         (Empty_Project): Add parameter Tree. Returns the data with the default
27538         naming data of the project tree Tree.
27539         (Initialize): After updating Std_Naming_Data, copy its value to the
27540         component Naming of Project Empty.
27541         (Register_Default_Naming_Scheme): Use and update the default naming
27542         component of the project tree, instead of the global variable
27543         Std_Naming_Data.
27544         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
27545         Tree is not defaulted, return the default naming data of the Tree.
27546         (Initial_Buffer_Size): Constant moved from private part
27547         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
27548         variables initialized in procedure Initialize.
27549         (Add_To_Buffer): Add two in out parameters to replace global variables
27550         Buffer and Buffer_Last.
27551         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
27552         functions.
27553         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
27554         hash tables.
27555         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
27556         for the project tree.
27557         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
27558         constant at the beginning of the package spec, so that they cane be used
27559         in subprograms before their full declarations.
27560         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
27561         (Empty_Project): Add parameter of type Project_Node_Ref
27562         (Private_Project_Tree_Data): Add component Default_Naming of type
27563         Naming_Data.
27564         (Buffer, Buffer_Last): remove global variables
27565         (Add_To_Buffer): Add two in out parameters to replace global variables
27566         Buffer and Buffer_Last.
27567         (Current_Packages_To_Check): Remove global variable
27568         (Empty_Name): Move to private part
27569         (No-Symbols): Make it a constant
27570         (Private_Project_Tree_Data): New type for the private part of the
27571         project tree data.
27572         (Project_Tree_Data): New type for the data of a project tree
27573         (Project_Tree_Ref): New type to designate a project tree
27574         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
27575         for the project tree.
27576
27577         * prj-attr.ads: Add with Table; needed, as package Prj no longer
27578         imports package Table.
27579
27580         * prj-com.adb: Remove empty, no longer needed body
27581
27582         * prj-com.ads: Move most of the content of this package to package Prj.
27583
27584         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
27585         designate the project node tree and Packages_To_Check to replace
27586         global variable Current_Packages_To_Check.
27587         Add new parameters In_Tree and Packages_To_Check to local subprograms,
27588         when needed. Adapt to changes in project manager with project node tree
27589         In_Tree.
27590
27591         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
27592         project tree to most subprograms. Move tables and hash tables to
27593         private part of package Prj.
27594         Adapt to changes in project manager using project tree In_Tree.
27595
27596         * prj-makr.adb (Tree): New constant to designate the project node tree
27597         Adapt to change in project manager using project node tree Tree
27598
27599         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
27600         display the Library_Src_Dir and the Library_Dir.
27601         Add new parameter In_Tree to designate the project node tree to most
27602         subprograms. Adapt to changes in the project manager, using project tree
27603         In_Tree.
27604         (Check_Naming_Scheme): Do not alter the casing on platforms where
27605         the casing of file names is not significant.
27606         (Check): Add new parameter In_Tree to designate the
27607
27608         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
27609         designate the project tree.
27610         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
27611
27612         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
27613         to replace those that were in the private part of package Prj.
27614         Add new parameter In__Tree to designate the project node tree to most
27615         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
27616         (Post_Parse_Context_Clause): When specifying the project node of a with
27617         clause, indicate that it is a limited with only if there is "limited"
27618         in the with clause, not necessarily when In_Limited is True.
27619         (Parse): Add new parameter In_Tree to designate the project node tree
27620
27621         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
27622         designate the project node tree. Adapt to change in Prj.Tree with
27623         project node tree In_Tree.
27624
27625         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
27626         tree In_Tree in the call to function Empty_Process to give its initial
27627         value to the project data Processed_Data.
27628         Add new parameters In_Tree to designate the project tree and
27629         From_Project_Node_Tree to designate the project node tree to several
27630         subprograms. Adapt to change in project manager with project tree
27631         In_Tree and project node tree From_Project_Node_Tree.
27632
27633         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
27634         to replace those that were in the private part of package Prj.
27635         Add new parameter In_Tree to designate the project node tree to most
27636         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
27637
27638         * prj-tree.ads, prj-tree.adb: Add new parameter of type
27639         Project_Node_Tree_Ref to most subprograms.
27640         Use this new parameter to store project nodes in the designated project
27641         node tree.
27642         (Project_Node_Tree_Ref): New type to designate a project node tree
27643         (Tree_Private_Part): Change table to dynamic table and hash tables to
27644         dynamic hash tables.
27645
27646         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
27647         the project tree to most subprograms. Adapt to changes in project
27648         manager using project tree In_Tree.
27649
27650         * makegpr.adb (Project_Tree): New constant needed to use project
27651         manager.
27652
27653 2005-03-15  Olivier Hainque  <hainque@adacore.com>
27654
27655         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
27656         for sigactions with SA_SIGINFO set. Call
27657         __gnat_adjust_context_for_raise before raising, to perform the
27658         potentially required adjustments to the machine context for the GCC
27659         unwinder.
27660
27661         * raise.h (__gnat_adjust_context_for_raise): New prototype.
27662
27663         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
27664         Adjust PC by one in the provided machine context.
27665         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
27666         so that the handler is passed the context structure to adjust prior to
27667         the raise.
27668         (__gnat_error_handler) HPUX: Adjust the signature to match what an
27669         SA_SIGINFO sigaction should look like. Call
27670         __gnat_adjust_context_for_raise before actually raising.
27671         (__gnat_adjust_context_for_raise): Default noop to help PC
27672         adjustments before raise from signal handlers.
27673         (__gnat_error_handler): Indirectly call a predicate function to
27674         determine if a condition should be resignaled or not.
27675         (__gnat_set_resignal_predicate): User interface to modify the predicate.
27676         (__gnat_default_resignal_p): Default GNAT predicate.
27677
27678 2005-03-15  Doug Rupp  <rupp@adacore.com>
27679
27680         * adaint.c: Prefix #include of VMS system header files with vms/
27681         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
27682         Do not define a dummy function "convert_addresses" under Darwin,
27683         not needed.
27684
27685         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
27686         with vms/
27687
27688 2005-03-15  Nicolas Setton  <setton@adacore.com>
27689
27690         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
27691         PPC/AIX.
27692
27693 2005-03-15  Robert Dewar  <dewar@adacore.com>
27694
27695         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
27696         AI-386.
27697
27698         * a-retide.ads: Minor comment changes
27699
27700 2005-03-15  Robert Dewar  <dewar@adacore.com>
27701
27702         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
27703         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
27704         Realloc_For_Chunk to private part of package.
27705         New subprograms for AI-301
27706
27707         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
27708         Get_Line procedure.
27709         Avoid unnecessary use of Get/Set_Wide_String
27710
27711 2005-03-15  Robert Dewar  <dewar@adacore.com>
27712
27713         PR ada/13470
27714         * a-stunau.ads, a-stunau.adb:
27715         Change interface to allow efficient (and correct) implementation
27716         The previous changes to allow extra space in unbounded strings had
27717         left this interface a bit broken.
27718
27719         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
27720
27721         * g-spipat.ads, g-spipat.adb: New interface for Get_String
27722         Minor reformatting (function specs)
27723
27724         * g-spitbo.adb: New interface for Get_String
27725
27726         * g-spitbo.ads: Minor reformatting
27727
27728         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
27729
27730         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
27731
27732 2005-03-15  Javier Miranda  <miranda@adacore.com>
27733             Robert Dewar  <dewar@adacore.com>
27734             Thomas Quinot  <quinot@adacore.com>
27735             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27736
27737         * atree.ads, atree.adb: Add support for Elist24 field
27738
27739         * atree.h: Fix wrong definition of Field27
27740         Add support for Elist16 field
27741         Add support for Elist24 field
27742
27743         * einfo.ads, einfo.adb (Abstract_Interfaces,
27744         Set_Abstract_Interfaces): New subprograms.
27745         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
27746         subprograms.
27747         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
27748         entities rather than a single node.
27749         (Is_Interface, Set_Is_Interface): New subprogram
27750         (First_Tag_Component): New syntesized attribute
27751         (Next_Tag_Component): New synthesized attribute
27752         (Write_Entity_Flags): Upgraded to write Is_Interface
27753         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
27754         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
27755         (Task_Body_Procedure): New subprogram to read this attribute.
27756         (Set_Task_Body_Procedure): New subprogram to set this attribute.
27757         (Has_Controlled_Component): Now applies to all entities.
27758         This is only a documentation change, since it always worked to apply
27759         this to other than composite types (yielding false), but now this is
27760         official.
27761         Update documentation on Must_Be_Byte_Aligned for new spec
27762
27763         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
27764         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
27765         uses of the Access_Disp_Table attribute to reference the first dispatch
27766         table associated with a tagged type. As
27767         part of the implementation of abstract interface types,
27768         Access_Disp_Table has been redefined to contain a list of dispatch
27769         tables (rather than a single dispatch table).
27770         Similarly, upgrade all the references to Tag_Component by the
27771         new attribute First_Tag_Component.
27772         (Find_Inherited_TSS): Moved to exp_tss.
27773         Clean up test in Expand_N_Object_Declaration for cases
27774         where we need to do a separate assignment of the initial value.
27775         (Expand_N_Object_Declaration): If the expression in the
27776         declaration of a tagged type is an aggregate, no need to generate an
27777         additional tag assignment.
27778         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
27779         is to be deleted.
27780         Bit packed array ops are only called if operands are known to be
27781         aligned.
27782         (Component_Equality): When returning an N_Raise_Program_Error statement,
27783         ensure that its Etype is set to Empty to avoid confusing GIGI (which
27784         expects that only expressions have a bona fide type).
27785         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
27786         determine the amount of data to be copied.
27787
27788         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
27789         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
27790             INTERFACE_TYPE_DEFINITION ::=
27791               [limited | task | protected | synchronized] interface
27792                 [AND interface_list]
27793
27794         * par-ch3.adb (P_Type_Declaration): Modified to give support to
27795         interfaces.
27796         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
27797         interfaces.
27798         (P_Interface_Type_Definition): New subprogram that parses the new
27799         syntax rule of Ada 2005 interfaces
27800         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
27801         messages by the correct RENAMES (quotes removed).
27802
27803         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
27804         attribute First_Tag_Component.
27805
27806         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
27807         (Interface_List, Set_Interface_List): New subprograms.
27808         (Interface_Present, Set_Interface_Present): New subprograms.
27809         (Limited_Present, Set_Limited_Present): Available also in derived
27810         type definition nodes.
27811         (Protected_Present, Set_Protected_Present): Available also in
27812         record type definition and
27813         derived type definition nodes.
27814         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
27815         (Task_Present, Set_Task_Present): New subprogram.
27816         (Task_Body_Procedure): Removed.
27817         (Set_Task_Body_Procedure): Removed.
27818         These subprogram have been removed because the attribute
27819         Task_Body_Procedure has been moved to the corresponding task type
27820         or task subtype entity to leave a field free to store the list
27821         of interfaces implemented by a task (for AI-345)
27822         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
27823         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
27824         expression flag Do_Range_Check
27825         (Exception_Junk): Change to Flag7 to accomodate above change
27826         (Box_Present, Default_Name, Specification, Set_Box_Present,
27827         Set_Default_Name, Set_Specification): Expand the expression
27828         "X in N_Formal_Subprogram_Declaration" into the corresponding
27829         two comparisons. Required to use the csinfo tool.
27830
27831         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
27832         "with string" given.
27833
27834         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
27835         expression given.
27836
27837         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
27838         in 2005 mode
27839
27840         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
27841         attribute Task_Body_Procedure rather than the old semantic field that
27842         was available in the task_type_declaration node.
27843
27844         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
27845         interface type definitions.
27846         (P_Formal_Derived_Type_Definition): Modified to handle the list of
27847         interfaces.
27848
27849         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
27850         task type declaration.
27851         (P_Protected): Modified to handle the list of interfaces in a
27852         protected type declaration.
27853
27854 2005-03-15  Doug Rupp  <rupp@adacore.com>
27855             Vincent Celier  <celier@adacore.com>
27856
27857         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
27858         (Gen_Output_File_C): Likewise.
27859         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
27860
27861 2005-03-15  Thomas Quinot  <quinot@adacore.com>
27862
27863         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
27864         is an N_Raise_Constraint_Error node, create a new copy of it without
27865         going through a call to Duplicate_Subexpr.
27866
27867 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
27868             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27869             Nicolas Setton  <setton@adacore.com>
27870             Ed Schonberg  <schonberg@adacore.com>
27871
27872         PR ada/19900
27873         PR ada/19408
27874         PR ada/19140
27875         PR ada/20255
27876         * decl.c (gnat_to_gnu_field): Reject aliased components with a
27877         representation clause that prescribes a size not equal to the rounded
27878         size of their types.
27879         (gnat_to_gnu_entity, case E_Component): Always look at
27880         Original_Record_Component if Present and not the entity.
27881         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
27882         of tagged extension types by not making field for components that are
27883         inside the parent.
27884         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
27885         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
27886         expression to the type of the object when the object is constant.
27887         Reverse defer_debug_incomplete_list before traversing it, so that trees
27888         are processed in the order at which they were added to the list. This
27889         order is important when using the stabs debug format.
27890         If we are deferring the output of debug information, also defer this
27891         output for a function return type.
27892         When adding fields to a record, prevent emitting debug information
27893         for incomplete records, emit the information only when the record is
27894         complete.
27895         (components_to_record): New parameter defer_debug.
27896         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
27897         (gnat_to_gnu_field_decl): New function.
27898         (substitution_list, annotate_rep): Call it.
27899         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
27900         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
27901         No longer update discriminants to not be a COMPONENT_REF.
27902         (copy_alias_set): Strip padding from input type; also handle
27903         unconstrained arrays properly.
27904
27905         * gigi.h (write_record_type_debug_info): New function.
27906         Convert to use ANSI-style prototypes. Remove unused
27907         declarations for emit_stack_check, elab_all_gnat and
27908         set_second_error_entity.
27909         (gnat_to_gnu_field_decl): New decl.
27910
27911         * utils.c (write_record_type_debug_info): New function.
27912         (finish_record_type): Delegate generation of debug information to
27913         write_record_type_debug_info.
27914         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
27915         (update_pointer_to): Fix pasto.
27916         (convert) <UNION_TYPE>: Accept slight type variations when
27917         converting to an unchecked union type.
27918
27919         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
27920         replace the N_Freeze_Entity with a null statement.
27921
27922         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
27923         within a constrained subcomponent of an enclosing record, place the
27924         freeze nodes in the scope stack entry for the enclosing record.
27925         (Undelay_Type): New Subprogram.
27926         (Set_Small_Size): Pass T, the type to modify; all callers changed.
27927         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
27928         within records; allow them to have freeze nodes if their base types
27929         aren't frozen yet.
27930
27931         * exp_util.adb (Remove_Side_Effects): Properly test for
27932         Expansion_Delayed and handle case when it's inside an
27933         N_Qualified_Expression.
27934
27935         * sem_ch3.adb (Derived_Type_Declaration): New predicate
27936         Comes_From_Generic, to recognize accurately that the parent type in a
27937         derived type declaration can be traced back to a formal type, because
27938         it is one or is derived from one, or because its completion is derived
27939         from one.
27940         (Constrain_Component_Type): If component comes from source and has no
27941         explicit constraint, no need to constrain in in a subtype of the
27942         enclosing record.
27943         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
27944         Minor change to propagate Is_Ada_2005 flag
27945
27946         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
27947         Expansion_Delayed is False.
27948         (assoc_to_constructor): Ignore fields that have a
27949         Corresponding_Discriminant.
27950         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
27951         function returns "by target", dereference the target pointer using the
27952         type of the actual return value.
27953         <all>: Be prepared for a null gnu_result.
27954         (processed_inline_subprograms): Check flag_really_no_inline
27955         instead of flag_no_inline.
27956         (set_second_error_entity): Remove unused function.
27957         (gnat_to_gnu, case N_Selected_Component): Call
27958         gnat_to_gnu_field_decl.
27959         (assoc_to_constructor): Likewise.
27960
27961 2005-03-15  Robert Dewar  <dewar@adacore.com>
27962             Ed Schonberg  <schonberg@adacore.com>
27963             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27964
27965         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
27966         Must_Be_Byte_Aligned for cases where we do not need to use a
27967         System.Pack_nn unit.
27968
27969         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
27970         as procedures.
27971         Needed now that we do some processing for IN parameters as well. This
27972         may well fix some unrelated errors.
27973         (Expand_Call): Handle case of unaligned objects (in particular those
27974         that come from packed arrays).
27975         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
27976         renamed entity is an inherited operation, re-expand the call using the
27977         original operation, which is the one to call.
27978         Detect attempt to inline parameterless recursive subprogram.
27979         (Represented_As_Scalar): Fix to work properly with private types
27980         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
27981         accurate estimate. Yields True in far fewer cases than before,
27982         improving the quality of code that depends on this test.
27983
27984         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
27985         over both visible and private declarations to remove them from tree,
27986         and mark subprograms declared in package as eliminated, to prevent
27987         spurious use in subsequent compilation of generic units in the context.
27988
27989         * exp_util.ads: Minor cleanup in variable names
27990
27991         * sem_eval.ads, sem_eval.adb: Minor reformatting
27992         (Compile_Time_Known_Bounds): New function
27993
27994 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
27995
27996         * exp_ch7.adb (Convert_View): Use base types of underlying types when
27997         determining whether an unchecked conversion is needed for the argument
27998         of an initialization call.
27999
28000 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
28001
28002         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
28003         that appears in the instantiation rather than the internal subtype
28004         generated in the wrapper package, to avoid anomalies in gigi when the
28005         target is derived from a private type whose full view is an access type.
28006
28007 2005-03-15  Robert Dewar  <dewar@adacore.com>
28008
28009         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
28010         not needed.
28011         Add documentation to replace the use of this flag
28012         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
28013         the x86_64.
28014
28015 2005-03-15  Thomas Quinot  <quinot@adacore.com>
28016
28017         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
28018         here from exp_attr so it can be shared between exp_attr and exp_dist.
28019         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
28020         all TSS names, not a subset thereof, and the previous name introduced
28021         an unnecessarily confusion that a distinction might exist between
28022         "OK" TSS names and some "not OK" TSS names.
28023
28024 2005-03-15  Doug Rupp  <rupp@adacore.com>
28025
28026         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
28027         Command_Name.
28028
28029 2005-03-15  Pascal Obry  <obry@adacore.com>
28030             Eric Botcazou  <ebotcazou@adacore.com>
28031
28032         PR ada/20226
28033         PR ada/20344
28034         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
28035         when IN_RTS. This is to work around a bootstrap path problem.
28036
28037         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
28038         table and pass it to __gnat_install_SEH_handler().
28039         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
28040
28041         * lang.opt: Fix specification of -fRTS=.
28042
28043 2005-03-15  Doug Rupp  <rupp@adacore.com>
28044             Bernard Banner  <banner@adacore.com>
28045             Vincent Celier  <celier@adacore.com>
28046             Arnaud Charlet  <charlet@adacore.com>
28047
28048         PR ada/6852
28049         This change works fine when gnatlib is built from the gcc directory,
28050         but does not work when using the libada Makefile, since GCC_FOR_TARGET
28051         is not passed to ada/Makefile.in, so more work is needed by a
28052         Makefile/configure expert.
28053
28054         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
28055         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
28056         Setup gnatlink switch -M for x86_64 linux, as it is already setup
28057         for Linux x86.
28058         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
28059         Run ranlib on libgccprefix.a
28060         Define PREFIX_OBJS for Darwin, to build libgccprefix.
28061         (ADA_INCLUDE_SRCS): Split Ada packages.
28062
28063 2005-03-15  Robert Dewar  <dewar@adacore.com>
28064
28065         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
28066
28067         * impunit.adb: Add GNAT.UTF_32
28068
28069         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
28070
28071         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
28072         now uses GNAT.UTF_32).
28073
28074         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
28075         capabilities for categorizing characters using Unicode categories
28076
28077 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
28078
28079         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
28080         instantiation that has been rewritten as a package body, retrieve spec
28081         to generate proper name for implicit_with_clause.
28082         (Install_Parents): Recognize a parent that is an instantiation but has
28083         been rewritten as a package declaration during analysis.
28084
28085 2005-03-15  Javier Miranda  <miranda@adacore.com>
28086             Ed Schonberg  <schonberg@adacore.com>
28087
28088         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
28089         parameter reported some error we immediately return. This improves the
28090         behaviour of the frontend in case of errors.
28091         (Install_Parent, Remove_Parent): Introduce new flag
28092         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
28093         ancestor of a generic child unit, when the child is being instantiated.
28094         (Inline_Instance_Body): If we are compiling the private
28095         part or the body of a child unit, restore the proper visibility of the
28096         parents after compiling the instance body.
28097
28098 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
28099             Javier Miranda  <miranda@adacore.com>
28100
28101         PR ada/15608
28102         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
28103         of a private type, in which case it is underlying_type that denotes
28104         the proper task. Also modified to use the new entity attribute
28105         that is directly available in the task type and task subtype entities
28106         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
28107         arrays when other dimensions than the first are constrained by
28108         discriminants of an enclosing record.
28109         (Insert_Explicit_Dereference): If the prefix is an indexed component or
28110         a combination of indexed and selected components, find ultimate entity
28111         and generate the appropriate reference for it, to suppress spurious
28112         warnings.
28113         (Note_Possible_Modification): If an entity name has no entity, return.
28114         (Is_Variable): A function call never denotes a variable.
28115         (Requires_Transient_Scope): For record types, recurse only on
28116         components, not on internal subtypes that may have been generated for
28117         constrained components.
28118
28119 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
28120
28121         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
28122         Eliminated as candidates for resolution. Both efficient, and avoids
28123         anomalies with operators declared in deleted code.
28124         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
28125         expansion is disabled (as when compiling a generic) to prevent spurious
28126         warnings on prefixes of selected components.
28127
28128 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
28129
28130         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
28131         attached to a list before checking whether it appears in the private
28132         declarations of the current package.
28133         (Make_Inequality_Operator): Insert declaration in proper declarative
28134         list rather than just setting the Parent field, so that
28135         Is_Private_Declaration can handle it properly.
28136
28137 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
28138
28139         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
28140         a renaming a body, check that the renamed subprogram in not intrinsic.
28141         (Find_Direct_Name): If several use_visible entities hide
28142         each other, and the context is a predefined file compiled through
28143         rtsfind, keep only the entity that comes from a predefined file.
28144
28145 2005-03-15  Geert Bosch  <bosch@adacore.com>
28146
28147         * s-fatgen.adb (Valid): Extend special exceptions to account for long
28148         long float padding to also cover AMD64 and IA64.
28149
28150 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
28151
28152         * s-imgwch.adb: Add with and use of Interfaces.
28153         (Img_Wide_Character): Change type of Val to Unsigned_16.
28154         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
28155
28156 2005-03-15  Matthew Gingell  <gingell@adacore.com>
28157
28158         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
28159
28160 2005-03-15  Robert Dewar  <dewar@adacore.com>
28161
28162         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
28163
28164         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
28165
28166         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
28167
28168 2005-03-15  Robert Dewar  <dewar@adacore.com>
28169
28170         * s-bitops.adb, s-bitops.ads,
28171         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
28172         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
28173         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
28174         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
28175         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
28176         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
28177         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
28178         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
28179         reformatting.
28180
28181 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
28182
28183         * utils2.c (build_binary_op): Fix typo.
28184
28185 2005-03-15  Doug Rupp  <rupp@adacore.com>
28186
28187         * s-crtl.ads (popen,pclose): New imports.
28188
28189 2005-03-15  Cyrille Comar  <comar@adacore.com>
28190
28191         * comperr.adb (Compiler_Abort): remove references to obsolete
28192         procedures in the bug boxes for various GNAT builds.
28193
28194 2005-03-15  Vincent Celier  <celier@adacore.com>
28195
28196         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
28197
28198 2005-03-15  Geert Bosch  <bosch@adacore.com>
28199             Arnaud Charlet  <charlet@adacore.com>
28200             Robert Dewar  <dewar@adacore.com>
28201             Cyrille Comar  <comar@adacore.com>
28202             Sergey Rybin  <rybin@adacore.com>
28203
28204         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
28205         too specific and long-winded to be appropriate for the GNAT User's
28206         Guide.
28207         Warn about use of GCC switches not documented in the GNAT User's Guide,
28208         as these may cause generated code to not conform to Ada semantics.
28209         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
28210         Add documentation for -gnat95 and -gnat05 switches
28211         Remove paragraph documenting obsolete way to refer to third party
28212         libraries.
28213         Add a few references to Ada_05 that were missing.
28214         Update documentation on -gnatZ/-gnatL.
28215         Document limitation when using -m64 under Solaris.
28216         Change the "Name Casing" subsection of the pretty-printer section
28217         according to the changes in the dictionary processing.
28218
28219         * gnat_rm.texi: Document the Ada_05 pragma.
28220         Section on record representation clauses describes the new more
28221         relaxed rules about placement of large packed bit array components.
28222         Add documentation of GNAT.UTF_32
28223
28224 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
28225
28226         * misc.c (gnat_post_options): Turn off structural
28227         aliasing for now.
28228
28229 2005-03-08  Laurent Guerby  <laurent@guerby.net>
28230
28231         * system-linux-sparc.ads: Fix typo in previous commit.
28232
28233 2005-03-07  James A. Morrison  <phython@gcc.gnu.org>
28234             Laurent Guerby  <laurent@guerby.net>
28235
28236         PR ada/20035
28237         * system-linux-sparc.ads: New.
28238         * Makefile.in: Add sparc linux entry.
28239
28240 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
28241
28242         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
28243         parameters as unused.
28244
28245 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
28246         Partial merge from libada-gnattools-branch:
28247
28248         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
28249         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
28250         into code in gnattools/Makefile.in.  Remove direct dependencies on
28251         stamp-tools by tools clauses.
28252         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
28253         * config-lang.in: Add gnattools to $lang_dirs.
28254
28255 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
28256
28257         PR ada/19942
28258         * utils.c (gnat_type_for_mode): Return null instead of ICE because
28259         we asked for an unknown mode.
28260
28261 2005-02-12  Richard Henderson  <rth@redhat.com>
28262
28263         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
28264         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
28265
28266 2005-02-10  Andreas Jaeger  <aj@suse.de>
28267
28268         * init.c (__gnat_initialize): Mark parameter as unused.
28269
28270 2005-02-09  Doug Rupp  <rupp@adacore.com>
28271
28272         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
28273         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
28274
28275 2005-02-09  Doug Rupp  <rupp@adacore.com>
28276
28277         * gnatchop.adb (dup, dup2),
28278         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
28279
28280         * gnatlbr.adb (mkdir),
28281         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
28282
28283         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
28284
28285 2005-02-09  Doug Rupp  <rupp@adacore.com>
28286
28287         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
28288
28289 2005-02-09  Robert Dewar  <dewar@adacore.com>
28290             Thomas Quinot  <quinot@adacore.com>
28291             Javier Miranda  <miranda@adacore.com>
28292             Pascal Obry  <obry@adacore.com>
28293             Ed Schonberg  <schonberg@adacore.com>
28294             Doug Rupp  <rupp@adacore.com>
28295             Gary Dismukes  <dismukes@adacore.com>
28296             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28297
28298         * g-zstspl.ads: New file.
28299
28300         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
28301
28302         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
28303         Ada 95 mode
28304         Add definition of Wide_Wide_Space for AI-285
28305
28306         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
28307         interface (to support Ada 95 and Ada 2005 units).
28308         Add Unbounded_IO files
28309         Add entries for Wide_Wide packages for AI-285
28310         Add list of containers packages to Ada 2005 unit list
28311
28312         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
28313         support new Unbounded_IO package cleanly.
28314
28315         * g-utf_32.ads, g-utf_32.adb: New files.
28316
28317         * Makefile.rtl: Add entry for g-utf_32
28318         Add new files for Unbounded_IO
28319         Adjust make file for new AI-285 wide wide packages
28320         Add AI-302 containers to the run time.
28321
28322         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
28323         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
28324         subprograms for AI-301.
28325
28326         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
28327
28328         * a-stunau.ads: Minor comment correction
28329
28330         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
28331         etc.
28332         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
28333         (Check_RPC): Update to match changes in expanded code.
28334         Clean up unused entity.
28335
28336         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
28337         was not taken into account.
28338         This includes proper initialization with Normalize_Scalars.
28339         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
28340         normalize scalars cases (particularly the latter) to do a better job
28341         of finding invalid representations.
28342
28343         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
28344
28345         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
28346         used
28347
28348         * exp_dist.adb: Add support for wide wide character type
28349         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
28350         private part, generate stub bodies at the end of the private part,
28351         not the visible part.
28352         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
28353         PolyORB support.
28354         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
28355         generic wrapper to execute final processing after completing the
28356         expansion of the RPC receiver for an RACW.
28357
28358         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
28359         packages and attributes.
28360         (Preset_Names): Addition of the new reserved words of Ada 2005,
28361         that is interface, overriding and synchronized.
28362         (Get_Pragma_Id): Give support to the use of the new reserved word
28363         "interface" as a pragma name.
28364         (Is_Pragma_Name): Give support to the use of the new reserved word
28365         "interface" as a pragma name.
28366         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
28367         attribute implementation.
28368
28369         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
28370         checks to entities that are output parameters of Asm operations.
28371         Handle the Stream_Size attribute.
28372         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
28373
28374         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
28375
28376         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
28377         for second parameter being 0.0.
28378         Add support for wide wide character type.
28379         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
28380
28381         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
28382         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
28383         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
28384         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
28385         for wide wide character cases.
28386
28387         * cstand.adb: Create entities for Wide_Wide_Character and
28388         Wide_Wide_String.
28389
28390         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
28391         accordance with AI-258.
28392         Add new declarations for 16/32 bit C character types (Part of AI285)
28393
28394         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
28395         (Obsolescent_Warning): New field
28396         (Rep_Clause): New local subprogram used to share code. Returns the rep
28397         clause for which the name is given in parameter.
28398         (Has_Stream_Size_Clause): New routine.
28399         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
28400         (Address_Clause): Implementation is now using Rep_Clause.
28401         (Alignment_Clause): Idem.
28402         (Size_Clause): Idem.
28403
28404         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
28405         entity in non-Ada 2005 mode and generate warning.
28406
28407         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
28408         (Prag): Code cleanup. Remove old gnat pragma "overriding"
28409
28410         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
28411         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
28412         on the named unit if the pragma is not in the current compilation unit,
28413         so that elaboration calls in the current unit can set up an elaboration
28414         dependency on the named unit, as needed.
28415         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
28416         subprogram as well as for subprograms declared within a package.
28417         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
28418         pragma overriding.
28419
28420         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
28421         to z) to avoid some instances of duplication for Wide_Wide packages.
28422
28423         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
28424         characters.
28425
28426         * scn.adb: Char_Literal_Value field is now a Uint
28427
28428         * scng.adb: Significant rewrite to handle new Ada 2005 features
28429         allowing wide and wide wide characters in program text, e.g. for
28430         identifiers, as described in AI-285.
28431         (Set_Reserved): New procedure, makes setting up keywords cleaner.
28432         (Initialize_Scanner): Register the new reserved words of Ada 2005.
28433         (Scan): Give support to the new reserved words.
28434
28435         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
28436         warning notifying that interface, overriding, and synchronized are
28437         new reserved words.
28438         (P_Pragma): Allow the use of the new reserved word "interface" as
28439         a pragma name.
28440
28441         * gnatls.adb, gnatbind.adb,
28442         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
28443         identifiers named "interface" to "SAL_Interface".
28444
28445         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
28446         (Structured Exception handling).
28447         (Gen_Main_C): Idem.
28448
28449         * bindgen.adb:
28450         (Gen_Main_Ada): Set the default exit code if specified.
28451         (Gen_Main_C): Likewise.
28452         Part of *DC20-006.
28453         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
28454         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
28455
28456         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
28457         new -Xnnn switch.
28458
28459         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
28460         has a collision with the new Ada 2005 "interface" reserved word.
28461
28462         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
28463         generate a warning notifying that interface, overriding, and
28464         synchronized are new reserved words.
28465
28466         * scans.ads (Token_Type): Addition of the tokens corresponding to the
28467         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
28468         and Tok_Synchronized.
28469
28470         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
28471         "dispatching" rather than "primitive" operations, since dispatching
28472         calls are now allowed to abstract formal subprograms (which are not
28473         primitive).
28474         Char_Literal_Value field is now a Uint
28475         (Resolve_Slice): If the prefix is an access to an unconstrained array,
28476         compute the actual subtype of the designated object to impose the proper
28477         index constraints.
28478         (Resolve_Selected_Component): Do not insert an access check if the
28479         prefix is an access type: such a node is expanded into an explicit
28480         dereference, on which the access check is performed anyway. Removes
28481         expensive duplicate checks.
28482         (Resolve_Call): Use new flag Is_Obsolescent and field
28483         Obsolescent_Warning so that pragma Obsolescent works on library
28484         subprograms.
28485         Add support for wide wide character type
28486         (Resolve_Allocator): Replace the error message on wrong null-exclusion
28487         value by a warning message.
28488         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
28489         as fixed-point, and one of the operands is non-static and universal, it
28490         can only be an illegal exponentiation operation, in which case there is
28491         no real value to retrieve.
28492
28493         * exp_strm.adb: Add support for wide wide character type
28494         (Build_Elementary_Input_Call): Compute the size of the stream element by
28495         querying the rep chain to find the Stream_Attribute attribute value.
28496         (Build_Elementary_Write_Call): Ditto.
28497
28498         * sem_aggr.adb: Char_Literal_Value field is now a Uint
28499         Add support for wide wide character type
28500         Replace the error messages on wrong null-exclusion value by warnings
28501         as described in Ada 2005.
28502         (Resolve_Extension_Aggregate): Document the fact that the error
28503         message on class-wide expressions in extensions aggregates.
28504
28505         * sem_case.adb: Add support for wide wide character type
28506
28507         * sem_ch13.adb: Add support for wide wide character type
28508         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
28509
28510         * sem_ch3.adb: Add support for wide wide character type
28511         (Process_Subtype): If constraint is illegal for the type, set Ekind of
28512         now-useless Itype, to prevent cascaded errors on a compiler built
28513         without -gnatp.
28514
28515         * sem_ch8.adb: Add with and use of Sem_Disp.
28516         (Analyze_Subprogram_Renaming): Replace unclean uses of
28517         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
28518         of Corresponding_Spec to Empty).
28519         (Attribute_Renaming): Replace use of Corresponding_Spec with
28520         Corresponding_ Formal_Spec and simplify condition.
28521         (Use_One_Package): Check that scope of homonym of identifier is defined,
28522         before checking whether it is a wrapper package.
28523         Add support for wide wide character type
28524
28525         * sem_eval.adb: Add support for wide wide character type.
28526         (Eval_Arithmetic_Op): Check for compile time known signed integer
28527         overflow in the non-static case.
28528         (Subtypes_Statically_Match): A formal scalar type and its base type do
28529         not statically match.
28530
28531         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
28532         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
28533         subtype).
28534         (Unit_Declaration_Node): Ditto.
28535         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
28536         has a packed array type, the prefix has been rewritten into a type
28537         conversion. Determine variable-ness from the converted expression.
28538         Handle wide wide character cases.
28539
28540         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
28541
28542         * stringt.ads, stringt.adb: Handle full UTF-32 range.
28543         Remove ["0A"] from comment, since it can look like a line terminator.
28544         Currently we don't permit this, but this is under discussion by the
28545         ARG, and it is easy enough to use a different example.
28546
28547         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
28548         handling UTF-32 encoding for wide wide character.
28549         Implement new brackets coding ["hhhhhhhh"]
28550         Add UTF-8 encodings for full UTF-32 range
28551
28552         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
28553
28554         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
28555         bit range Add full UTF-32 support.
28556         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
28557         notify that constraint error will be raised at run-time
28558         because a null value is assigned to a null-excluding object.
28559         Remove some obsolete declarations and make Char_Code
28560         unsigned.
28561
28562         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
28563         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
28564         Rcheck subprograms.
28565
28566         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
28567         wrong null-exclusion value by a warning message.
28568         (Enable_Range_Check): Do range check if the prefix is an
28569         explicit dereference whose designated object is an unconstrained array.
28570         Current algorithm for removing duplicate checks is over-eager in this
28571         case.
28572
28573         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
28574         null-exclusion value by a warning message
28575
28576         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
28577         completely. Add support for Uint2 field
28578
28579         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
28580         exp_prag.adb: Char_Literal_Value field is now a Uint.
28581
28582         * exp_util.adb (Insert_Actions): Replace
28583         N_Formal_Subprogram_Declaration by
28584         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
28585         Char_Literal_Value field is now a Uint.
28586
28587         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
28588         defined for subprogram renaming declarations. When set, the field
28589         indicates the defining entity of a corresponding formal subprogram
28590         when the renaming corresponds to a formal subprogram association in an
28591         instantiation.
28592         (Set_Corresponding_Formal_Spec): New procedure to return
28593         Corresponding_Formal_Spec field.
28594         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
28595         (which is now a subtype).
28596         Char_Literal_Value field is now a Uint
28597
28598         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
28599         pointer to the base of the dispatch table.
28600         Minor changes to comments.
28601         (Controlling_Type): New function for determining the tagged type
28602         associated with a tagged primitive subprogram.
28603         (Expand_Dispatching_Call): Add support for a controlling actual that is
28604         directly a value of type Ada.Tag rather than a tagged object.
28605
28606         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
28607         describing the new layout.
28608         (Dispatch_Table): The expander computes the actual array size, allocates
28609         the Dispatch_Table record accordingly, and generates code that displaces
28610         the base of the record after the Typeinfo_Ptr component. The access to
28611         these components is done by means of local functions.
28612         (Offset_To_Top): New function.
28613         (Typeinfo_Ptr): New function.
28614         (Get_TSD): Modified to access the new position of the TSD.
28615         (Set_TSD): Modified to save the TSD in its new position.
28616
28617         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
28618         case of formal abstract subprograms. Add check and message for -gnat05.
28619         Update comments.
28620
28621         * sem_ch12.adb: Add with and use for Sem_Disp.
28622         (Analyze_Associations): Minor change from "=" to "in" for use of
28623         N_Formal_Subtype_Declaration (which is now a subtype).
28624         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
28625         N_Formal_Subtype_Declaration (which is now a subtype).
28626         (Analyze_Formal_Subprogram): Add handling for
28627         N_Formal_Abstract_Subprogram, marking the formal as abstract and
28628         dispatching, setting the controlling status of the formal parameters
28629         and result, and issuing an error if there is no controlling type for
28630         the formal subprogram.
28631         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
28632         which is an unclean use of that field, we set the new field
28633         Corresponding_Formal_Spec to make the formal subprogram available to
28634         processing in Analyze_Subprogram_Declaration.
28635         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
28636         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
28637         Constrained, so that it is is does not statically match its anonymous
28638         base type.
28639
28640         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
28641         abstract formal subprograms in error check for functions returning
28642         abstract types. Set scope of new designator for
28643         a parameterless subprogram, so that it is available when checking the
28644         body for nested subprograms, before full analysis of said body.
28645         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
28646         subprogram only if inner one comes from source.
28647         (Analyze_Function_Call): If the call is given in object notation, the
28648         analysis of the name rewrites the node and analyzes it with the proper
28649         argument list. After analyzing the name, if the call has been rewritten
28650         and the result type is set, no further analysis is needed.
28651         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
28652         mark in function specification, in a context where the formals are
28653         visible and hide outer homographs.
28654
28655         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
28656         as the tagged type for the cases of abstract formal subprograms and
28657         renamings of those.  Clean up spec comments.
28658         (Check_Dispatching_Context): Add error message to indicate "abstract
28659         procedure", covering the case of a call to a formal abstract procedure
28660         that has statically tagged operands.
28661         (Check_Dispatching_Call): Check for the case of an actual given by
28662         a tag-indeterminate function call whose type is an ancestor of the
28663         containing call's associated tagged type. This situation can occur
28664         for inherited primitives with function defaults. In this case we
28665         use the tagged type's tag directly as the controlling argument for
28666         the calls.
28667         (Expand_Call): Name change on call to Expand_Dispatch_Call.
28668
28669         * sprint.adb (Sprint_Node_Actual): Split
28670         N_Formal_Subprogram_Declaration into two alternatives for the new
28671         cases N_Formal_Abstract_Subprogram_Declaration and
28672         N_Formal_Concrete_Subprogram_Declaration.
28673         Char_Literal_Value field is now a Uint.
28674
28675         * trans.c: Get rid of junk Uint2 reference.
28676         Char_Literal_Value field is now a Uint.
28677         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
28678         (gigi): Correct third arg to gimplify_body.
28679
28680         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
28681         (TYPE_LANG_FLAG_0): Check for record or union.
28682
28683         * treepr.adb: Char_Literal_Value field is now a Uint
28684
28685         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
28686         UI_From_CC.
28687
28688         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
28689         Add full UTF-32 support
28690         Char_Code is now 32 bits
28691
28692         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
28693         wide character UTF_32 line terminators.
28694         Initialize Main_Source_File to avoid error when no main
28695         source is loaded.
28696
28697         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
28698         (Main_Source_File) when no main source has been loaded, to avoid
28699         potential crash.
28700
28701 2005-02-09  Robert Dewar  <dewar@adacore.com>
28702
28703         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
28704         Fix name of Set routine
28705
28706         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
28707         fixed packages.
28708
28709         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
28710         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
28711         fixed packages
28712
28713         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
28714         forms of Get_Line subprograms for AI-301.
28715
28716         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
28717         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
28718         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
28719         a-stwima.ads: Minor reformatting.
28720
28721 2005-02-09  Doug Rupp  <rupp@adacore.com>
28722             Thomas Quinot  <quinot@adacore.com>
28723
28724         * adaint.c, adaint.h
28725         [VMS] (to_ptr32): New function.
28726         (MAYBE_TO_PTR32): New macro.
28727         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
28728         for pointer size.
28729         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
28730         [VMS] (#define fork()): Remove since unneccessary.
28731         (__gnat_set_close_on_exec): New routine to support
28732         GNAT.OS_Lib.Set_Close_On_Exec.
28733
28734         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
28735         the parent side as close-on-exec so that they are not inherited by the
28736         child.
28737
28738         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
28739         set or clear the FD_CLOEXEC flag on a file descriptor.
28740
28741 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
28742             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28743
28744         PR ada/19386
28745         * decl.c:
28746         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
28747         on the field if Pragma Component_Alignment (Storage_Unit).
28748         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
28749         side-effects as if it were a constant; also make SAVE_EXPR to protect
28750         side-effects.
28751         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
28752         UNION_TYPE.
28753         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
28754         (components_to_record): Test it.
28755         Fix improper usage of REFERENCE_CLASS_P.
28756
28757         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
28758         RECORD_TYPE.
28759
28760         * utils2.c: Minor reformatting.
28761
28762         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
28763         handle other cases like RECORD_TYPE.
28764
28765         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
28766
28767 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
28768
28769         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
28770         component of an array of arrays in an assignment context, and the
28771         aggregate has component associations that require sliding on
28772         assignment, force reanalysis of the aggregate to generate a temporary
28773         before the assignment.
28774         (Must_Slide): Make global to the package, for use in Gen_Assign.
28775
28776 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
28777
28778         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
28779         unchecked union with no inferable discriminants, return a
28780         Raise_Program_Error node, rather than inserting it at the point the
28781         type is frozen.
28782         (Expand_Record_Equality, Component_Equality): Handle properly the case
28783         where some subcomponent is an unchecked union whose generated equality
28784         code raises program error.
28785
28786 2005-02-09  Doug Rupp  <rupp@adacore.com>
28787
28788         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
28789         [VMS] (#define exit hack): Remove.
28790
28791 2005-02-09  Pascal Obry  <obry@adacore.com>
28792             Arnaud Charlet  <charlet@adacore.com>
28793
28794         * init.c (__gnat_initialize): Add a new parameter eh which contains the
28795         address of the exception registration. The Win32 version of this
28796         routine calls __gnat_install_SEH_handler() to initialize the SEH
28797         (Structured Exception Handling) handler.
28798         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
28799         SEH (Structured Exception Handling) now.
28800         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
28801         (__gnat_initialize for ppc-vxworks): Adjust comments and the
28802         preprocessor condition protecting the call to the extra eh setup
28803         subprogram, which is only available for the ppc target.
28804         (__gnat_clear_exception_count): replaced reference to
28805         variable taskIdCurrent by call to taskIdSelf(), cleaner.
28806
28807         * seh_init.c: New file.
28808
28809         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
28810         (GNATBIND_OBJS): Idem.
28811
28812         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
28813         routine takes a new parameter (a pointer to the exception registration
28814         for the SEH (Structured Exception Handling) support.
28815
28816         * raise.h: (__gnat_install_SEH_handler): New prototype.
28817         Update copyright notice.
28818
28819         * s-tassta.adb (Task_Wrapper): Declare the exception registration
28820         record and initialize it by calling __gnat_install_SEH_handler.
28821
28822 2005-02-09  Vincent Celier  <celier@adacore.com>
28823
28824         * make.adb (Gnatmake): Do not fail when the main project has no object
28825         directory.
28826
28827 2005-02-09  Doug Rupp  <rupp@adacore.com>
28828
28829         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
28830         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
28831         [VMS]: Add translations for g-enblsp.adb.
28832
28833         * s-asthan-vms.adb: Removed.
28834         * s-asthan-vms-alpha.adb: Added.
28835
28836 2005-02-09  Pascal Obry  <obry@adacore.com>
28837
28838         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
28839         (LIBGNAT_OBJS): Add seh_init.o.
28840
28841 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
28842
28843         PR ada/16592
28844         * Makefile.in: Link all gnat tools with -static-libgcc, since
28845         -shared-libgcc is now used by default on some systems (e.g. linux with
28846         recent binutils).
28847         Remove references to Makefile.prolog/generic, no longer used.
28848
28849 2005-02-09  Vincent Celier  <celier@adacore.com>
28850
28851         * prj-makr.adb (Process_Directory): Put file name in canonical case
28852         before matching against the patterns.
28853         If gnatname has been invoked as <prefix>-gnatname
28854         then invoke the compiler as <prefix>-gcc, not just "gcc".
28855
28856 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
28857
28858         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
28859         with expansion disabled. The actual subtype is needed among other
28860         places when the selected component appears in the context of a loop
28861         bound, and denotes a packed array.
28862         (Operator_Check): Always use the first subtype in the
28863         error message, to avoid the appearance of internal base types.
28864         (Transform_Object_Operation): Copy each actual in full
28865         to the parameter associations of the constructed call, rather than
28866         using the shallow copy mechanism of New_Copy_List. This ensures that
28867         the chaining of named associations is done properly.
28868         (Complete_Object_Operation): Rewrite node, rather than
28869         replacing it, so that we can trace back to the original selected
28870         component.
28871
28872         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
28873         and calls that use object notation, if the called function is not
28874         declared  in a withed unit, place the elaboration constraint on the
28875         unit in the context that makes the function accessible.
28876         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
28877         imposes an elaboration constraint between two packages.
28878
28879 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
28880
28881         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
28882         views of a private type after handling its private dependents, to
28883         maintain proper stack discipline between entry and exit from the
28884         package.
28885
28886 2005-02-09  Cyrille Comar  <comar@adacore.com>
28887
28888         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
28889         Minor reformatting.
28890
28891 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
28892
28893         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
28894         fields for foreign threads.
28895
28896 2005-02-09  Doug Rupp  <rupp@adacore.com>
28897
28898         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
28899         recursion warnings when compiled with -gnatdm.
28900
28901 2005-02-09  Robert Dewar  <dewar@adacore.com>
28902
28903         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
28904         Slight fix to documentation of -gnaty with no parameters
28905
28906         * xr_tabls.ads: Add ??? comment for missing overall comment
28907
28908         * xsinfo.adb: Make default file name be sinfo.h, since this is what
28909         we now use by default.
28910
28911         * xsnames.adb: Adjust end of file test to look for five space followed
28912         by '#' instead of six spaces. The format of xsnames.adb was modified
28913         in the last update.
28914
28915         * a-numeri.ads: Add reference to AI-388 for greek letter pi
28916         identifier.
28917
28918         * clean.adb: Minor reformatting.
28919
28920         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
28921         gnatname.adb: Minor reformatting
28922         Add 2005 to copyright output when utility is run
28923
28924         * csets.adb: Eliminate obsolete comment
28925
28926         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
28927         Update comments.
28928
28929         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
28930
28931 2005-02-09  Sergey Rybin  <rybin@adacore.com>
28932
28933         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
28934         the difference between compact and incompact layout and add the record
28935         representation clause to the example illustrating different layouts.
28936         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
28937         component clauses").
28938
28939 2005-02-09  Florian Villoing  <villoing@adacore.com>
28940
28941         * gnat_ugn.texi: Fix typos.
28942         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
28943         @file.
28944         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
28945         in the generated documentation.
28946
28947 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
28948
28949         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
28950         longer supported.
28951         Update linker wrapper when linking with non GNU C++.
28952
28953 2005-02-09  Pascal Obry  <obry@adacore.com>
28954
28955         * gnat_ugn.texi:
28956         Document the procedure to debug the DllMain routine on Windows.
28957         Add note about -funwind-tables and mixed Ada and C/C++ programming in
28958         ZCX mode.
28959         Document new BIND qualifer /RETURN_CODES=VMS.
28960
28961 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
28962
28963         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
28964         Edited gnatmetric chapter
28965
28966 2005-02-09  Robert Dewar  <dewar@adacore.com>
28967
28968         * gnat_rm.texi:
28969         Changes to document new wide wide character support
28970         For AI-285
28971         Update documentation on Normalize_Scalars and Initialize_Scalars
28972
28973 2005-02-09  Pascal Obry  <obry@adacore.com>
28974
28975         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
28976
28977 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
28978
28979         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
28980         from the VxWorks kernel) that is needed for getting the active
28981         priority of the different tasks.
28982
28983         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
28984         Use a pragma Elaborate_Body in the spec file instead.
28985         Noticed by code reading.
28986
28987 2005-02-09  Thomas Quinot  <quinot@adacore.com>
28988
28989         * exp_util.ads: Minor correction in comment.
28990
28991 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
28992
28993         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
28994         since this procedure is now too complex to be worth inlining.
28995
28996 2005-02-09  Richard Henderson  <rth@redhat.com>
28997
28998         * utils.c (gnat_define_builtin): Remove.
28999         (gnat_install_builtins): Use build_common_builtin_nodes.
29000
29001 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
29002
29003         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
29004         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
29005         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
29006         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
29007         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
29008         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
29009         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
29010         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
29011         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
29012         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
29013         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
29014         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
29015         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
29016         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
29017         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
29018         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
29019         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
29020         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
29021         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
29022         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
29023         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
29024         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
29025         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
29026         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
29027         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
29028         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
29029         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
29030         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
29031         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
29032         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
29033         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
29034         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
29035         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
29036         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
29037         library.
29038
29039 2005-01-27  Laurent Guerby  <laurent@guerby.net>
29040
29041         * Makefile.in: Fix a-intnam.ads from previous commit,
29042         add 2005 to copyright.
29043         * a-intman-rtems.ads: Renamed to...
29044         * a-intnam-rtems.ads:
29045
29046 2005-01-27  Laurent Guerby  <laurent@guerby.net>
29047
29048         * Makefile.in: Rename GNAT RTEMS specific files.
29049         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
29050         5rosinte.ads, 5rparame.adb: Replaced by files below.
29051         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
29052         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
29053
29054 2005-01-27  Joel Sherrill  <joel.sherrill@oarcorp.com>
29055             Laurent Guerby  <laurent@guerby.net>
29056
29057         PR ada/19488
29058         * 5rosinte.ads: Add No_Key constant.
29059         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
29060         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
29061
29062 2005-01-26  Laurent Guerby  <laurent@guerby.net>
29063
29064         PR ada/19414
29065         * i-cobol.adb (Valid_Numeric): Handle zero length case.
29066
29067 2005-01-20  Richard Henderson  <rth@redhat.com>
29068
29069         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
29070         a-intnam-linux.ads and system-linux-alpha.ads.
29071         * a-intnam-linux-alpha.ads: Remove file.
29072         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
29073         * system-linux-alpha.ads: New file.
29074
29075 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
29076
29077         PR ada/13470
29078         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
29079         set to the new string.
29080
29081 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
29082
29083         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
29084         to True.
29085
29086 2005-01-18  Richard Henderson  <rth@redhat.com>
29087
29088         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
29089         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
29090         for alpha-linux.
29091         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
29092
29093 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
29094
29095         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
29096         (GCC_ZCX_Support): Likewise.
29097
29098 2005-01-11  Bastian Blank  <waldi@debian.org>
29099
29100         * system-linux-s390.ads: Define Preallocated_Stacks.
29101         * system-linux-s390x.ads: Likewise.
29102
29103 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
29104
29105         * gnat_ugn.texi: Fix texi errors with null variables.
29106
29107 2005-01-03  Thomas Quinot  <quinot@adacore.com>
29108
29109         * gen-soccon.c: New utility program to generate g-soccon.ads
29110         automatically.
29111
29112         * socket.c, gsocket.h: Split inclusion of system header files into a
29113         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
29114
29115         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
29116         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
29117         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
29118         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
29119         should not be edited by hand anymore, but should be regenerated using
29120         gen-soccon.
29121
29122 2005-01-03  Robert Dewar  <dewar@adacore.com>
29123             Ed Schonberg  <schonberg@adacore.com>
29124             Vincent Celier  <celier@adacore.com>
29125
29126         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
29127         on/off, since this is an obsolescent feature, for which we now generate
29128         a warning.
29129
29130         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
29131         warning mode is set and obsolescent usage of this attribute occurs.
29132         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
29133         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
29134         predates, and partly motivates, the adoption of the AI.
29135         Implement new Ada 2005 attribute Mod
29136
29137         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
29138         attribute Mod.
29139
29140         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
29141
29142         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
29143         pragma restrictions.
29144         New entry for Ada 2005 attribute Mod.
29145
29146         * par-prag.adb:
29147         Add recognition of new pragma Restrictions No_Dependence
29148         Recognize restriction No_Obsolescent_Features at parse time
29149
29150         * bcheck.adb: Add circuitry for checking for consistency of
29151         No_Dependence restrictions.
29152
29153         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
29154         restrictions.
29155
29156         * restrict.ads, restrict.adb: Add subprograms to deal with
29157         No_Dependence restrictions.
29158
29159         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
29160         restrictions.
29161
29162         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
29163         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
29164
29165         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
29166         dummy parameter to scng instantiation.
29167         Needed for new restriction No_Obsolescent_Features
29168
29169         * scn.adb: (Obsolescent_Check): New procedure
29170         Needed for new restriction No_Obsolescent_Features
29171
29172         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
29173         specified by AI-285, needed for implementation of AI-388 (adding greek
29174         pi to Ada.Numerics).
29175         Add new generic formal to scng, needed for new restriction
29176         No_Obsolescent_Features.
29177
29178         * s-rident.ads: Add new restriction No_Obsolescent_Features.
29179
29180         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
29181         restrictions lines.
29182         (Scan_ALI): When finding an unexpected character on an R line, raise
29183         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
29184         Ignore_Errors is True, default restrictions are set and scanning of the
29185         ALI file continues with the next line. Also, when Bad_R_Line is raised
29186         and Ignore_Errors is True, skip to the end of le line.
29187
29188         * sem_ch10.adb: Check that explicit with's do not violate
29189         No_Dependence restrictions.
29190         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
29191         illegal context clauses containing child units of instance.
29192
29193         * sem_prag.adb: Processing and checking for new No_Dependence
29194         restrictions.
29195         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
29196         analyze and check the External argument.
29197
29198         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
29199
29200 2005-01-03  Robert Dewar  <dewar@adacore.com>
29201
29202         * atree.adb: Add a fifth component to entities
29203         This allows us to add 32 flags and four new fields
29204
29205         * atree.ads: Add a fifth component to entities
29206         This allows us to add 32 flags and four new fields
29207
29208         * einfo.ads, einfo.adb: Document new fields and new flags now available
29209         Add routines for printing new fields
29210
29211         * treepr.adb: Call routines to print out additional fields if present
29212
29213 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
29214
29215         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
29216         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
29217
29218         * Makefile.in: Add support to build shared Ada libraries on solaris x86
29219         Remove gpr2make, replaced by gprmake.
29220         Remove references to gnatmem and libaddr2line.
29221         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
29222         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
29223         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
29224         a-numaux-darwin.ads and a-numaux-darwin.adb
29225         Enable mlib-tgt-lynxos.adb on lynxos.
29226
29227         * Make-lang.in: Remove rules for gpr2make.
29228         When generating sdefault.adb, do not call Relocate_Path
29229         on S3 for function Target_Name, as it is not a path.
29230         Remove references to gnatmem and libaddr2line.
29231
29232         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
29233         files.
29234
29235 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
29236
29237         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
29238         address is incompatible with its base type alignment constraints when
29239         this can be decided statically.
29240
29241 2005-01-03  Olivier Hainque  <hainque@adacore.com>
29242
29243         * decl.c (compatible_signatures_p): New function. The intended purpose
29244         is to check if two function signatures for a call-site and a callee are
29245         compatible enough for the call to be valid. The underlying purpose is
29246         to check if a call to a mapped builtin is using the right interface.
29247         The current code actually does not check antyhing - this a placeholder
29248         for future refinements.
29249         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
29250         builtin calls for convention Intrinsic.
29251
29252         * gigi.h (builtin_decl_for): Declare (new function).
29253
29254         * utils.c (gnat_install_builtins): Install the target specific builtins.
29255         (builtin_decl_for): New function, provide a dummy body for now.
29256
29257 2005-01-03  Geert Bosch  <bosch@adacore.com>
29258
29259         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
29260         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
29261         (Pred): Implement in terms of Succ.
29262
29263         * trans.c (convert_with_check): Reimplement conversion of float to
29264         integer.
29265
29266 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
29267             Vincent Celier  <celier@adacore.com>
29268
29269         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
29270         bounds can be negative, and must be declared Int, not Nat.
29271
29272         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
29273         array is checked after using the index in the array.
29274
29275         * makegpr.adb (Add_Switches): Check if there is a package for the
29276         processor. If there is no package, do not look for switches.
29277
29278 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
29279
29280         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
29281         generation of predefined stream operations (specs and bodies) should
29282         proceed. Under various restrictions these subprograms must not be
29283         generated.
29284
29285 2005-01-03  Thomas Quinot  <quinot@adacore.com>
29286
29287         * exp_dist.adb:
29288         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
29289         amount of PCS-specific code in RACW stubs generation.
29290         (Copy_Specification): Set Etype on copied formal parameter entities, as
29291         this information is needed for PolyORB stubs generation.
29292         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
29293         variable Dynamic_Async.
29294         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
29295         (Build_RPC_Receiver_Specification): Make generic again, as recent
29296         changes have allowed RPC receivers to have the same profile for both
29297         variants of the PCS.
29298         Reorganise RPC receiver generation to reduce differences between the
29299         structure of GARLIC and PolyORB RPC receivers.
29300         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
29301         PCS-specific.
29302         Simplify elaboration code for RCI packages.
29303
29304         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
29305         generation to reduce differences between the structure of GARLIC and
29306         PolyORB RPC receivers.
29307
29308         * s-stratt.adb: Fix typo in comment.
29309
29310 2005-01-03  Thomas Quinot  <quinot@adacore.com>
29311
29312         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
29313         copied from Make_Init_Call).
29314
29315         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
29316         reads and assignments on a temporary variable declared with appropriate
29317         discriminants.
29318
29319 2005-01-03  Robert Dewar  <dewar@adacore.com>
29320
29321         * i-c.adb (To_C): Raise CE if string is null and Append_Null
29322
29323 2005-01-03  Robert Dewar  <dewar@adacore.com>
29324
29325         * i-cstrin.adb (Update): Do not append a null in form called with a
29326         String. This avoids unintended behavior.
29327
29328 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
29329
29330         PR ada/17527
29331         * init.c: Fix warnings on Free BSD section.
29332
29333 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
29334
29335         PR ada/16949
29336         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
29337         xsinfo.adb).
29338
29339 2005-01-03  Vincent Celier  <celier@adacore.com>
29340
29341         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
29342         libraries when Unique_Compile is True (-u switch).
29343         (Gnatmake): ditto.
29344
29345 2005-01-03  Robert Dewar  <dewar@adacore.com>
29346
29347         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
29348         upper case letter or underscore after W, as allowed by spec.
29349
29350 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
29351
29352         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
29353         darwin port by using proper type definitions from header files.
29354         Use SIGTERM instead of SIGABRT for SIGADAABORT.
29355
29356 2005-01-03  Robert Dewar  <dewar@adacore.com>
29357
29358         * par.adb: Enhance error message handling for configuration file
29359         pragmas.
29360
29361 2005-01-03  Robert Dewar  <dewar@adacore.com>
29362
29363         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
29364         removed during the previous update (test properly for case of dividing
29365         largest negative number by -1, which generates overflow).
29366
29367 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
29368             Sergey Rybin  <rybin@adacore.com>
29369
29370         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
29371         to use as the defining identifier for a formal package.
29372         (Remove_Parent): If the instance takes place within (an instance of)
29373         a sibling, preserve private declarations of common parent.
29374
29375 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
29376
29377         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
29378         to determine whether one of the operands is a fixed-point type for
29379         which a user-defined multiplication or division operation might be
29380         defined.
29381
29382         * sem_res.adb (Valid_Conversion): The legality rules for conversions
29383         of access types are symmetric in Ada 2005: either designated type can
29384         be unconstrained.
29385
29386 2005-01-03  Vincent Celier  <celier@adacore.com>
29387
29388         * s-fileio.adb (Temp_File_Record): Change length of string component
29389         Name from L_tmpnam + 1 to max_path_len + 1.
29390
29391 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
29392
29393         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
29394         Self_Id.Deferral_Level = 0.
29395         (Do_Pending_Action): Move this function to the spec.
29396
29397         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
29398         Do_Pending_Action explicitely when needed, in case we're using
29399         No_Abort restrictions.
29400
29401         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
29402         deferral level since it will not get changed by the generated code.
29403         Keeping a default value of 1 would prevent some operations (e.g.
29404         select or delay) to proceed successfully.
29405
29406 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
29407             Robert Dewar  <dewar@adacore.com>
29408             Cyrille Comar  <comar@adacore.com>
29409
29410         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
29411         porting guide chapter (vms version).
29412         Revised doc title (removed "for native platforms") and subtitle.
29413         Add discussion on warning flag for obsolescent features. First we
29414         note that it applies to obsolete GNAT features, which was previously
29415         omitted. Second we contrast the behavior with that of the new
29416         Ada 2005 AI-368 restriction No_Obsolescent_Features.
29417         Preliminary rewriting of GNAT & libraries chapter in order to take
29418         into account default project locations & new project manager
29419         capabilities.
29420
29421 2005-01-03  Robert Dewar  <dewar@adacore.com>
29422
29423         * cstand.adb (Create_Operators): Clean up format and documentation of
29424         unary and binary operator result tables. No change in code, just
29425         reformatting and addition of comments.
29426
29427         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
29428         sem_ch2.adb: Minor reformatting
29429
29430         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
29431         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
29432         comments for Tree_Read and Tree_Write.
29433
29434 2005-01-03  Pascal Obry  <obry@adacore.com>
29435
29436         * exp_attr.ads: Minor reformatting.
29437
29438 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
29439
29440         * comperr.adb (Compiler_Abort): Add specialized message for GAP
29441         versions.
29442
29443 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
29444
29445         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
29446         whether the ancestor type is private, as may be the case with nested
29447         instantiations.
29448
29449 2004-12-30  Sohail Somani  <sohail@sohailsomani.com>
29450
29451         PR ada/19128
29452         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
29453
29454 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
29455
29456         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
29457         * utils2.c (build_unary_op): Likewise.
29458
29459 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29460
29461         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
29462
29463 2004-12-19  Richard Henderson  <rth@redhat.com>
29464
29465         * trans.c (gigi): Update gimplify_body call.
29466
29467 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
29468
29469         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
29470
29471 2004-12-07  Ed Falis  <falis@adacore.com>
29472
29473         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
29474         current task being suspended.
29475
29476         * init.c (__gnat_clear_exception): added to reset VxWorks exception
29477         count.
29478         (__gnat_map_signal): removed test for current task being suspended.
29479
29480 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
29481
29482         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
29483         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
29484         targets (such as AAMP).
29485
29486 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
29487
29488         * atree.adb (Visit_Itype): Create a new name for the generated itype,
29489         because the back-end may otherwise treat it as a redefinition of the
29490         old symbol.
29491
29492 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
29493
29494         * back_end.adb (Scan_Back_End_Switches): Accept --param.
29495
29496         * lang-specs.h: Accept --param.
29497
29498 2004-12-07  Vincent Celier  <celier@adacore.com>
29499
29500         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
29501         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
29502         Current_Body_Suffix => Ada_Body_Suffix).
29503         Take into account Externally_Built attribute.
29504
29505         * clean.adb (In_Extension_Chain): Always return False when one of the
29506         parameter is No_Project.
29507         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
29508         Ada_Language_Index).
29509         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
29510         Process_Languages for procedure Parse).
29511
29512         * gnatcmd.adb (Carg_Switches): New table.
29513         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
29514         Adapt to name changes in package Prj (Current_Spec_Suffix =>
29515         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
29516
29517         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
29518         Header_Num and function Hash are now declared in package Prj,
29519         not Prj.Com.
29520
29521         * prj.adb (Suffix_Of): New function.
29522         (Set (Suffix)): New procedure.
29523         (Hash): One function moved from Prj.Com
29524         (Is_Present, Language_Processing_Data_Of): New functions
29525         (Set): Two new procedures
29526         (Add_Language_Name, Display_Language_Name): New procedures
29527
29528         * prj.ads: (Suffix_Of): New function
29529         (Set (Suffix)): New procedure
29530         Add several types and tables for multi-language support.
29531         (Header_Num): Type moved from Prj.Com
29532         (Hash): Two functions moved from Prj.Com
29533         (Is_Present, Language_Processing_Data_Of): New functions
29534         (Set): Two new procedures
29535         (Add_Language_Name, Display_Language_Name): New procedures
29536         (Naming): Component name changes:
29537         Current_Spec_Suffix => Ada_Spec_Suffix,
29538         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
29539         Impl_Suffixes, Supp_Suffixes.
29540         (Project_Data): New components: Externally_Built, Supp_Languages,
29541         First_Language_Processing, Supp_Language_Processing, Default_Linker,
29542         Default_Linker_Path.
29543
29544         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
29545         new package Language_Processing with its attributes (Compiler_Driver,
29546         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
29547         Binder_Driver, Default_Linker).
29548
29549         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
29550         (Header_Num): Type moved to package Prj
29551
29552         * prj-env.adb: Adapt to name changes in package Prj
29553         (Current_Spec_Suffix => Ada_Spec_Suffix,
29554         Current_Body_Suffix => Ada_Body_Suffix).
29555
29556         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
29557         default to the project path, except the "-" is one of the directories
29558         in env var ADA_PROJECT_PATH.
29559         (Current_Project_Path): Global variable, replacing Project_Path
29560         that was in the body of Prj.Part.
29561         (Project_Path): New function
29562         (Set_Project_Path): New procedure
29563         Initialize Current_Project_Path during elaboration of the package
29564         Remove dependency on Prj.Com, no longer needed
29565
29566         * prj-ext.ads (Project_Path): New function
29567         (Set_Project_Path): New procedure
29568
29569         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
29570         suffix is defined for language <lang>.
29571         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
29572         accessing directly the components of Naming.
29573         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
29574         Reorganise of this package.
29575         Break procedure Check in several procedures.
29576
29577         * prj-nmsc.ads: Replace all procedures (Ada_Check,
29578         Other_Languages_Check and Language_Independent_Check) with a single
29579         procedure Check.
29580
29581         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
29582         Process_Languages, no longer needed.
29583
29584         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
29585         Current_Project_Path.
29586         Remove elaboration code, moved to the body of Prj.Ext
29587         Use new function Prj.Ext.Project_Path instead of old variable
29588         Project_Path.
29589         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
29590         When comparing with project paths on the stack, first put the resolved
29591         path in canonical case.
29592         (Parse_Single_Project): Set the path name of the project file in the
29593         tree to the normalized path.
29594
29595         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
29596         parameter Process_Languages, no longer needed.
29597         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
29598         Other_Languages_Check.
29599
29600         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
29601         to store the resolved canonical path of the project file.
29602         Remove dependency to Prj.Com, no longer needed
29603
29604         * prj-util.adb: Adapt to name changes in package Prj
29605         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
29606         Ada_Body_Suffix).
29607
29608         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
29609         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
29610         Externally_Built, Include_Option, Language_Processing.
29611
29612         * makegpr.adb: Numerous changes due to changes in packages
29613         Prj and Prj.Nmsc.
29614
29615         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
29616         default to the project path, except whe "-" is one of the directories
29617         in env var ADA_PROJECT_PATH.
29618         (Gnatls): In verbose mode, add the new section "Project Search Path:"
29619
29620 2004-12-07  Robert Dewar  <dewar@adacore.com>
29621
29622         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
29623
29624         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
29625         set -gnatR3m mode.
29626
29627         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
29628         flag. No longer needed now that we handle this in gnat1drv.adb.
29629
29630         * repinfo.ads: Minor reformatting
29631
29632 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29633             Olivier Hainque  <hainque@adacore.com>
29634             Eric Botcazou  <ebotcazou@adacore.com>
29635
29636         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
29637         TYPE_SIZE_UNIT of result type if SIZE is not specified.
29638         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
29639         of a bitfield, which we know is useless and causes trouble because of
29640         alignment implications.
29641
29642         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
29643         BSS sections.
29644         (process_attributes): Clear DECL_COMMON again when a section attribute
29645         is present.
29646         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
29647         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
29648         (create_field_decl): Special case ADDRESSABLE negative to mean
29649         "no bitfield creation", to be used by make_aligning_type. Don't
29650         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
29651         fields claimed addressable still have to be bitfields. Use
29652         value_factor_p instead of a raw binop construction to check for the
29653         position's alignment.
29654
29655 2004-12-07  Geert Bosch  <bosch@adacore.com>
29656
29657         * eval_fat.adb: Revert previous change.
29658
29659 2004-12-07  Thomas Quinot  <quinot@adacore.com>
29660             Ed Schonberg  <schonberg@adacore.com>
29661
29662         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
29663         with an implicit dereference as its prefix, use
29664         Insert_Explicit_Dereference instead of merely rewriting the prefix into
29665         an explicit dereference. This ensures that a reference to the original
29666         prefix is generated, if appropriate.
29667
29668         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
29669         dereference is rewritten to an explicit one, generate a reference to
29670         the entity denoted by its prefix using the original prefix node, so
29671         the dereference can be properly recorded as a read of the denoted
29672         access value, if appropriate.
29673
29674         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
29675         emitting 'assigned but never read' warning on a variable on the basis
29676         that it has an access type.
29677         (Check_References): Emit unreferenced warning when the scope is a
29678         subprogram body.
29679
29680 2004-12-07  Robert Dewar  <dewar@adacore.com>
29681             Ed Schonberg  <schonberg@adacore.com>
29682
29683         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
29684         intrinsic
29685
29686         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
29687         leaving call unchanged.
29688         This deals with the case where the pragma Import specified
29689         an external name, to be handled by the back end.
29690
29691         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
29692         subprogram which is Imported with convention Intrinsic if an
29693         External_Name argument is specified.
29694         (Process_Import_Or_Interface): Properly diagnose link name argument.
29695         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
29696         with Sem_Ch6.Cannot_Inline.
29697         (Process_Inline): Provide separate warning for inapplicable inline
29698         pragma.
29699         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
29700         treatment is uniform on different targets.
29701
29702 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
29703
29704         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
29705         construct is rewritten, preserve end label to permit source navigation.
29706
29707 2004-12-07  Thomas Quinot  <quinot@adacore.com>
29708
29709         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
29710         Specific_Build_Stub_Target): New subprograms.
29711         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
29712         the PCS implementation used, using the above PCS-customized subprograms.
29713         Minor reformatting.
29714         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
29715         for generation of DSA code targeted to the PolyORB PCS.
29716         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
29717         implementation of the partition communication subsystem in ancillary
29718         subprograms.
29719         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
29720         PolyORB_Support.Build_Stub_Type): New subrograms containing the
29721         PCS-specific part of Add_Stub_Type.
29722         (Insert_Partition_Check): Use runtime library function to perform
29723         E.4(19) check.
29724
29725         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
29726         (RE_Same_Partition): New entity, from s-parint.
29727
29728         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
29729
29730 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
29731
29732         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
29733         Output the copyright message on a separate line from the version
29734         message.
29735
29736 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
29737
29738         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
29739         compile-time warning.
29740
29741 2004-12-07  Robert Dewar  <dewar@adacore.com>
29742
29743         * g-regpat.adb: (Match): Change a misuse of or to or else
29744
29745 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
29746
29747         * lib-xref.adb:
29748         (Generate_Reference): Handle properly a reference to an entry formal,
29749          when an accept statement has a pragma Unreferenced for it.
29750
29751         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
29752         and the Has_Pragma_Unreferenced flag for each formal before analyzing
29753         the body, to ensure that warnings are properly emitted for each accept
29754         statement of a given task entry.
29755
29756 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
29757
29758         * Makefile.in: Add support for foreign threads on VMS.
29759
29760 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29761
29762         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
29763         Remove.
29764         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
29765
29766         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
29767
29768         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
29769         exception.
29770         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
29771
29772 2004-12-07  Robert Dewar  <dewar@adacore.com>
29773
29774         * nlists.adb (Prepend_Debug): Remove parameters and nest within
29775         Prepend.
29776         (Remove_Next_Debug): Same fix
29777
29778         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
29779         maintain back pointers now, though we did not used to, and comments
29780         were out of date).
29781         (Prepend): Remove pragma Inline.
29782         (Remove_Next): Same cleanup
29783
29784 2004-12-07  Thomas Quinot  <quinot@adacore.com>
29785
29786         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
29787         used to record an implicit dereference as a read operation on its
29788         prefix when operating under -gnatc. Necessary to avoid spurious
29789         'variable assigned but never read' warnings in that mode.
29790         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
29791         is a non-overloaded implicit dereference, call the above subprogram to
29792         ensure proper recording of references.
29793
29794 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
29795
29796         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
29797         to be resolved later as part of Analyze_Iteration_Scheme's call to
29798         Make_Index.
29799
29800 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
29801
29802         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
29803         prefix is not a scalar type, place error message on prefix, not on
29804         type entity.
29805
29806 2004-12-07  Bernard Banner  <banner@adacore.com>
29807
29808         * vxaddr2line.adb: Add support for x86 vxworks
29809
29810 2004-12-07  Thomas Quinot  <quinot@adacore.com>
29811
29812         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
29813         documentation of the behaviour of these functions when passed an IP
29814         address that has no record in the system hosts database and no reverse
29815         record in the DNS.
29816
29817         * cstand.adb, a-tags.ads: Fix typos in comment.
29818
29819 2004-12-07  Robert Dewar  <dewar@adacore.com>
29820
29821         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
29822         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
29823         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
29824         s-poosiz.ads: Minor reformatting
29825
29826         * make.adb: Minor reformatting
29827         Add some ??? comments asking for more comments
29828
29829         * s-poosiz.adb: Minor reformatting
29830         Add comments on alignment requirement
29831
29832         * sinfo.ads: Remove obsolete comment and fix typo.
29833
29834 2004-12-07  Vincent Celier  <celier@adacore.com>
29835             Sergey Rybin  <rybin@adacore.com>
29836
29837         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
29838         Files" with the new tool and package names.
29839         Reformatting to suppress most of the warnings for line too long
29840         Document the new section "Project Search Path:" in the output of
29841         gnatls -v.
29842         Add gnatmetric section
29843
29844 2004-12-07  Vincent Celier  <celier@adacore.com>
29845
29846         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
29847         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
29848         and -eit to -ept. Added qualifier
29849         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
29850
29851 2004-11-27  Andreas Schwab  <schwab@suse.de>
29852
29853         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
29854
29855 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
29856
29857         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
29858         internal implementation unit GNAT.Sockets.Thin,
29859         as their usage for sockets is non-portable (using the read and write
29860         functions from the system runtime library is fine on UNIX but won't
29861         work under Windows).
29862
29863         * mingw32.h: Update copyright notice.
29864
29865 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
29866
29867         * ada-tree.h: Minor reformatting of previous change to avoid lines
29868         longer than 79 characters.
29869
29870 2004-11-25  Olivier Hainque  <hainque@adacore.com>
29871
29872         * tb-gcc.c: GCC infrastructure based implementation of
29873         __gnat_backtrace.
29874
29875 2004-11-24  Steven Bosscher  <stevenb@suse.de>
29876
29877         * misc.c (gnat_post_options): Don't clear
29878         flag_inline_functions.
29879
29880 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
29881
29882         PR ada/17986
29883         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
29884         tree.
29885
29886 2004-11-21  Andreas Jaeger  <aj@suse.de>
29887
29888         * stylesw.adb: Change Style_Check_Subprogram_Order to
29889         Style_Check_Order_Subprograms.
29890
29891 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
29892
29893         * adaint.h, adaint.c
29894         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
29895         to avoid warnings.
29896         Add also a cast to kill another warning.
29897         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
29898         parameter with the priority class of the parent process instead of
29899         always using the NORMAL_PRIORITY_CLASS.
29900         (__gnat_dup): New function.
29901         (__gnat_dup2): New function.
29902         (__gnat_is_symbolic_link): Enable the effective body of this
29903         function when __APPLE__ is defined.
29904
29905         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
29906         Update comments.
29907
29908 2004-11-18  Olivier Hainque  <hainque@adacore.com>
29909
29910         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
29911         address of which may be used to represent "others" and "all others"
29912         choices in exception tables, instead of the current harcoded
29913         (void *)0 and (void *)1.
29914         (Setup_Exception): Do nothing in the GNAT SJLJ case.
29915
29916         * gigi.h (others_decl, all_others_decl): New decls representing the
29917         new Others_Value and All_Others_Value objects.
29918         (struct attrib): Rename "arg" component as "args", since GCC expects a
29919         list of arguments in there.
29920
29921         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
29922         corresponding objects exported by a-exexpr, instead of hardcoded dummy
29923         addresses.
29924
29925         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
29926         others_decl and all_others_decl instead of hardcoded dummy addresses
29927         to represent "others" and "all others" choices, which is cleaner and
29928         more flexible with respect to the possible eh pointer encoding policies.
29929
29930         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
29931         (process_attributes): Account for the naming change of the "args"
29932         attribute list entry component.
29933
29934         * decl.c (build_attr_list): Rename into prepend_attributes to allow
29935         cumulating attributes for different entities into a single list.
29936         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
29937         attributes for the current entity and propagate first subtype
29938         attributes to other subtypes.
29939         <E_Procedure>: Attribute arguments are attr->args and not
29940         attr->arg any more.
29941         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
29942         argument provided, as this is what GCC expects. Use NULL_TREE instead
29943         of 0 for trees.
29944
29945 2004-11-18  Robert Dewar  <dewar@adacore.com>
29946
29947         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
29948         Minor reformatting througout (including new function specs)
29949         Add ??? comments asking for clarification.
29950
29951 2004-11-18  Thomas Quinot  <quinot@adacore.com>
29952
29953         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
29954         incomplete duplicate implementation of this subprogram from butil.
29955
29956 2004-11-18  Thomas Quinot  <quinot@adacore.com>
29957
29958         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
29959         procedures factors the common processing for building an RPC receiver
29960         for an RCI package or an RACW type.
29961         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
29962         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
29963         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
29964         in use.
29965         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
29966         Add_RACW_Features.
29967         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
29968         Add_RAST_Features.
29969         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
29970         distribution subprogram identifiers that are either subprogram numbers
29971         or strings.
29972         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
29973         string distribution identifiers assigned to a given subprogram.
29974         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
29975         (Add_RAS_Dereference_TSS): Add comments.
29976         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
29977         is not referenced yet because it will be used by the PolyORB DSA
29978         implementation.
29979         (Insert_Partition_Check): Remove fossile code.
29980         (First_RCI_Subprogram_Id): Document this constant.
29981         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
29982         RAS_Access TSS.
29983         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
29984         replaced with calls to Get_Library_Unit_Name_String. Previously there
29985         were several instances of the same code in different locations in the
29986         compiler; this checkin completes the replacement of all of these
29987         instances with calls to a common subprogram.
29988         Minor reformatting.
29989
29990         * sem_dist.adb: Remove comment noting that RPC receiver generation
29991         should be disabled for RACWs that implement RASs.
29992         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
29993
29994         * sem_util.ads, sem_util.adb (Has_Stream): New function
29995         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
29996         qualified name of a library unit into the name buffer.
29997         (Note_Possible_Modification): Generate a reference only
29998         if the context comes from source.
29999
30000         * snames.ads (PCS_Names): New subtype corresponding to names of
30001         supported implementations of the Partition Communication Subsystem
30002         (PCS) (i.e. the runtime library support modules for the distributed
30003         systems annex).
30004
30005 2004-11-18  Robert Dewar  <dewar@adacore.com>
30006             Ed Schonberg  <schonberg@adacore.com>
30007
30008         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
30009         (Has_Rep_Pragma): New function
30010         (Has_Attribute_Definition_Clause): New function
30011         (Record_Rep_Pragma): Moved here from sem_ch13.adb
30012         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
30013
30014         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
30015
30016         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
30017         (Expand_Pragma_Psect_Object): New procedure
30018         These procedures contain the revised and cleaned up processing for
30019         these two pragmas. This processing was formerly in Sem_Prag, but
30020         is more appropriately moved here. The cleanup involves making sure
30021         that the pragmas are properly attached to the tree, and that no
30022         nodes are improperly shared.
30023
30024         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
30025         pragmas to Exp_Prag, which is more appropriate.
30026         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
30027         check for duplicates Remove use of Is_Psected flag, no longer needed.
30028         Use new Make_String_Literal function with string.
30029
30030         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
30031         that are functions return universal values, that have to be converted
30032         to the context type.
30033         Use new Make_String_Literal function with string.
30034         (Get_Stream_Convert_Pragma): New function, replaces the use of
30035         Get_Rep_Pragma, which had to be kludged to work in this case.
30036
30037         * freeze.adb: Use new Has_Rep_Pragma function
30038
30039         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
30040         function with string.
30041         Use new Has_Rep_Pragma function.
30042
30043         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
30044         string argument.
30045
30046 2004-11-18  Robert Dewar  <dewar@adacore.com>
30047
30048         * errout.ads, errout.adb: (First_Sloc): New function
30049
30050         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
30051         check (-gnatyx) instead of being included as a redundant construct
30052         warning.
30053
30054         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
30055         Style_Check_Order_Subprograms.
30056
30057         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
30058         stylesw.adb: Add Style_Check_Xtra_Parens
30059
30060         * usage.adb: Add line for -gnatyx (check extra parens)
30061
30062         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
30063
30064 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
30065             Robert Dewar  <dewar@adacore.com>
30066
30067         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
30068         discriminant of a constrained subtype, analyze the copy of the
30069         corresponding constraint, because in some cases it may be only
30070         partially analyzed.
30071         Removes long-lived ??? comments.
30072
30073         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
30074         handled controlled or secondary-stack expressions within the
30075         iteration_scheme of a loop.
30076
30077         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
30078         bounds that may contain functions calls, to prevent memory leaks when
30079         the bound contains a call to a function that uses the secondary stack.
30080         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
30081         generate temporaries for loop bounds that might contain function calls
30082         that require secondary stack and/or finalization actions.
30083
30084         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
30085         selected component and the selector is overloadable (not just a
30086         function) treat as function call, Analyze_Call will disambiguate if
30087         necessary.
30088         (Analyze_Selected_Component): Do not generate an actual subtype for the
30089         selected component if expansion is disabled. The actual subtype is only
30090         needed for constraint checks.
30091         (Analyze_Allocator): If restriction No_Streams is set, then do
30092         not permit objects to be declared of a stream type, or of a
30093         composite type containing a stream.
30094
30095         * restrict.ads: Remove the a-stream entry from Unit_Array, since
30096         No_Streams no longer prohibits with'ing this package.
30097
30098         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
30099         discriminants, but the parent base has unknown discriminants, there is
30100         no discriminant constraint to inherit. Such a discrepancy can arise
30101         when the actual for a formal type with unknown discriminants is a
30102         similar private type whose full view has discriminants.
30103         (Analyze_Object_Declaration): If restriction No_Streams is set, then
30104         do not permit objects to be declared of a stream type, or of a
30105         composite type containing a stream.
30106
30107 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
30108
30109         * exp_dbug.ads: Update documentation to reflect simpler encoding for
30110         protected operations.
30111
30112         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
30113         generated name, it complicates decoding in gdb and hinders debugging
30114         of protected operations.
30115         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
30116         flag for the protected entry barrier function.
30117         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
30118         flag for the protected entry function.
30119
30120 2004-11-18  Nicolas Setton  <setton@adacore.com>
30121
30122         * expect.c: Define __unix__ when __APPLE__ is defined.
30123
30124         * Makefile.in: Inform the value of the variable GMEM_LIB in the
30125         Darwin-specific section.
30126
30127         * lang-specs.h: Change the placement of the %1 marker.
30128         Works around the fact that gcc adds -fPIC by default under Darwin.
30129
30130 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
30131
30132         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
30133         type of the object with the packed array type, set the Analyzed flag
30134         on the object if it is an entity or simple indexed component, to avoid
30135         spurious type errors.
30136
30137 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
30138
30139         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
30140         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
30141         separate line from the version message.
30142
30143 2004-11-18  Ed Falis  <falis@adacore.com>
30144
30145         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
30146         vthreads.
30147         (init_float): Eliminate initialization of floating point status for
30148         AE653. The instructions have no effect for vThreads.
30149
30150 2004-11-18  Vincent Celier  <celier@adacore.com>
30151
30152         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
30153         gnatbind is invoked with -shared.
30154
30155 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
30156
30157         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
30158         for Detect_Blocking which is redundant with the check done within the
30159         procedure Protected_Single_Entry_Call.
30160         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
30161         Detect_Blocking which is redundant with the check done within the
30162         procedure Protected_Single_Entry_Call.
30163
30164 2004-11-18  Vincent Celier  <celier@adacore.com>
30165
30166         * makegpr.adb (Compile): Put the compiling switches (in package
30167         Compiler and on the command line) immediately after "-c", instead of
30168         at the end of the command line invocation of the compiler, when
30169         compiling a non-Ada file.
30170         (Build_Global_Archive): When there is no need to rebuild the archive,
30171         set Global_Archive_Exists, so that the archive is passed to the linker
30172         if one is needed.
30173
30174 2004-11-18  Robert Dewar  <dewar@adacore.com>
30175             Sergey Rybin  <rybin@adacore.com>
30176
30177         * gnat_ugn.texi:
30178         Remove extra paren check from list of checks for redundant constructs
30179         Add documentation of new -gnatyx style check (check extra parens)
30180         Remove paragraph about gnatelim debug options.
30181
30182         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
30183         objects rather than forbidding dependencies on the package Ada.Streams.
30184
30185         * sinfo.ads: Add ??? note that we should document pragmas passed to
30186         back end.
30187
30188         * g-expect.ads: Fix a few typos in the comments.
30189
30190 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
30191
30192         * misc.c (gnat_handle_option): Use %< and %> for quoting in
30193         warning message.
30194
30195 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
30196
30197         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
30198
30199 2004-11-07  Andreas Schwab  <schwab@suse.de>
30200
30201         * Makefile.in (install-gnatlib): Remove spurious hyphen.
30202
30203 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
30204
30205         PR ada/18228
30206         * Makefile.in (darwin): Set soext to .dylib.
30207
30208 2004-10-26  Vincent Celier  <celier@gnat.com>
30209             Thomas Quinot   <quinot@act-europe.fr>
30210
30211         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
30212         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
30213         there is no use of GNAT.Sockets.Constants.
30214         Remove remaining pragma Import for C_Write
30215         Remove C_Read and C_Write from internal implementation unit
30216         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
30217         the read and write functions from the system runtime library is fine
30218         on UNIX but won't work under Windows).
30219
30220         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
30221         (Check_Selector): Use C_Recv instead of C_Read.
30222         Selectors are the GNAT.Sockets abstraction to perform a select()
30223         call on a set of descriptors. To allow abortion of an ongoing
30224         select operation, some data is written to a dedicated socket that
30225         is always monitored.
30226         Under Windows, the write and read library functions cannot operate
30227         on sockets, so we need to use send and recv instead, which is portable
30228         across all supported platforms.
30229
30230         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
30231         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
30232         (using the read and write functions from the system runtime library is
30233         fine on UNIX but won't work under Windows).
30234
30235 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
30236
30237         * mlib-tgt-darwin.adb: New file.
30238
30239         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
30240         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
30241         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
30242         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
30243         subprogram body.
30244
30245         * Makefile.in: Add support for building shared libraries under Darwin.
30246         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
30247         the low level EH init subprogram to be called from __gnat_initialize.
30248
30249         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
30250         indicates which options to pass to the archive indexer.
30251
30252         * mlib-utl.adb: Add support for calling ranlib with additional
30253         options. This is needed for instance under Mac OS X.
30254         (Ranlib_Options): New global variable, used to store the potential
30255         options to pass to ranlib.
30256         (Ar): Use Ranlib_Options when spawning ranlib.
30257         (Initialize): Set the value of ranlib option.
30258
30259 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
30260
30261         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
30262         instead of 8K, to reflect the real potential needs for stack-checking
30263         in the ZCX case.
30264
30265 2004-10-26  Pascal Obry  <obry@gnat.com>
30266
30267         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
30268
30269         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
30270         Windows only the initial thread stack size can be set so it is good to
30271         start we a low stack size.
30272         The OS will adjust the size as needed.
30273
30274 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
30275             Nicolas Setton  <setton@act-europe.fr>
30276
30277         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
30278         "__unix__" instead of "unix".
30279         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
30280         sections were just mistakenly ignored. The former is
30281         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
30282         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
30283         of hpux. This prevents an unwanted definition of the symbol
30284         convert_addresses in adaint.o.
30285
30286 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
30287
30288         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
30289         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
30290
30291 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
30292
30293         * a-filico.ads, a-filico.adb: fix incorrect header.
30294
30295 2004-10-26  Javier Miranda  <miranda@gnat.com>
30296
30297         * a-ststio.ads: Fix typo in identifier
30298
30299 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
30300
30301         * sem_ch4.adb: Minor reformatting.
30302
30303 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30304
30305         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
30306         enabled, check the result of unary and binary operations when the
30307         expression is the right-hand side of an assignment.
30308
30309 2004-10-26  Vincent Celier  <celier@gnat.com>
30310
30311         * clean.adb (Delete): Do not output warnings when in quiet output and
30312         not in verbose mode.
30313         (Force_Deletions): New Boolean flag, defaulted to False
30314         (Delete): Only delete a file if it is writable, and when
30315         Force_Deletions is True.
30316         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
30317         (Usage): Line for new switch -f
30318         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
30319         own.
30320
30321 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
30322
30323         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
30324         JM type only if its size matches that of the wrapper.  When a size is
30325         prescribed and the field is not aliased, remove the wrapper of a JM
30326         type only if the size is not greater than that of the packed array.
30327         (gnat_to_gnu_entity): Change the extension of packed array wrappers
30328         from LJM to JM.
30329
30330 2004-10-26  Geert Bosch  <bosch@gnat.com>
30331
30332         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
30333         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
30334         (Pred): Implement in terms of Succ.
30335
30336 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30337
30338         * exp_aggr.adb (Safe_Component): An aggregate component that is an
30339         unchecked conversion is safe for in-place use if the expression of the
30340         conversion is safe.
30341         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
30342         be expandable in place even if the aggregate does not come from source.
30343         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
30344         designated object of an allocator in place, rather than building it
30345         first on the stack. The previous scheme forces a full copy of the array,
30346         and may be altogether unsusable if the size of the array is too large
30347         for stack allocation.
30348
30349 2004-10-26  Robert Dewar  <dewar@gnat.com>
30350
30351         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
30352         compares if the component is atomic.
30353
30354         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
30355         array assignment if the component type is atomic.
30356
30357 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30358             Eric Botcazou  <ebotcazou@act-europe.fr>
30359
30360         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
30361         is aliased and is a by_reference type, do not pass by copy.
30362         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
30363         detect whether the call is in the right side of an assignment or
30364         the expression of an object declaration.  Recurse on component
30365         association within aggregates.
30366         Call it in the condition that determines whether the temporary is
30367         necessary for correct stack-checking.
30368
30369 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
30370
30371         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
30372         RACW_Type, used in the PolyORB version.
30373         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
30374         version and the GARLIC version.
30375
30376         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
30377         Rename RCI_Info to RCI_Locator for better consistency between the
30378         GARLIC and PolyORB versions of the distributed systems annex.
30379         (DSA_Implementation_Name): This enumeration lists the possible
30380         implementations of the Partition Communication Subsystem for the
30381         Distributed Systems Annex (DSA). The three available implementations
30382         are the dummy stub implementation (No_DSA), and two versions based on
30383         two different distribution runtime libraries: GARLIC and PolyORB. Both
30384         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
30385         technology.
30386         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
30387         that organization.
30388
30389         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
30390         between the GARLIC and PolyORB versions of the distributed systems
30391         annex.
30392         Remove RE_Unbounded_Reclaim_Pool since it is unused.
30393
30394 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
30395
30396         * gnat1drv.adb: Suppress calling the back end when
30397         Frontend_Layout_On_Target is true.
30398
30399 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
30400
30401         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
30402         Set_Read_Only): New subprograms.
30403         These new routines allow the user to set or unset the Owner execute
30404         and Owner write permission flags on a file.
30405
30406         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
30407         GNAT.OS_Lib.Set_Executable instead of rolling our own.
30408
30409 2004-10-26  Matthew Gingell  <gingell@gnat.com>
30410
30411         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
30412
30413 2004-10-26  Pascal Obry  <obry@gnat.com>
30414
30415         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
30416         memory before the faulting page we properly test the process read
30417         access for this address using appropriate Win32 routine.
30418         (HPUX sections): guard with "__hpux__" instead of "hpux".
30419
30420 2004-10-26  Robert Dewar  <dewar@gnat.com>
30421
30422         * lib-xref.adb (Generate_Reference): Don't complain about reference to
30423         entry parameter if pragma Unreferenced set, since we do not properly
30424         handle the case of multiple parameters.
30425
30426 2004-10-26  Vincent Celier  <celier@gnat.com>
30427
30428         * prj-env.adb: (Contains_ALI_Files): New Boolean function
30429         (Ada_Objects_Path.Add): For a library project, add to the object path
30430         the library directory only if there is no object directory or if the
30431         library directory contains ALI files.
30432         (Set_Ada_Paths.Add.Recursive_Add): Ditto
30433
30434 2004-10-26  Vincent Celier  <celier@gnat.com>
30435
30436         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
30437         extension of library projects.
30438
30439         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
30440         path defaults to ".:<prefix>/lib/gnat".
30441         (Parse): For an extending all project, allow direct import of a project
30442         that is virtually extended.
30443
30444         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
30445         the specified name is directly imported, return its ID. Otherwise, if
30446         an extension of this project is imported, return the ID of the
30447         extension.
30448
30449 2004-10-26  Robert Dewar  <dewar@gnat.com>
30450
30451         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
30452         (Sub3): New procedure, used by Scaled_Divide
30453         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
30454         correct more than one instance of failure to propagate carries
30455         correctly.
30456         (Double_Divide): Handle overflow case of largest negative number
30457         divided by minus one.
30458
30459         * s-arit64.ads (Double_Divide): Document that overflow can occur in
30460         the case of a quotient value out of range.
30461         Fix comments.
30462
30463 2004-10-26  Robert Dewar  <dewar@gnat.com>
30464
30465         * s-bitops.adb (Bit_Eq): Remove redundant check.
30466
30467         * s-bitops.ads: Minor comment updates
30468         Change some occurrences of Address to System.Address
30469
30470         * s-carsi8.ads: Fix minor cut-and-paste error in comments
30471
30472 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30473
30474         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
30475         accessibility check to prefix that is a protected operation.
30476
30477 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30478
30479         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
30480         empty, post message on stub.
30481
30482 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30483             Javier Miranda  <miranda@gnat.com>
30484
30485         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
30486         current instance appears within a unit that is directly in the context
30487         of the main unit.
30488         Used to determine whether the body of the instance should be analyzed
30489         immediately after its spec, to make its subprogram bodies available
30490         for front-end inlining.
30491         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
30492         constraint is not allowed on the component type (AARM 12.5.3(3))
30493
30494 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
30495
30496         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
30497         'Storage_Pool): enhance, document & limit detection of non-sharable
30498         internal pools.
30499
30500         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
30501
30502         * s-pooglo.ads: Add more documentation now that this pool is properly
30503         documented.
30504
30505 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30506
30507         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
30508         or protected type with discriminants, do not constrain the
30509         corresponding record type if the subtype declaration has no
30510         discriminant constraints. This can be the case in source code, or in
30511         the subtype declaration created to rename an actual type within an
30512         instantiation.
30513
30514 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30515
30516         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
30517         different kind of stub (possibly wrong name for file), do not check
30518         for conformance.
30519         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
30520         includes call to some function that returns an unconstrained type, do
30521         not inline.
30522
30523 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30524
30525         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
30526         appear in the code for the main unit. Dependencies among units in the
30527         context of the main unit are established when those other units are
30528         compiled. Otherwise spurious elaboration constraints can generate
30529         incorrect elaboration circularities.
30530
30531 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
30532             Ed Schonberg   <schonberg@gnat.com>
30533
30534         * sem_util.adb (Is_Aliased_View): Defend against the case where this
30535         subprogram is called with a parameter that is not an object name. This
30536         situation arises for some cases of illegal code, which is diagnosed
30537         later, and in this case it is wrong to call Is_Aliased, as that might
30538         cause a compiler crash.
30539         (Explain_Limited_Type): Refine previous fix to include
30540         inherited components of derived types, to provide complete information.
30541
30542         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
30543         is the prival for a protected object.
30544         It is necessary to mark this entity as a variable, in addition to
30545         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
30546         modified to avoid checking the Aliased flag on entities that are not
30547         objects. (Checking that flag for non-objects is erroneous and could
30548         lead to a compiler crash).
30549
30550 2004-10-26  Robert Dewar  <dewar@gnat.com>
30551
30552         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
30553         X_Frac = 0.5, then we know that the number X must be positive.
30554         (Succ): Remove the same redundant test, and also fix the primary test
30555         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
30556         Minor reformatting
30557         (Decompose): Add fuller comments to spec
30558
30559 2004-10-26  Pascal Obry  <obry@gnat.com>
30560
30561         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
30562         validity (process must have read access). Set to 0 in all other cases.
30563         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
30564         violation on Win32.
30565         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
30566         segmentation violation.
30567
30568 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
30569
30570         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
30571         whose type is a constructed subtype of an aliased object with an
30572         unconstrained nominal subtype, convert the actual to the constructed
30573         subtype before taking its address.
30574
30575 2004-10-26  Vincent Celier  <celier@gnat.com>
30576
30577         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
30578         (Is_Path_Name_Case_Sensitive): New function
30579
30580         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
30581         (Base_Name, Simple_Name, Current_Directory, Compose,
30582         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
30583         the result.
30584
30585 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
30586             Vasiliy Fofanov  <fofanov@act-europe.fr>
30587             Vincent Celier   <celier@gnat.com>
30588
30589         * gnat_ugn.texi: Generalize "finding memory problems" section into a
30590         "memory management issues" section and document some of the useful
30591         memory pools provided as part of the GNAT library.
30592         Remove "virtual" from declaration of A::method2 in
30593         the simple example of Ada/C++ mixed system.
30594         Library Projects may be virtually extended: their virtual extensions
30595         are not Library Projects.
30596         Added section on extending project hierarchies.
30597
30598 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
30599
30600         * adaint.c (__gnat_get_libraries_from_registry): Cast value
30601         to LPBYTE.
30602         (__gnat_portable_spawn): Remove const.
30603
30604         * mingw32.h (MAXPATHLEN): Check for previous definition.
30605
30606 2004-10-17  Matthias Klose  <doko@debian.org>
30607
30608         * gnatvsn.ads: Set gnat library version to 4.0.
30609
30610 2004-10-05  Vincent Celier  <celier@gnat.com>
30611
30612         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
30613
30614 2004-10-04  Laurent Guerby  <laurent@guerby.net>
30615
30616         PR ada/15156
30617         * Makefile.in: Define and use RANLIB_FLAGS.
30618
30619 2004-10-04  Pascal Obry  <obry@gnat.com>
30620
30621         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
30622         other x86 platforms).
30623
30624 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
30625
30626         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
30627         in general and triggers stack alignment adjustment for thread entry
30628         points on targets where this is necessary.
30629
30630 2004-10-04  Bernard Banner  <banner@gnat.com>
30631
30632         PR ada/13897
30633         * Makefile.in: Add section for powerpc linux
30634         Add variant i-vxwork-x86.ads
30635
30636         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
30637
30638 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
30639
30640         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
30641         table registration calls when need be. Ensures no reference to the crt
30642         ctors symbol are issued in the SJLJ case, which avoids possible
30643         undefined symbol errors in the case of modules to be statically linked
30644         with the kernel.
30645
30646 2004-10-04  Javier Miranda  <miranda@gnat.com>
30647
30648         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
30649         in-line the code corresponding to subprogram Analyze_Actuals. In
30650         addition, analyze the actuals only in case of subprogram call.
30651
30652 2004-10-04  Ed Falis  <falis@gnat.com>
30653
30654         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
30655
30656 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
30657
30658         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
30659         in the documentation.
30660
30661 2004-10-04  Robert Dewar  <dewar@gnat.com>
30662
30663         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
30664         IF and CASE.
30665         (Analyze_Block_Statement): Add circuitry to detect following dead code
30666         (Check_Unreachable_Code): Handle case of block exit
30667
30668 2004-10-04  Robert Dewar  <dewar@gnat.com>
30669
30670         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
30671         (XMatchD): Avoid warning for Logic_Error call
30672
30673 2004-10-04  Robert Dewar  <dewar@gnat.com>
30674
30675         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
30676         consider expressions buried within a procedure actual to be an actual.
30677         This caused some blowups with uses of packed slices within a procedure
30678         actual.
30679
30680 2004-10-04  Robert Dewar  <dewar@gnat.com>
30681
30682         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
30683         longer need to be initialized to zero.
30684         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
30685         initialized to zero.
30686
30687         * checks.adb (Expr_Known_Valid): Packed arrays are now always
30688         considered valid, even if the representation is modular. That's correct
30689         now that we no longer initialize packed modular arrays to zero.
30690
30691         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
30692         suffixes. These are now documented as the only cases in which the
30693         debugger ignores outer records.
30694         Previously, the spec allowed arbitrary suffixes for this purpose.
30695         Change name of LJM to JM for packed array pad records
30696         Create separate section on packed array handling, and add a whole new
30697         set of comments to this section describing the situation with packed
30698         modular types and justification requirements depending on endianness.
30699
30700 2004-10-04  Robert Dewar  <dewar@gnat.com>
30701
30702         * a-except.adb: Add a comment for last change
30703
30704         * einfo.ads: Minor spelling correction in comment
30705
30706         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
30707
30708         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
30709         messages.
30710
30711         * sem_util.ads: Minor comment update
30712
30713 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
30714
30715         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
30716         Inline_Always when in Configurable_Run_Time mode.
30717
30718         * sem_prag.adb (Process_Convention): If entity is an inherited
30719         subprogram, apply convention to parent subprogram if in same scope.
30720         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
30721         when in Configurable_Run_Time mode.
30722
30723 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
30724
30725         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
30726         class_wide type after component list has been inherited.
30727
30728 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
30729
30730         * sem_ch12.adb (Check_Generic_Actuals): New predicate
30731         Denotes_Previous_Actual, to handle properly the case of a private
30732         actual that is also the component type of a subsequent array actual.
30733         The visibility status of the first actual is not affected when the
30734         second is installed.
30735         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
30736         make fully recursive the treatment of formals of packages declared
30737         with a box.
30738         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
30739         the above on exit from an instantiation.
30740         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
30741         current instantiation which is now complete.
30742         (Analyze_Package_Instantiation): No instantiated body is needed if the
30743         main unit is generic. Efficient, and avoid anomalies when a instance
30744         appears in a package accessed through rtsfind.
30745
30746 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
30747
30748         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
30749         do not generate a declaration for a temporary if the call is part of a
30750         library-level instantiation.
30751
30752 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
30753
30754         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
30755         searching for a limited component to flag.
30756
30757         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
30758         expansion of Input, to account for the fact that the implicit call
30759         generated by the attribute reference must freeze the user-defined
30760         stream subprogram. This is only relevant to 'Input, because it can
30761         appear in an object declaration, prior to the body of the subprogram.
30762
30763         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
30764         expansion can proceed and further errors uncovered.
30765         (Minor clean up): Fix cases of using | instead of \ for continuation
30766         messages.
30767
30768 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30769
30770         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
30771
30772         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
30773         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
30774         Use gcc_assert and gcc_unreachable.
30775
30776         * decl.c (gnat_to_gnu_entity, case object): Check and process a
30777         specified alignment before validating size.
30778         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
30779         stripped-down declaration for the type of the inner field when making
30780         a JM type.
30781
30782         * utils.c (finish_record_type): Do not compute the size in units
30783         incrementally. Instead compute it once for the rep clause case.
30784         Use gcc_assert and gcc_unreachable.
30785
30786 2004-10-04  Vincent Celier  <celier@gnat.com>
30787
30788         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
30789         in file name.
30790         (Is_Valid_Path_Name): Take '/' as a directory separator.
30791
30792 2004-10-04  Vincent Celier  <celier@gnat.com>
30793
30794         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
30795         (Extended_Project) only if Extended_Project is defined, to avoid
30796         assertion error.
30797         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
30798         resolved path.
30799         (Parse_Single_Project): Ditto.
30800
30801         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
30802         Add_To_Project_Path for virtual projects.
30803
30804 2004-10-04  Vincent Celier  <celier@gnat.com>
30805
30806         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
30807         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
30808         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
30809         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
30810         parameter Options_2.
30811
30812         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
30813         Build_Dynamic_Library with an empty Options_2.
30814
30815         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
30816         default anymore.
30817
30818         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
30819         directory separator, if any.
30820         (Gprmake): Do not allow mains on the command line for library projects.
30821         Do not attempt to link when the project is a library project.
30822         (Library_Opts): New table to store Library_Options.
30823         (Build_Library): If Library_Options is specified, pass these options
30824         when building a shared library.
30825
30826 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
30827
30828         * s-tposen.adb (Service_Entry): The object must be always unlocked at
30829         the end of this procedure now that the unlock operation was inserted
30830         by the expander.
30831
30832 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
30833
30834         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
30835         corresponding to the Preallocated_Stacks flags in System.
30836         (Get_Target_Parameters): Including the processing for
30837         Preallocated_Stacks.
30838
30839         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
30840         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
30841         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
30842         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
30843         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
30844         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
30845         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
30846         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
30847         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
30848         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
30849         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
30850         used to signal whether the compiler creates the required stacks and
30851         descriptors for the different tasks (when True) or it is done by the
30852         underlying operating system at run time (when False).
30853         It is initially set to False in all targets.
30854
30855         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
30856         if it is supported by the target.
30857         (Make_Task_Create_Call): Pass the stack address if it has been
30858         previously created. Otherwise pass a Null_Address.
30859
30860         * snames.adb: Add _stack.
30861
30862         * snames.ads: Add Name_uStack. Required to allow the expander to
30863         statically allocated task stacks.
30864
30865         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
30866         Stack_Address argument.
30867         Check that its value is equal to Null_Address because this target does
30868         not support the static stack allocation.
30869
30870 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
30871
30872         * usage.adb: Change "pragma inline" to "pragma Inline" in information
30873         and error messages
30874
30875 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
30876
30877         * exp_dist.adb: Split declaration of asynchronous flag out of
30878         Add_RACW_Read_Attribute.
30879         Minor reformatting for better alignment with PolyORB version.
30880         Store the entity for the asynchronous flag of an RACW, rather than the
30881         expression, in the asynchronous flags table. This will allow this flag
30882         to be used in other subprograms beside Add_RACW_Read_Attribute.
30883
30884 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
30885
30886         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
30887         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
30888         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
30889         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
30890         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
30891         sockets constant MSG_NOSIGNAL (Linux-specific).
30892         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
30893         all Send operations.
30894         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
30895         from trigerring SIGPIPE.
30896         Rename components to avoid clash with Ada 2005 possible reserved
30897         word 'interface'.
30898         (Check_Selector): When the select system call returns with an error
30899         condition, propagate Socket_Error to the caller.
30900
30901 2004-10-01  Jan Hubicka  <jh@suse.cz>
30902
30903         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
30904
30905 2004-09-23  Robert Dewar  <dewar@gnat.com>
30906
30907         PR ada/17540
30908         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
30909         instead do this at freeze time (we won't do it if there is an address
30910         clause).
30911         Change "pragma inline" to "pragma Inline" in information and error
30912         messages.
30913         Minor reformatting.
30914
30915         * freeze.adb (Check_Address_Clause): Remove previous change, not the
30916         right way of doing things after all.
30917         (Freeze_Entity): For object, set Is_Public for imported entities
30918         unless there is an address clause present.
30919
30920 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
30921
30922         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
30923         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
30924         ensures proper handling of types with rep clauses, which might have
30925         their TYPE_SIZE set already.
30926
30927 2004-09-21  Robert Dewar  <dewar@gnat.com>
30928
30929         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
30930         packed array types in both little- and big-endian cases. This change
30931         ensures that we no longer count on the unused bits being initialized
30932         for such types (and in particular ensures that equality testing will
30933         only read the relevant bits).
30934         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
30935         These changes mean that we no longer need to initialize small packed
30936         arrays.
30937         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
30938         optimization to an LJM field as to its parent field.
30939
30940         * ada-tree.h, trans.c, utils.c, utils2.c:
30941         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
30942
30943 2004-09-20  Jan Hubicka  <jh@suse.cz>
30944
30945         * utils.c (gnat_finalize): Remove.
30946         (end_subprog_body): Directly call cgraph_finalize_function;
30947         do not lower the nested functions.
30948
30949 2004-09-20  Robert Dewar  <dewar@gnat.com>
30950
30951         PR ada/17540
30952         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
30953         if an address clause is present, since that means that the Import
30954         should be ignored.
30955
30956 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
30957
30958         * 5tsystem.ads: Removed, no longer used.
30959
30960 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
30961             Zack Weinberg  <zack@codesourcery.com>
30962
30963         * ada-tree.def: Use tree_code_class enumeration constants
30964         instead of code letters.
30965         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
30966         Update for new tree-class enumeration constants.
30967
30968 2004-09-17  Vincent Celier  <celier@gnat.com>
30969
30970         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
30971         capabilities of the general project manager.
30972
30973 2004-09-09  Vincent Celier  <celier@gnat.com>
30974
30975         * a-direct.ads: Add pragma Ada_05
30976         (Directory_Entry_Type): Give default value to component Kind to avoid
30977         not initialized warnings.
30978
30979         * a-direct.adb (Current_Directory): Remove directory separator at the
30980         end.
30981         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
30982         an existing directory.
30983         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
30984         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
30985         Convert the result to File_Size.
30986
30987         * prj.ads: (Project_Error): New exception
30988
30989         * prj-attr.adb: Except in procedure Initialize, Fail comes from
30990         Prj.Com, not from Osint.
30991         (Attrs, Package_Attributes): Tables moved to private part of spec
30992         (Add_Attribute, Add_Unknown_Package): Moved to new child package
30993         Prj.Attr.PM.
30994         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
30995         Prj.Project_Error after call to Fail.
30996         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
30997         Fail. Check that package name is not already in use.
30998
30999         * prj-attr.ads: Comment updates to indicate that all subprograms may be
31000         used by tools, not only by the project manager, and to indicate that
31001         exception Prj.Prj_Error may be raised in case of problem.
31002         (Add_Unknown_Package, Add_Attribute): Moved to new child package
31003         Prj.Attr.PM.
31004         (Attrs, Package_Attributes): Table instantiations moved from the body to
31005         the private part to be accessible from Prj.Attr.PM body.
31006
31007         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
31008         from new package Prj.Attr.PM.
31009         (Parse_Attribute_Declaration): Call Add_Attribute from new package
31010         Prj.Attr.PM.
31011
31012         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
31013
31014         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
31015         instead of Elaboration_Checks).
31016
31017         * a-calend.adb: Minor reformatting
31018
31019 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31020
31021         * gigi.h (maybe_pad_type): New declaration.
31022         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
31023
31024         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
31025
31026         * cuintp.c: Convert to use buildN.
31027
31028         * decl.c (maybe_pad_type): No longer static.
31029         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
31030         target pointer.
31031         Convert to use buildN.
31032
31033         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
31034         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
31035         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
31036         RHS.
31037         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
31038         (gnat_gimplify_expr, case ADDR_EXPR): New case.
31039         Convert to use buildN.
31040
31041         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
31042         TREE_READONLY for const.
31043         Convert to use buildN.
31044
31045         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
31046         (create_var_decl): Refine when TREE_STATIC is set.
31047         Convert to use buildN.
31048
31049 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
31050
31051         * gnat_ugn.texi: Delete text relating to checking of ali and object
31052         consistency.
31053
31054         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
31055         routines.
31056
31057 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
31058
31059         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
31060         pragmas recognized by GNAT.
31061
31062         * gnat_rm.texi: Document pragma Detect_Blocking.
31063
31064         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
31065         raise Program_Error if called from a protected operation.
31066
31067         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
31068         the protected action nesting level.
31069         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
31070         protected action nesting level.
31071         (Unlock): When pragma Detect_Blocking is active decrease the protected
31072         action nesting level.
31073
31074         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
31075         Protected_Action_Nesting.
31076
31077         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
31078         Common_ATCB record. It contains the dynamic level of protected action
31079         nesting for each task. It is needed for checking whether potentially
31080         blocking operations are called from protected operations.
31081         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
31082         Detect_Blocking is active or not in the partition.
31083
31084         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
31085         raise Program_Error if called from a protected operation.
31086         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
31087         Program_Error if called from a protected operation.
31088         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
31089         Program_Error if called from a protected operation.
31090
31091         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
31092         raise Program_Error if called from a protected operation.
31093
31094         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
31095         raise Program_Error if called from a protected operation, and increase
31096         the protected action nesting level.
31097         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
31098         Program_Error if called from a protected operation, and increase the
31099         protected action nesting level.
31100         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
31101         protected action nesting level.
31102
31103         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
31104         raise Program_Error if called from a protected operation, and increase
31105         the protected action nesting level.
31106         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
31107         Program_Error if called from a protected operation, and increase the
31108         protected action nesting level.
31109         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
31110         raise Program_Error if called from a protected operation.
31111         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
31112         active, raise Program_Error if called from a protected operation.
31113         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
31114         protected action nesting level.
31115
31116         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
31117         insertion of the statement raising Program_Error. The run time
31118         contains the required machinery for handling that.
31119
31120         * sem_util.ads: Change comment associated to procedure
31121         Check_Potentially_Blocking_Operation.
31122         This procedure does not insert a call for raising the exception because
31123         that is currently done by the run time.
31124
31125         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
31126
31127         * init.c: Add the global variable __gl_detect_blocking that indicates
31128         whether pragma Detect_Blocking is active (1) or not (0). Needed for
31129         making the pragma available at run time.
31130         (__gnat_set_globals): Pass and update the detect_blocking parameter.
31131
31132         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
31133         pragma Detect_Blocking is active.
31134
31135         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
31136
31137         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
31138         DB is found in the ali file. Any unit compiled with pragma
31139         Detect_Blocking active forces its effect in the whole partition.
31140
31141         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
31142         Detect_Blocking is active and delay is called from a protected
31143         operation.
31144
31145         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
31146         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
31147         Detect_Blocking is active (0 otherwise).
31148         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
31149         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
31150         otherwise).
31151
31152 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
31153
31154         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
31155         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
31156         package.
31157
31158         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
31159         (Register_Receiving_Stub): Add Subp_Info formal parameter.
31160         Update API in placeholder implemetation of s-parint to reflect changes
31161         in distribution runtime library.
31162
31163         * sem_ch3.adb (Expand_Derived_Record): Rename to
31164         Expand_Record_Extension.
31165
31166         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
31167         primitive operations of potentially distributed object types that have
31168         non-controlling anonymous access formals.
31169
31170         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
31171         subprogram.
31172         New implementation of expansion for remote access-to-subprogram types,
31173         based on the RACW infrastructure.
31174         This version of sem_dist is compatible with PolyORB/DSA as well as
31175         GLADE.
31176
31177         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
31178         Asynchrronous that applies to a remote access-to-subprogram type, mark
31179         the underlying RACW type as asynchronous.
31180
31181         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
31182          __gnat_using_gnu_linker to 1.
31183
31184         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
31185         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
31186         GNAT.Perfect_Hash_Generators, and remove the empty
31187         GNAT.Perfect_Hash package.
31188
31189         * atree.adb: Minor reformatting
31190
31191         * exp_ch3.adb (Expand_Derived_Record): Rename to
31192         Expand_Record_Extension.
31193         (Build_Record_Init_Proc.Build_Assignment): The default expression in
31194         a component declaration must remain attached at that point in the
31195         tree so New_Copy_Tree copies it if the enclosing record type is derived.
31196         It is therefore necessary to take a copy of the expression when building
31197         the corresponding assignment statement in the init proc.
31198         As a side effect, in the case of a derived record type, we now see the
31199         original expression, without any rewriting that could have occurred
31200         during expansion of the ancestor type's init proc, and we do not need
31201         to go back to Original_Node.
31202
31203         * exp_ch3.ads (Expand_Derived_Record): Rename to
31204         Expand_Record_Extension.
31205
31206         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
31207         Returns the RACW type used to implement a remote access-to-subprogram
31208         type.
31209         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
31210         New subprograms. Used to create a proxy tagged object for a remote
31211         subprogram. The proxy object is used as the designated object
31212         for RAS values on the same partition (unless All_Calls_Remote applies).
31213         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
31214         System.Partition_Interface.Get_Unique_Remote_Pointer.
31215         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
31216         Renamed from Add_RAS_*_Attribute.
31217         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
31218         subprograms.
31219         New implementation of expansion for remote access-to-subprogram types,
31220         based on the RACW infrastructure.
31221
31222         * exp_dist.ads (Copy_Specification): Update comment to note that this
31223         function can copy the specification from either a subprogram
31224         specification or an access-to-subprogram type definition.
31225
31226 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
31227
31228         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
31229         in an instance, between an explicit subprogram an one inherited from a
31230         type derived from an actual.
31231
31232         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
31233         add a polling call if the subprogram is to be inlined by the back-end,
31234         to avoid repeated calls with multiple inlinings.
31235
31236         * checks.adb (Apply_Alignment_Check): If the expression in the address
31237         clause is a call whose name is not a static entity (e.g. a dispatching
31238         call), treat as dynamic.
31239
31240 2004-09-09  Robert Dewar  <dewar@gnat.com>
31241
31242         * g-trasym.ads: Minor reformatting
31243
31244         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
31245         packed arrays, since unused bits are expected to be zero for a
31246         comparison.
31247
31248 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
31249
31250         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
31251         comment.
31252
31253 2004-09-09  Pascal Obry  <obry@gnat.com>
31254
31255         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
31256         enable map file generation. Add the right option to generate the map
31257         file if Map_File is set to True.
31258
31259         * gnatdll.adb (Gen_Map_File): New variable.
31260         (Syntax): Add info about new -m (Map_File) option.
31261         (Parse_Command_Line): Add support for -m option.
31262         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
31263         Minor reformatting.
31264
31265 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
31266
31267         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
31268         new gnatdist implementation.
31269         Define a subpackage isolating the output routines specific to this
31270         verbose mode.
31271
31272 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
31273
31274         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
31275
31276         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
31277
31278 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
31279
31280         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
31281         internal unit.
31282
31283         * opt.ads: Add Ada_Version_Runtime constant used to decide which
31284         version of the language is used to compile the run time.
31285
31286 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
31287
31288         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
31289         of variable length temporaries for function return now that the
31290         back-end and gigi support it.
31291
31292 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31293
31294         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
31295
31296         * trans.c (struct stmt_group): Delete field GLOBAL.
31297         (gnat_init_stmt_group): Do not initialize it.
31298         (call_to_gnu): Use save_expr, not protect_multiple_eval.
31299         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
31300         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
31301         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
31302         (start_stmt_group): Likewise.
31303         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
31304
31305         * utils2.c (ggc.h): Include.
31306         (build_call_raise): Call build_int_cst, not build_int_2.
31307
31308         * utils.c (gnat_init_decl_processing): Fix arg to
31309         build_common_tree_nodes.
31310         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
31311         (gnat_define_builtin): Set built_in_decls.
31312         (init_gigi_decls): Call build_int_cst, not build_int_2.
31313
31314         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
31315         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
31316         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
31317         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
31318         SET_TYPE_MODULE): Use them.
31319         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
31320         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
31321         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
31322         SET_TYPE_ADA_SIZE): Likewise.
31323         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
31324         (DECL_CONST_CORRESPONDING_VAR,
31325         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
31326         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
31327         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
31328         (TYPE_RM_SIZE_NUM): New macro.
31329         (TYPE_RM_SIZE): Modified to use above.
31330
31331         * cuintp.c: (build_cst_from_int): New function.
31332         (UI_To_gnu): Use it.
31333
31334         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
31335         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
31336         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
31337         MIN_EXPR for the size, copy it into new.
31338
31339 2004-09-01  Robert Dewar  <dewar@gnat.com>
31340
31341         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
31342         packed indexed component where array is an IN OUT formal. This
31343         generated garbage code previously.
31344
31345         * gnat_ugn.texi: Document -fverbose-asm
31346
31347         * gnat-style.texi: Minor updates (note that boolean constants and
31348         variables are joined with AND/OR rather than short circuit forms).
31349
31350 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
31351
31352         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
31353         it is an upward conversion of an untagged type with no representation
31354         change.
31355
31356 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
31357
31358         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
31359         System.Partition_Interface.
31360
31361         * checks.adb (Apply_Access_Checks): Do not generate checks when
31362         expander is not active (but check for unset reference to prefix of
31363         dereference).
31364
31365         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
31366         pragma Debug as an if statement with a constant condition, for
31367         consistent treatment of entity references contained within the
31368         enclosed procedure call.
31369
31370 2004-09-01  Vincent Celier  <celier@gnat.com>
31371
31372         * bindgen.adb: (Set_EA_Last): New procedure
31373         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
31374         Set_EA_Last.
31375         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
31376         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
31377         linked without errors.
31378         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
31379         ST and EA.
31380         (Gen_Exception_Table_C): Correct same bugs
31381
31382         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
31383
31384         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
31385         on Windows, make sure that the drive letter is in upper case.
31386
31387         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
31388         Windows, when the drive letter is added and Case_Sensitive is True, the
31389         drive letter is forced to upper case.
31390
31391         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
31392         to Options_2 for the call to MLib.Utl.Gcc.
31393
31394         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
31395         directory separator when defining BASE_DIR.
31396
31397 2004-09-01  Pascal Obry  <obry@gnat.com>
31398
31399         * gprcmd.adb (Extend): Do not output trailing directory separator. This
31400         is not needed and it confuses Windows GNU/make which does not report
31401         directory terminated by a slash as a directory.
31402         (gprcmd): Idem for "pwd" internal command.
31403
31404         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
31405         target names rewrite to fix regressions with recent version of
31406         GNU/make. Starting with GNU/make 3.80 the pipe character was not
31407         handled properly anymore.
31408
31409 2004-09-01  Andreas Schwab  <schwab@suse.de>
31410
31411         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
31412         * raise.c [!IN_RTS]: Undef abort.
31413
31414 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
31415
31416         * utils2.c (build_allocator): Use ssize_int.
31417
31418         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
31419
31420 2004-08-27  Andreas Schwab  <schwab@suse.de>
31421
31422         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
31423
31424 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
31425             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31426
31427         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
31428
31429 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
31430
31431         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
31432         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
31433         * utils.c (init_gigi_decls): Likewise.
31434         * utils2.c (build_call_raise, build_allocator): Likewise.
31435
31436 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
31437
31438         * utils.c (gnat_init_decl_processing): Adjust
31439         build_common_tree_nodes call.
31440
31441 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
31442
31443         * utils2.c (build_allocator): Use build_int_cst for negative
31444         size types.
31445
31446 2004-08-18  Richard Henderson  <rth@redhat.com>
31447
31448         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
31449
31450 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
31451
31452         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
31453         call.s
31454         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
31455         (gnat_to_gnu): Likewise.
31456
31457 2004-08-16  Pascal Obry  <obry@gnat.com>
31458
31459         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
31460         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
31461         option and not mdll anymore. Update comment.
31462
31463 2004-08-16  Pascal Obry  <obry@gnat.com>
31464
31465         * bld.adb (Put_Include_Project): Properly handle directory separators
31466         on Windows.
31467
31468 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
31469
31470         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
31471         decreasing the number of allocated junk nodes while searching for the
31472         appropriate subprogram.
31473
31474 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
31475
31476         * cuintp.c (UI_To_gnu): Use build_int_cst..
31477         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
31478         * utils.c (init_gigi_decls): Likewise.
31479         * utils2.c (build_call_raise): Likewise.
31480
31481 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
31482
31483         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
31484         for a global aliased object with a variable size and an unconstrained
31485         nominal subtype, pretend there is no initializer if the one we have is
31486         incomplete, and avoid referencing an inexistant component in there. The
31487         part we have will be rebuilt anyway and the reference may confuse
31488         further operations.
31489
31490 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
31491
31492         * einfo.ads: Minor reformatting
31493
31494         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
31495         restrictions in the ALI if we only want to warn about violations.
31496
31497 2004-08-13  Vincent Celier  <celier@gnat.com>
31498
31499         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
31500         when creating a new Unit_Record in table Units.
31501
31502         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
31503         that are violated, if any.
31504
31505         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
31506         add directory separator if path already ends with a directory separator.
31507
31508 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
31509
31510         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
31511         unit, this is an attempt to inline a construct that is not available in
31512         the current restricted mode, so abort rather than trying to continue.
31513
31514         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
31515         discriminants that rename those of the parent, recover names of
31516         original discriminants for the constraint on the full view of the
31517         parent.
31518         (Complete_Private_Subtype): Do not create a subtype declaration if the
31519         subtype is an itype.
31520
31521         * gnat_rm.texi: Added section on implementation of discriminated
31522         records with default values for discriminants.
31523
31524 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
31525
31526         PR ada/15601
31527         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
31528         the second operand is overloaded.
31529
31530 2004-08-10  Richard Henderson  <rth@redhat.com>
31531
31532         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
31533         add __builtin_alloca.
31534
31535 2004-08-10  Richard Henderson  <rth@redhat.com>
31536
31537         * config-lang.in (boot_language): Yes.
31538
31539 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
31540
31541         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
31542         from complaining on potential uninitialized reference.
31543         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
31544         new specification and test explicitly for non-zero return value.
31545
31546         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
31547         returning C.int, to avoid using a derived boolean type.
31548
31549         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
31550         Duplicate_Subexpr_No_Checks in preference to direct use of
31551         Remove_Side_Effects and New_Copy_Tree.
31552         Clear Comes_From_Source on prefix of 'Size attribute reference.
31553
31554         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
31555         g-socthi-vxworks.adb: Change calls to
31556         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
31557         and test explicitly for non-zero return value.
31558
31559         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
31560         (Is_Socket_In_Set): Declare imported function as returning C.int, to
31561         avoid using a derived boolean type.
31562
31563 2004-08-09  Albert Lee  <lee@gnat.com>
31564
31565         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
31566
31567 2004-08-09  Pascal Obry  <obry@gnat.com>
31568
31569         * gnat_ugn.texi: Document new way to build DLLs on Windows using
31570         GCC's -shared option.
31571
31572         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
31573         Options_2 parameter (options put after object files).
31574
31575 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
31576
31577         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
31578         ignore overflows on low and high bounds of an index to also account for
31579         differences in signedness between sizetype and gnu_index_subtype.
31580         These are as legitimate as the ones caused by a lower TYPE_PRECISION
31581         on sizetype.
31582
31583 2004-08-09  Robert Dewar  <dewar@gnat.com>
31584
31585         * s-solita.ads, s-solita.adb: Minor reformatting
31586
31587         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
31588         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
31589         obsolescent section
31590         Add note that No_Implicit_Conditionals does not suppress
31591         run time constraint checks.
31592
31593         * vms_conv.ads: Minor reformatting
31594
31595         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
31596         and necessary for following change).
31597         (Mark): Return new format Mark_Id containing sec stack address
31598         (Release): Use sec stack address from Mark_Id avoiding Self call
31599
31600         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
31601         pointer (cleanup and necessary for following change).
31602         Define Mark_Id as record containing address of secondary stack, that way
31603         Release does not need to find the stack again, decreasing the number of
31604         calls to Self and improving efficiency.
31605
31606         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
31607
31608         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
31609         case variable into the individual case branches when possible.
31610
31611         * sem_ch11.adb: Minor reformatting
31612
31613         * prj.ads: Correct spelling of suffixs
31614
31615         * prj-nmsc.adb: Minor reformatting
31616         Correct spelling suffixs throughout (also in identifiers)
31617
31618         * freeze.adb: Minor spelling correction
31619
31620         * exp_ch2.adb: Cleanups to handling of Current_Value
31621         (no functional effect).
31622
31623         * bld.adb: Correct spelling of suffixs
31624
31625         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
31626
31627 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
31628
31629         PR ada/15408
31630         * sem_ch7.adb (Install_Private_Declarations): In the body of the
31631         package or of a child, private entities are both immediately_visible
31632         and not hidden.
31633
31634 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
31635
31636         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
31637         there are no range checks on the value of the literal.
31638
31639         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
31640         wrapped is the triggering alternative of an asynchronous select, action
31641         statements mustbe inserted before the select itself.
31642
31643         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
31644         case where the prefix is a protected function call.
31645         (Resolve_Attribute, case 'Access): The attribute reference on a
31646         subprogram is legal in a generic body if the subprogram is declared
31647         elsewhere.
31648
31649 2004-08-09  Vincent Celier  <celier@gnat.com>
31650
31651         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
31652         languages, otherwise building the library may fail with unresolved
31653         symbols.
31654         (Compile_Sources): Do not build libraries if -c switch is used
31655
31656         * gnatlink.adb (Process_Args): New switches -M and -Mmap
31657         (Write_Usage): If map file creation is supported, output new switches
31658         -M and -Mmap.
31659         (Gnatlink): When -M is specified, add the necessary switch(es) to the
31660         gcc call, when supported.
31661
31662         * Makefile.in: Added indepsw.o to the object list for gnatlink
31663         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
31664
31665         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
31666         indepsw.adb, indepsw.ads: New files.
31667
31668 2004-08-09  Bernard Banner  <banner@gnat.com>
31669
31670         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
31671
31672         * Makefile.in: add section for vxworks x86
31673
31674 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
31675
31676         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
31677         per-object constrained components where the discriminant is of an
31678         Access type.
31679         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
31680         the parent initialization procedure for derived Unchecked_Unions.
31681         Instead, derived Unchecked_Unions build their own initialization
31682         procedure.
31683         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
31684         Check the body of the subprogram for details.
31685         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
31686         functions for derived Unchecked_Union types by introducing a condition.
31687         Allow the creation of TSS equality functions for Unchecked_Unions.
31688         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
31689         Add formal parameter Discr to function signature. Discr is used to
31690         control the generated case statement for Unchecked_Union types.
31691         (Make_Eq_If): Rename formal parameter Node to E in function signature.
31692
31693         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
31694         Unchecked_Unions.
31695         Check the body of the subprogram for details.
31696         (Expand_Composite_Equality): Augment composite type equality to include
31697         correct handling of Unchecked_Union components.
31698         (Expand_N_In): Add condition to detect illegal membership tests when the
31699         subtype mark is a constrained Unchecked_Union and the expression lacks
31700         inferable discriminants, and build a Raise_Program_Error node.
31701         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
31702         to detect types that contain components of unconstrained Unchecked_Union
31703         subtype. Add condition to detect equality between types that have an
31704         unconstrained Unchecked_Union component, and build a Raise_Program_Error
31705         node. Add condition to detect equality between Unchecked_Union types
31706         that lack inferable discriminants, and build a Raise_Program_Error node.
31707         Otherwise build a TSS equality function call.
31708         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
31709         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
31710         with the operand lacking inferable discriminants, and build a Raise_
31711         Program_Error node.
31712         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
31713         composite equality.
31714         (Has_Inferable_Discriminants): Implement new predicate for objects and
31715         expressions of Unchecked_Union type. Check the body of subprogram for
31716         details.
31717         (Has_Unconstrained_UU_Components): Add function
31718         Component_Is_Unconstrained_UU. It is used to detect whether a single
31719         component is of an unconstrained Unchecked_Union subtype. Add function
31720         Variant_Is_Unconstrained_UU. It is used to detect whether a single
31721         component inside a variant is of an unconstrained Unchecked_Union type.
31722
31723         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
31724         inferred discriminant values. Add condition to generate a case
31725         statement with an inferred discriminant as the switch.
31726         (Make_Component_List_Assign): Introduce a Boolean flag that determines
31727         the behaviour of the subprogram in the presence of an Unchecked_Union.
31728         Add condition to trigger the usage of the inferred discriminant value
31729         as the generated case statement switch.
31730         (Make_Field_Assign): Introduce a Boolean flag that determines the
31731         behaviour of the subprogram in the presence of an Unchecked_Union. Add
31732         condition to trigger the usage of the inferred discriminant value as
31733         the right-hand side of the generated assignment.
31734
31735         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
31736         parameter generation when dealing with Unchecked_Unions.
31737
31738         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
31739         checks for Unchecked_Unions.
31740
31741         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
31742
31743         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
31744         Raise_Program_Error nodes for the execution of Read and Write
31745         attributes of Unchecked_Union types and the execution of Input and
31746         Output attributes of Unchecked_Union types that lack default
31747         discriminant values.
31748
31749         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
31750         Unchecked_Union. Add procedure Check_Component. It is used to inspect
31751         per-object constrained components of Unchecked_Unions for being
31752         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
31753         check individual components withing a variant.
31754
31755         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
31756         comparison of Unchecked_Unions.
31757         (Resolve_Equality_OP): Remove guard that prevents equality between
31758         Unchecked_Unions.
31759
31760         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
31761         of component subtypes for Unchecked_Union components.
31762         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
31763         since it is the actual subtype.
31764
31765         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
31766         pass of Unchecked_Union subtypes as generic actuals to formal types
31767         that lack known_discriminant_parts or that are derived Unchecked_Union
31768         types, and do nothing. In any other case, produce an error message.
31769
31770         * sem_ch3.adb (Analyze_Component_Declaration): Add function
31771         Contains_POC. It determines whether a constraint uses the discriminant
31772         of an enclosing record type.
31773         Add condition to detect per-object constrained component and set the
31774         appropriate flag.
31775         (Derived_Type_Declaration): Remove guard that prevents derivation from
31776         Unchecked_Union types.
31777         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
31778         Union subtypes.
31779
31780         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
31781         references to Unchecked_Union discriminants.
31782
31783         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
31784         formal generation when dealing with Unchecked_Unions.
31785         (Set_Actual_Subtypes): Add condition to prevent generation of actual
31786         subtypes for Unchecked_Unions.
31787
31788         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
31789         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
31790         completions of discriminated partial views by Unchecked_Unions and
31791         produce an error message.
31792
31793 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31794
31795         * trans.c (struct stmt_group): New field, GLOBAL.
31796         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
31797         (struct elab_info): New struct.
31798         (elab_info_list, gnu_elab_proc_stack): New variables.
31799         (Compilation_Unit_to_gnu): New procedure.
31800         (gigi): Call it and also handle elaboration procs we've saved.
31801         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
31802         global field from parent.
31803         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
31804         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
31805         (start_stmt_group): Initialize global field from parent.
31806         (add_decl_expr): Set to global for current statement group.
31807         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
31808         post.
31809
31810         * utils.c (global_bindings_p): True when no current_function_decl; no
31811         longer check current_binding_level.
31812
31813 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
31814
31815         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
31816         choice.
31817
31818         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
31819
31820 2004-08-06  Andreas Schwab  <schwab@suse.de>
31821
31822         * utils.c (gnat_define_builtin): Remove second parameter of
31823         make_decl_rtl.
31824         (begin_subprog_body): Likewise.
31825
31826 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
31827
31828         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
31829         optimization, not supported by the tree-ssa back-end.
31830
31831 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
31832
31833         * s-mastop-irix.adb: Update comments.
31834
31835         * a-except.adb (Exception_Information): Raise Constraint_Error if
31836         exception Id is Null_Id.
31837         This is required behavior, which is more reliably and clearly checked
31838         at the top level interface level.
31839
31840 2004-07-26  Javier Miranda  <miranda@gnat.com>
31841
31842         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
31843         call if a component has no default_expression and the box is used.
31844
31845         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
31846         default_expression and you use box, it behaves as if you had declared a
31847         stand-alone object.
31848         (Resolve_Record_Aggregate): If a component has no default_expression and
31849         you use box, it behaves as if you had declared a stand-alone object.
31850
31851         * sem_ch10.adb (Install_Siblings): Do not make visible the private
31852         entities of private-with siblings.
31853
31854 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
31855
31856         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
31857         for a component of an itype, set the parent pointer for analysis,
31858         there is no list in which to insert it.
31859
31860         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
31861         bona-fide renamings, not for inherited operations.
31862
31863         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
31864         actual for a formal that is an access parameter, create local
31865         finalization list even if the expression is not an aggregate.
31866
31867 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
31868
31869         PR ada/16213
31870         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
31871         Diagnose properly illegal subprogram renamings that are library units.
31872
31873 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
31874
31875         PR ada/15588
31876         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
31877         conversion rewritten as an unchecked conversion, check that original
31878         expression is a variable.
31879
31880         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
31881         unchecked_conversion, create new node rather than rewriting in place,
31882         to preserve original construct.
31883
31884 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31885
31886         * gigi.h (gnat_expand_body): Deleted.
31887
31888         * Make-lang.in: (trans.o): Depends on function.h.
31889
31890         * misc.c: (gnat_expand_body): Moved to here.
31891
31892         * trans.c (gnat_expand_body_1): Deleted.
31893         (gnat_expand_body): Moved from here.
31894         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
31895         (add_stmt): Check for marked visited with global_bindings_p.
31896         (gnat_gimplify_expr, case COMPONENT_REF): New case.
31897         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
31898
31899         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
31900         VIEW_CONVERT_EXPR if not operation type.
31901
31902         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
31903         fat pointer.
31904
31905         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
31906         changes: reformatting of negation operators, removing unneeded
31907         inequality comparison with zero, converting equality comparisons with
31908         zero to negations, changing int/0/1 to bool/false/true, replace calls
31909         to gigi_abort with abort, and various other similar changes.
31910
31911 2004-07-26  Vincent Celier  <celier@gnat.com>
31912
31913         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
31914         "setup".
31915
31916         * make.adb (Gnatmake): Fail when a library is not present and there is
31917         no object directory.
31918
31919         * mlib-prj.adb (Check_Library): No need to check if the library needs
31920         to be rebuilt if there is no object directory, hence no object files
31921         to build the library.
31922
31923         * opt.ads (Setup_Projects): New Boolean flag.
31924
31925         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
31926         Location.
31927         Create directory when Kind /= "" and in "gnat setup". Report error if
31928         directory cannot be created.
31929         (Ada_Check): Create library interface copy dir if it does not exist
31930         and we are in "gnat setup".
31931         (Find_Sources): No error if in "gnat setup" and no Ada sources were
31932         found.
31933         (Language_Independent_Check): Create object directory, exec directory
31934         and/or library directory if they do not exist and we are in
31935         "gnat setup".
31936
31937         * vms_conv.ads: (Command_Type): New command Setup.
31938
31939         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
31940
31941         * vms_data.ads: Add qualifiers/switches for new built-in command
31942         "setup".
31943
31944 2004-07-25  Richard Henderson  <rth@redhat.com>
31945
31946         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
31947         DECL_IGNORED_P on RESULT_DECL.
31948
31949 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
31950
31951         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
31952         allocation and potentially overflowing update with
31953         Tailored_Exception_Information. Use the sec-stack free procedural
31954         interface to output Exception_Information instead.
31955
31956         * a-except.adb (To_Stderr): New subprogram for character, and string
31957         version moved from a-exextr to be visible from other separate units.
31958         (Tailored_Exception_Information): Remove the procedural version,
31959         previously used by the default Last_Chance_Handler and not any more.
31960         Adjust various comments.
31961
31962         * a-exexda.adb: Generalize the exception information procedural
31963         interface, to minimize the use of secondary stack and the need for
31964         local buffers when the info is to be output to stderr:
31965         (Address_Image): Removed.
31966         (Append_Info_Character): New subprogram, checking for overflows and
31967         outputing to stderr if buffer to fill is of length 0.
31968         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
31969         (Append_Info_Address, Append_Info_Exception_Name,
31970         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
31971         Append_Info_Basic_Exception_Traceback,
31972         Append_Info_Exception_Information): New subprograms.
31973         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
31974         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
31975         Exception_Info_Maxlength, Exception_Name_Length,
31976         Exception_Message_Length): New subprograms.
31977         (Exception_Information): Use Append_Info_Exception_Information.
31978         (Tailored_Exception_Information): Use
31979         Append_Info_Basic_Exception_Information.
31980         Export services for the default Last_Chance_Handler.
31981
31982         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
31983         other separate units.
31984
31985 2004-07-20  Vincent Celier  <celier@gnat.com>
31986
31987         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
31988
31989 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
31990
31991         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
31992         emit itype references for the designated types of component types that
31993         are declared outside of the full record declaration, and that may
31994         denote a partial view of that record type.
31995
31996 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
31997
31998         PR ada/15607
31999         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
32000         which is the designated type in an access component declaration, to the
32001         list of incomplete dependents of the parent type, to avoid elaboration
32002         issues with out-of-scope subtypes.
32003         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
32004         full view of the parent.
32005
32006 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
32007
32008         PR ada/15610
32009         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
32010         entities that are hidden, such as references to generic actuals
32011         outside an instance.
32012
32013 2004-07-20  Javier Miranda  <miranda@gnat.com>
32014
32015         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
32016         support to the new notation.
32017         (Analyze_Selected_Component): Add call to Try_Object_Operation.
32018
32019 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
32020
32021         * s-taprob.adb: Adding the elaboration code required for initializing
32022         the tasking soft links that are common to the full and the restricted
32023         run times.
32024
32025         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
32026         restricted run time has been moved to the package
32027         System.Soft_Links.Tasking.
32028
32029         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
32030         restricted run time has been moved to the package
32031         System.Soft_Links.Tasking.
32032
32033         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
32034
32035         * s-solita.ads, s-solita.adb: New files.
32036
32037 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32038
32039         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
32040         Case_Statement_to_gnu): Split off from gnat_to_gnu.
32041         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
32042         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
32043         Exception_Handler_to_gnu_zcx): Likewise.
32044
32045 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
32046
32047         * gigi.h (builtin_function): Declare.
32048
32049 2004-07-15  Robert Dewar  <dewar@gnat.com>
32050
32051         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
32052         reformatting
32053
32054         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
32055         access values as an example of a warning.
32056
32057         * gnat_rm.texi: Document new attribute Has_Access_Values
32058
32059         * gnat-style.texi: Document that box comments belong on nested
32060         subprograms
32061
32062         * sem_util.ads (Has_Access_Values): Improved documentation
32063
32064         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
32065
32066         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
32067         (Process_Interface_Name): Call to this new procedure
32068         (Set_Extended_Import_Export_External_Name): Call to this new procedure
32069
32070         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
32071
32072         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
32073
32074         * einfo.ads: Minor comment typo fixed
32075
32076 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
32077
32078         * snames.adb: Add _atcb.
32079
32080         * snames.ads: Add Name_uATCB.
32081
32082         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
32083         (in the expanded code) when using the restricted run time.
32084
32085         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
32086         a in parameter in order to allow ATCBs to be preallocated (in the
32087         expanded code).
32088
32089         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
32090         order to allow ATCBs to be preallocated. In case of error, the ATCB is
32091         deallocated in System.Tasking.Stages.
32092
32093         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
32094         order to allow ATCBs to be preallocated.
32095
32096         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
32097         here. It was previously done in Initialize_ATCB.
32098
32099         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
32100
32101         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
32102         Restricted run time.
32103
32104         * exp_ch3.adb: When using the Restricted run time, pass the
32105         preallocated Ada_Task_Control_Block when creating a task.
32106
32107 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
32108
32109         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
32110         function call that is itself an actual in an enclosing call, diagnose
32111         problem here rather than assuming that resolution will catch it.
32112
32113         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
32114         the local copy of a generic unit for a formal package, and the generic
32115         is a child unit, install private part of ancestors before compiling
32116         private part of spec.
32117
32118         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
32119         use scope entities rather than tree structures, to handle properly
32120         parent units that are instances rewritten as bodies for inlining
32121         purposes.
32122
32123         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
32124         Remove_Parents): Handle properly a parent unit that is an
32125         instantiation, when the unit has been rewritten as a body for inlining
32126         purposes.
32127
32128         * par.adb (Goto_List): Global variable to collect goto statements in a
32129         given unit, for use in detecting natural loops.
32130
32131         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
32132         use in detecting natural loops.
32133
32134         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
32135         backwards goto's, and rewrite as a infinite loop, to improve locality
32136         of temporaries.
32137
32138         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
32139         subcomponent that includes an indexed reference, to prevent the
32140         generation of copies that would miscompile the desired assignment
32141         statement.
32142         (Build_Task_Image_Decls): Add a numeric suffix to
32143         generated name for string variable, to avoid spurious conflicts with
32144         the name of the type of a single protected object.
32145
32146         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
32147         loop with an explicit exit statement, to avoid generating an
32148         out-of-range value with 'Succ leading to spurious constraint_errors
32149         when compiling with -gnatVo.
32150
32151 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
32152
32153         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
32154         might not be analyzed yet, even if its Etype is already set (case of an
32155         unchecked conversion built using Unchecked_Convert_To, for example).
32156         If the prefix has already been analyzed, this will be a nop anyway.
32157
32158         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
32159         controller type, or an assignment of a record type with controlled
32160         components, copy only user data, and leave the finalization chain
32161         pointers untouched.
32162
32163 2004-07-15  Vincent Celier  <celier@gnat.com>
32164
32165         * make.adb (Collect_Arguments): Improve error message when attempting
32166         to compile a source not part of any project, when -x is not used.
32167
32168         * prj.ads: (Defined_Variable_Kind): New subtype
32169
32170         * prj-attr.adb (Register_New_Package): Two new procedures to register
32171         a package with or without its attributes.
32172         (Register_New_Attribute): Mew procedure to register a new attribute in a
32173         package.
32174         New attribute oriented subprograms: Attribute_Node_Id_Of,
32175         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
32176         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
32177         Next_Attribute.
32178         New package oriented subprograms: Package_Node_Id_Of,
32179         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
32180
32181         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
32182         type.
32183         (Package_Node_Id): Now a private, self initialized type
32184         (Register_New_Package): New procedure to register a package with its
32185         attributes.
32186         New attribute oriented subprograms: Attribute_Node_Id_Of,
32187         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
32188         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
32189         Next_Attribute.
32190         New package oriented subprograms: Package_Node_Id_Of,
32191         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
32192
32193         * prj-dect.adb (Parse_Attribute_Declaration,
32194         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
32195
32196         * prj-makr.adb (Make): Parse existing project file before creating
32197         other files. Fail if there was an error during parsing.
32198
32199         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
32200         new spec of Prj.Attr.
32201
32202         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
32203         to new spec of Prj.Attr.
32204
32205 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32206
32207         * utils2.c: Fix typo in comment.
32208
32209 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32210
32211         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
32212         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
32213
32214 2004-07-14  Andreas Schwab  <schwab@suse.de>
32215
32216         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
32217
32218 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32219
32220         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
32221         object type.
32222         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
32223         TYPE_STUB_DECL.
32224
32225         * misc.c (gnat_types_compatible_p): New function.
32226         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
32227         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
32228
32229         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
32230         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
32231         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
32232         (mark_visited): Don't mark dummy type.
32233         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
32234         parameter, we must remove any LJM building from GNU_NAME.
32235         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
32236         (pos_to_constructor): Use int_const_binop.
32237         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
32238         PARM_DECL.
32239
32240         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
32241         (gnat_pushlevel): Set TREE_USE on BLOCK node.
32242         (gnat_install_builtins): Add __builtin_memset.
32243
32244 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
32245
32246         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
32247         for a renaming, stabilize the initialization expression if we are at a
32248         local level.  At the local level, uses of the renaming may be performed
32249         by a direct dereference of the initializing expression, and we don't
32250         want possible variables there to be evaluated for every use.
32251
32252         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
32253         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
32254         them on the way.  Account for the fact that we may introduce side
32255         effects in the process.
32256
32257 2004-07-13  Richard Henderson  <rth@redhat.com>
32258
32259         * misc.c (default_pass_by_ref): Use pass_by_reference.
32260
32261 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
32262
32263         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
32264         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
32265
32266 2004-07-08  Richard Henderson  <rth@redhat.com>
32267
32268         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
32269         commentary.
32270
32271 2004-07-06  Vincent Celier  <celier@gnat.com>
32272
32273         * vms_conv.ads: Minor reformatting.
32274         Alphabetical order for enumerated values of type Command_Type, to have
32275         the command in alphabetical order for the usage.
32276
32277         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
32278         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
32279
32280         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
32281
32282         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
32283         (Add_Archive_Path): Only add the global archive if there is one.
32284         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
32285         or not any object file to put in the global archive, and don't build
32286         a global archive if there is none.
32287         (X_Switches): New table
32288         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
32289         in the X_Switches table, if any.
32290         (Initialize): Make sure the X_Switches table is empty
32291         (Scan_Arg): Record -X switches in table X_Switches
32292
32293         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
32294
32295         * make.adb: Minor comment fix
32296
32297         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
32298         invoked with directory information, add the directory in front of the
32299         path.
32300
32301         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
32302         invoked with directory information, add the directory in front of the
32303         path.
32304
32305         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
32306         when Keep_Temporary_Files is False.
32307         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
32308         directory information, add the directory in front of the path.
32309         When not on VMS, handle new switch -dn before the command to set
32310         Keep_Temporary_Files to True.
32311         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
32312         everywhere.
32313
32314         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
32315         invoked with directory information, add the directory in front of the
32316         path.
32317
32318 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
32319
32320         * snames.ads, snames.adb (Name_Stub): New name for the distributed
32321         systems annex.
32322
32323         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
32324         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
32325
32326         * g-socket.adb (To_Timeval): Fix incorrect conversion of
32327         Selector_Duration to Timeval for the case of 0.0.
32328
32329         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
32330         documentation from Evolve_And_Then.
32331
32332 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
32333
32334         * s-taprop-tru64.adb, s-taprop-os2.adb,
32335         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
32336
32337 2004-07-06  Robert Dewar  <dewar@gnat.com>
32338
32339         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
32340         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
32341         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
32342         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
32343         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
32344         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
32345         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
32346         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
32347         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
32348         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
32349         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
32350         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
32351         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
32352         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
32353         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
32354         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
32355         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
32356         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
32357         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
32358         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
32359         vms_data.ads: Minor reformatting,
32360         Fix bad box comment format.
32361
32362         * gnat_rm.texi: Fix minor grammatical error
32363
32364         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
32365
32366         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
32367         more cases of discriminated records to be recognized as not needing a
32368         secondary stack.
32369         (Has_Access_Values): New function.
32370
32371         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
32372
32373         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
32374         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
32375         with LRM terminology).
32376         Change terminology in comments primitive type => elementary type.
32377
32378 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
32379
32380         PR ada/15602
32381         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
32382         parameters do not impose any requirements on the presence of a body.
32383
32384 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
32385
32386         PR ada/15593
32387         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
32388         compilation unit and is in an open scope at the point of instantiation,
32389         assume that a body may be present later.
32390
32391 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
32392
32393         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
32394         Improve error message when specified size is not supported.
32395
32396         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
32397         is never a primitive operation.
32398
32399 2004-07-05  Andreas Schwab  <schwab@suse.de>
32400
32401         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
32402         RECORD_OR_UNION_CHECK.
32403         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
32404
32405 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
32406
32407         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
32408         dependency on xgnatugn, instead build it via a submake.
32409         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
32410
32411 2004-07-04  Richard Henderson  <rth@redhat.com>
32412
32413         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
32414
32415 2004-07-01  Richard Henderson  <rth@redhat.com>
32416
32417         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
32418         * utils.c (max_size): Likewise.
32419
32420 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32421
32422         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
32423         and rest_of_type_compilation; add arg to create_*_decl.
32424         (annotate_decl_with_node): Deleted.
32425         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
32426         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
32427         (get_current_block_context, gnat_pushdecl): New declarations.
32428         (gnat_init_stmt_group): Likewise.
32429         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
32430         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
32431         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
32432         (gnat_init): Call gnat_init_stmt_group.
32433         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
32434         (gnu_pending_elaboration_list): Deleted.
32435         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
32436         (gigi): Rearrange initialization calls and move some to last above.
32437         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
32438         Delete calls to add_decl_expr; add arg to create_*_decl.
32439         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
32440         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
32441         begin_subprog_body and call it.
32442         Don't push and pop ggc context.
32443         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
32444         (add_stmt): Remove handling of DECL_EXPR from here.
32445         If not in function, mark visited.
32446         (add_decl_expr): Put global at top level.
32447         Check for cases of DECL_INITIAL we have to handle here.
32448         (process_type): Add extra arg to create_type_decl.
32449         (build_unit_elab): Rework to just gimplify.
32450         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
32451         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
32452         (get_pending_elaborations, pending_elaborations_p): Likewise.
32453         (push_pending_elaborations, pop_pending_elaborations): Likewise.
32454         (get_elaboration_location, insert_elaboration_list): Likewise.
32455         (gnat_binding_level): Renamed from ada_binding_level.
32456         (init_gnat_to_gnu): Don't clear pending_elaborations.
32457         (global_bindings_p): Treat as global if no current_binding_level.
32458         (set_current_block_context): New function.
32459         (gnat_pushdecl): Renamed from pushdecl; major rework.
32460         All callers changed.
32461         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
32462         (finish_record_type): Call call pushdecl for stub decl.
32463         (function_nesting_depth): Deleted.
32464         (begin_subprog_body): Delete obsolete code.
32465         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
32466
32467 2004-06-28  Robert Dewar  <dewar@gnat.com>
32468
32469         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
32470         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
32471         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
32472         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
32473         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
32474
32475         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
32476         deal with problem of inefficient slices on machines with strict
32477         alignment, when the slice is a component of a composite.
32478
32479         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
32480         machines, we need the check there as well.
32481
32482 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
32483
32484         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
32485         determine safe copying direction for overlapping slice assignments
32486         when component is controlled.
32487
32488         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
32489         formal derived type in the actual for a formal package are visible in
32490         the enclosing instance.
32491
32492 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
32493
32494         PR ada/15600
32495         * sem_util.adb (Trace_Components): Diagnose properly an illegal
32496         circularity involving a private type whose completion includes a
32497         self-referential component.
32498         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
32499         renaming or an instantiation from an implicit derived operation.
32500
32501 2004-06-28  Pascal Obry  <obry@gnat.com>
32502
32503         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
32504         DLL.
32505         (Library_File_Name_For): Idem.
32506
32507 2004-06-28  Matthew Gingell  <gingell@gnat.com>
32508
32509         * g-traceb.ads: Add explanatory note on the format of addresses
32510         expected by addr2line.
32511
32512 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
32513
32514         * Makefile.in: Force debugging information on s-tasdeb.adb,
32515         a-except.adb and s-assert.adb needed by the debugger.
32516
32517 2004-06-28  Vincent Celier  <celier@gnat.com>
32518
32519         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
32520         Need_To_Build_Lib.
32521         (Gnatmake): Ditto.
32522
32523         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
32524
32525         * prj.adb: Minor reformatting
32526         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
32527
32528         * prj.ads: Comment updates
32529         Minor reformatting
32530         (Project_Data): Change Flag1 to Need_To_Build_Lib.
32531         Remove Flag2: not used.
32532
32533         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
32534         declaration.
32535
32536         * gnat_ugn.texi: Put a "null;" declaration in one project file example
32537
32538         * gnat_rm.texi: Document Empty declarations "null;".
32539
32540         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
32541         front of the linker options.
32542         (Link_Foreign): Put the global archives and the libraries in front of
32543         the linker options.
32544
32545 2004-06-28  Javier Miranda  <miranda@gnat.com>
32546
32547         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
32548         (RTU_Loaded): Code cleanup
32549         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
32550         withed predefined units.
32551
32552         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
32553         explicitly withed predefined units.
32554         Fix typo in comment
32555
32556         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
32557         explicitly withed predefined units.
32558
32559 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32560
32561         * ada-tree.def (DECL_STMT): Deleted.
32562         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
32563         (DECL_STMT_VAR): Deleted.
32564         * decl.c: add_decl_stmt now add_decl_expr.
32565         * gigi.h: Likewise.
32566         * trans.c: Likewise.
32567         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
32568         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
32569         (add_stmt): Only handle padded type here.
32570         (add_stmt_with_node): Allow gnat_node to not be present.
32571         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
32572         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
32573         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
32574         make a SAVE_EXPR for the entire fat pointer.
32575         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
32576         (create_index_type): Make a DECL_EXPR.
32577         (end_subprog_body): Don't call allocate_struct_function here but
32578         do clear cfun.
32579
32580 2004-06-25  Pascal Obry  <obry@gnat.com>
32581
32582         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
32583         Relocatable from Build_Dynamic_Library call.
32584
32585         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
32586         Relocatable are now synonym.
32587
32588         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
32589
32590         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
32591         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
32592         call.
32593
32594         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
32595         Lib_Address and Relocatable.
32596         (Default_DLL_Address): Removed.
32597
32598         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
32599         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
32600         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
32601         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
32602         (Default_DLL_Address): Removed.
32603
32604         * mlib-tgt-mingw.adb: Ditto.
32605         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
32606
32607         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
32608         the initial thread stack size.
32609
32610         * a-strmap.ads: Move package L to private part as it is not used in
32611         the spec. Found while reading code.
32612
32613 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
32614
32615         * tracebak.c: Introduce support for a GCC infrastructure based
32616         implementation of __gnat_backtrace.
32617
32618         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
32619         any more. Use accessors instead. This eases maintenance and relaxes
32620         some alignment constraints.
32621         (_GNAT_Exception structure): Remove the Ada specific fields
32622         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
32623         a-exexpr.adb.
32624         (is_handled_by, __gnat_eh_personality): Replace component references to
32625         exception structure by use of the new accessors.
32626
32627         * init.c (__gnat_initialize): Adjust comments to match the just
32628         reverted meaning of the -static link-time option.
32629
32630         * adaint.c (convert_addresses): Arrange not to define a stub for
32631         mips-irix any more, as we now want to rely on a real version from a
32632         recent libaddr2line.
32633
32634         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
32635         the personality routine can use them and not have to rely on a C
32636         counterpart of the record anymore. This simplifies maintenance and
32637         relaxes the constraint of having Standard'Maximum_Alignment match
32638         BIGGEST_ALIGNMENT.
32639         Update comments, and add a section on the common header alignment issue.
32640
32641 2004-06-25  Geert Bosch  <bosch@gnat.com>
32642
32643         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
32644         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
32645
32646 2004-06-25  Robert Dewar  <dewar@gnat.com>
32647
32648         * gnat_rm.texi: Fix section on component clauses to indicate that the
32649         restriction on byte boundary placement still applies for bit packed
32650         arrays.
32651         Add comment on stack usage from Initialize_Scalars
32652
32653         * gnat_ugn.texi: Add documentation for -gnatyLnnn
32654
32655         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
32656         limiting nesting level.
32657
32658         * usage.adb: Add line for -gnatyLnnn switch
32659
32660         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
32661         sem_ch13.adb, exp_aggr.adb: Minor reformatting
32662
32663         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
32664         type as well as on the subtype. This corrects a problem in freeze in
32665         setting alignments of atomic types.
32666
32667         * sem_eval.ads: Minor comment typo fixed
32668
32669         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
32670         level.  Minor reformatting.
32671
32672         * fname.adb (Is_Predefined_File_Name): Require a letter after the
32673         minus sign. This means that file names like a--b.adb will not be
32674         considered predefined.
32675
32676         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
32677         record Test new flag and give diagnostic for bad component clause.
32678         (Freeze_Entity): Set alignment of array from component alignment in
32679         cases where this is safe to do.
32680
32681         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
32682         arrays.
32683
32684         * cstand.adb: (Create_Standard): Set alignment of String to 1
32685
32686         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
32687
32688         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
32689         code in the common constrained array cases.
32690
32691         * a-storio.adb: Change implementation to avoid possible alignment
32692         problems on machines requiring strict alignment (data should be moved
32693         as type Buffer, not type Elmt).
32694
32695         * checks.adb (Apply_Array_Size_Check): Improve these checks by
32696         killing the overflow checks which we really do not need (64-bits is
32697         enough).
32698
32699 2004-06-25  Vincent Celier  <celier@gnat.com>
32700
32701         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
32702         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
32703         inconditionally for the main project.
32704         (Recursive_Add_Archives.Add_Archive_Path): New procedure
32705         (Link_Executables.Check_Time_Stamps): New procedure
32706         (Link_Executables.Link_Foreign): New procedure
32707         Changes made to reduce nesting level of this package
32708         (Check): New procedure
32709         (Add_Switches): When not in quiet output, check that a switch is not
32710         the concatenation of several valid switches. If it is, issue a warning.
32711         (Build_Global_Archive): If the global archive is rebuilt, linking need
32712         to be done.
32713         (Compile_Sources): Rebuilding a library archive does not imply
32714         rebuilding the global archive.
32715         (Build_Global_Archive): New procedure
32716         (Build_Library): New name for Build_Archive, now only for library
32717         project
32718         (Check_Archive_Builder): New procedure
32719         (Create_Global_Archive_Dependency_File): New procedure
32720         (Gprmake): Call Build_Global_Archive before linking
32721         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
32722         throughout.
32723         (Scan_Arg): Display the Copyright notice when -v is used
32724
32725         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
32726         for gnatls.
32727
32728         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
32729         COMPILE.
32730         Add new GNAT LIST qualifier /FILES=
32731         Added qualifier /DIRECTORY= to GNAT METRIC
32732         Added qualifier /FILES= to GNAT METRIC
32733         Added qualifier /FILES to GNAT PRETTY
32734
32735         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
32736         to take into account both versions of the switch.
32737
32738         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
32739         always be the last switch to the gcc driver. Disable switch storing so
32740         that switches automatically added by the gcc driver are not put in the
32741         ALI file.
32742
32743         * prj.adb (Project_Empty): Take into account changes in components of
32744         Project_Data.
32745
32746         * prj.ads (Languages_Processed): New enumaration value All_Languages.
32747
32748         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
32749         used. Split Boolean component Ada_Sources_Present in two Boolean
32750         components Ada_Sources_Present and Other_Sources_Present.
32751         Minor reformatting
32752
32753         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
32754         instead of Sources_Present.
32755         (Set_Ada_Paths.Add.Recursive_Add): Ditto
32756
32757         * prj-nmsc.adb: Minor reformatting
32758         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
32759         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
32760         Check_Ada_Naming_Scheme.
32761         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
32762         throughout.
32763
32764         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
32765         In_Limited.
32766         Make sure that all cycles where there is at least one "limited with"
32767         are detected.
32768         (Parse_Single_Project): New Boolean parameter In_Limited
32769
32770         * prj-proc.adb (Recursive_Check): When Process_Languages is
32771         All_Languages, call first Prj.Nmsc.Ada_Check, then
32772         Prj.Nmsc.Other_Languages_Check.
32773
32774         * prj-proc.adb (Process): Use Ada_Sources_Present or
32775         Other_Sources_Present (instead of Sources_Present) depending on
32776         Process_Languages.
32777
32778         * lang-specs.h: Keep -g and -m switches in the same order, and as the
32779         last switches.
32780
32781         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
32782         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
32783         False.
32784         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
32785         False.
32786
32787         * lib.ads (Disable_Switch_Storing): New procedure.
32788
32789         * make.adb: Modifications to reduce nesting level of this package.
32790         (Check_Standard_Library): New procedure
32791         (Gnatmake.Check_Mains): New procedure
32792         (Gnatmake.Create_Binder_Mapping_File): New procedure
32793         (Compile_Sources.Compile): Add switch -gnatez as the last option
32794         (Display): Never display -gnatez
32795
32796         * Makefile.generic:
32797         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
32798
32799         * gnatcmd.adb (Check_Project): New function
32800         (Process_Link): New procedure to reduce nesting depth
32801         (Check_Files): New procedure to reduce the nesting depth.
32802         For GNAT METRIC, include the inherited sources in extending projects.
32803         (GNATCmd): When GNAT LS is invoked with a project file and no files,
32804         add the list of files from the sources of the project file. If this list
32805         is too long, put it in a temp text files and use switch -files=
32806         (Delete_Temp_Config_Files): Delete the temp text file that contains
32807         a list of source for gnatpp or gnatmetric, if one has been created.
32808         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
32809         in the project file is too large, create a temporary text file that
32810         list them and pass it to the tool with "-files=<temp text file>".
32811         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
32812
32813         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
32814         generated file is in not in Ada.
32815
32816         * gnatls.adb: Remove all parameters And_Save that are no longer used.
32817         (Scan_Ls_Arg): Add processing for -files=
32818         (Usage): Add line for -files=
32819
32820         * g-os_lib.adb (On_Windows): New global constant Boolean flag
32821         (Normalize_Pathname): When on Windows and the path starts with a
32822         directory separator, make sure that the resulting path will start with
32823         a drive letter.
32824
32825         * clean.adb (Clean_Archive): New procedure
32826         (Clean_Project): When there is non-Ada code, delete the global archive,
32827         the archive dependency files, the object files and their dependency
32828         files, if they exist.
32829         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
32830
32831 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
32832
32833         * sinfo.ads: Fix typo in comment.
32834
32835         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
32836         the TSS for remote access-to-subprogram types, since these TSS are
32837         always present once the type has been analyzed.
32838         (RAS_E_Dereference): Same.
32839
32840         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
32841         reference raises Bad_Attribute, mark the reference as analyzed so the
32842         node (and any children resulting from rewrites that could have occurred
32843         during the analysis that ultimately failed) is not analyzed again.
32844
32845         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
32846
32847         * exp_dist.adb: Minor comment fix.
32848
32849         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
32850         type is an anonymous access type, no unchecked deallocation of the
32851         allocated object can occur. If the object is controlled, attach it with
32852         a count of 1. This allows attachment to the Global_Final_List, if
32853         no other relevant list is available.
32854         (Get_Allocator_Final_List): For an anonymous access type that is
32855         the type of a discriminant or record component, the corresponding
32856         finalisation list is the one of the scope of the type.
32857
32858 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
32859
32860         * sem_ch3.adb (Replace_Type): When computing the signature of an
32861         inherited subprogram, use the first subtype if the derived type
32862         declaration has no constraint.
32863
32864         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
32865         before applying previous optimization. Minor code cleanup.
32866
32867         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
32868         placed at the beginning of an unpacked record without explicit
32869         alignment, a slice of it will be aligned and does not need a copy when
32870         used as an actual.
32871
32872 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
32873
32874         PR ada/15591
32875         PR ada/15592
32876         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
32877         reference is written with expressions mimicking parameters.
32878
32879 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
32880
32881         PR ada/15589
32882         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
32883         STEP 2a. The constraints of a full type declaration of a derived record
32884         type are checked for conformance with those declared in the
32885         corresponding private extension declaration. The message
32886         "not conformant with previous declaration" is emitted if an error is
32887         detected.
32888
32889 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
32890
32891         * g-traceb.ads: Document the need for -E binder switch in the spec.
32892
32893         * g-trasym.ads: Document the need for -E binder switch in the spec.
32894
32895 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
32896
32897         * sem_prag.adb: Add handling of pragma Detect_Blocking.
32898
32899         * snames.h, snames.ads, snames.adb: Add entry for pragma
32900         Detect_Blocking.
32901
32902         * s-rident.ads: Change reference to pragma Detect_Blocking.
32903
32904         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
32905         system.ads.
32906
32907         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
32908         to indicate whether pragma Detect_Blocking is active.
32909
32910         * par-prag.adb: Add entry for pragma Detect_Blocking.
32911
32912         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
32913         of not handling WITH.
32914         Note that this replaces the previous update which was incorrect.
32915
32916 2004-06-25  Javier Miranda  <miranda@gnat.com>
32917
32918         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
32919         use-clauses to have a clean environment.
32920
32921         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
32922         the installation of the use-clauses to stablish a clean environment in
32923         case of compilation of a separate unit; otherwise the call to
32924         use_one_package is protected by the barrier Applicable_Use.
32925
32926         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
32927         the installation of the use-clauses to stablish a clean environment in
32928         case of compilation of a separate unit.
32929         (End_Use_Clauses): Minor comment cleanup.
32930
32931 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
32932
32933         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
32934
32935 2004-06-23  Richard Henderson  <rth@redhat.com>
32936
32937         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
32938
32939 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32940
32941         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
32942         now bool instead of int.
32943         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
32944         * trans.c (gnu_switch_label_stack): New function.
32945         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
32946         elaboration of renamed entity returns.
32947         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
32948         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
32949         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
32950         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
32951         DECL_SIZE_UNIT and simplify variable-sized case.
32952         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
32953         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
32954         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
32955         (build_unit_elab): Disable for now.
32956         * utils.c (mark_visited): New function.
32957         (pushdecl): Walk tree to call it for global decl.
32958         (update_pointer_to): Update all variants of pointer and ref types.
32959         Add arg to COMPONENT_REF.
32960         (convert): Likewise.
32961         Move check for converting between variants lower down.
32962         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
32963         (build_allocator): Don't force type of MODIFY_EXPR.
32964         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
32965         put_var_into_stack.
32966
32967 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32968
32969         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
32970         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
32971         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
32972         subprograms.
32973         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
32974         all callers changed.
32975         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
32976         the way that EXIT_STMT finds the loop label.
32977         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
32978         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
32979         (add_stmt): Use annotate_with_locus insted of setting directly.
32980         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
32981         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
32982         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
32983         (build_vms_descriptor): Add extra args to ARRAY_REF.
32984         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
32985         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
32986         New cases.
32987         (build_binary_op): Don't make explicit CONVERT_EXPR.
32988         Add extra rgs to ARRAY_REF.
32989
32990 2004-06-14  Pascal Obry  <obry@gnat.com>
32991
32992         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
32993         Windows.  Fix minor typo.
32994
32995         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
32996         which is now supported on Windows. With this implementation using the
32997         Library Project feature is no different on Windows than on UNIX.
32998
32999 2004-06-14  Vincent Celier  <celier@gnat.com>
33000
33001         * makegpr.adb (Compile_Sources): Nothing to do when there are no
33002         non-Ada sources.
33003
33004         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
33005
33006         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
33007         found, show the project name and the path of the previously parsed
33008         project file.
33009
33010 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
33011
33012         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
33013         array, avoid copying the actual before the call.
33014
33015 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
33016
33017         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
33018         Instead, allocate memory on worst-case alignment assumptions, and then
33019         return an aligned address within the allocated zone.
33020
33021 2004-06-14  Robert Dewar  <dewar@gnat.com>
33022
33023         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
33024         elab entities in predefined units in No_Run_Time_Mode.
33025         (Gen_Adainit_C): Same fix
33026         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
33027         units in No_Run_Time_Mode
33028         (Gen_Elab_Calls_C): Same fix
33029
33030         * symbols-vms-alpha.adb: Minor reformatting
33031
33032         * g-debpoo.ads: Minor reformatting
33033
33034         * lib.adb (In_Same_Extended_Unit): Version working on node id's
33035
33036         * lib.ads (In_Same_Extended_Unit): Version working on node id's
33037
33038         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
33039         working on nodes.
33040
33041         * make.adb: Minor reformatting
33042
33043         * par-ch12.adb: Minor reformatting
33044
33045         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
33046
33047         * prj-strt.adb: Minor reformatting
33048
33049         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
33050         be more general.
33051
33052         * sem_attr.adb: Minor reformatting
33053
33054         * sem_ch7.adb: Minor reformatting
33055
33056         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
33057         for type in the same unit as the object declaration.
33058
33059         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
33060         static string expressions and not just string literals.
33061         Minor reformatting
33062         (Set_Warning): Reset restriction warning flag for restriction pragma
33063         Implement pragma Profile_Warnings
33064         Implement pragma Profile (Restricted)
33065         Give obolescent messages for old restrictions and pragmas
33066
33067         * snames.h, snames.ads, snames.adb: Add new entry for pragma
33068         Profile_Warnings.
33069
33070         * s-rident.ads: Add declarations for restrictions required by profile
33071         Restricted and profile Ravenscar.
33072
33073         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
33074
33075         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
33076         configuration pragmas.
33077
33078 2004-06-11  Vincent Celier  <celier@gnat.com>
33079
33080         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
33081         gnatsym, when symbol policy is Restricted.
33082
33083         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
33084         gnatsym, when symbol policy is Restricted.
33085
33086         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
33087         read the symbol file.
33088         (Finalize): Fail in symbol policy Restricted if a symbol in the original
33089         symbol file is not in the object files. Do not create a new symbol file
33090         when symbol policy is Restricted.
33091
33092         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
33093         in Scng.
33094
33095         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
33096         Restricted.
33097         (Usage): Line for new switch -R
33098
33099         * make.adb (Initialize): When the platform is not VMS, add the
33100         directory where gnatmake is invoked in the front of the path, if
33101         gnatmake is invoked with directory information.  Change the Scan_Args
33102         while loop to a for loop.
33103         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
33104         if Depth is equal or greater than the proposed depth, there is nothing
33105         to do.
33106         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
33107         instead of 0.
33108
33109         * prj.ads: Add new symbol policy Restricted.
33110
33111         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
33112         with the new parameters Check_All_Labels and Case_Location.
33113
33114         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
33115         (Library_Symbol_File needs to be defined).
33116
33117         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
33118         and Case_Location If Check_All_Labels is True, check that all values of
33119         the string type are used, and output warning(s) if they are not.
33120
33121         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
33122         and Case_Location.
33123
33124         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
33125
33126         * gnat_ugn.texi: Update documentation about the library directory in
33127         Library Projects.
33128
33129         * makegpr.adb (Display_Command): In verbose mode, also display the
33130         value of the CPATH env var, when the compiler is gcc.
33131         (Initialize): Change the Scan_Args while loop to a for loop
33132         (Compile_Individual_Sources): Change directory to object directory
33133         before compilations.
33134
33135         * symbols.ads: New symbol policy Restricted.
33136
33137 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
33138
33139         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
33140         is now taken care of internally in the Exception_Propagation package
33141         and does not require clients assistance any more.
33142
33143         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
33144         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
33145         functions. Helpers to maintain a predicate required in the handling of
33146         occurrence transfer between tasks.
33147         This is now handled internally and does not require clients assistance
33148         for the setup/propagate separation anymore.
33149         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
33150         allocation strategy, handle the Setup_And_Not_Propagated predicate and
33151         document.
33152
33153         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
33154         raise_after_setup, now that everything is handled internally within the
33155         setup/propagation engine.
33156
33157 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
33158
33159         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
33160         Add additional conditions for the case of an actual being a simple
33161         name or literal. Improve inlining by preventing the generation
33162         of temporaries with a short lifetime (one use).
33163
33164 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
33165
33166         PR ada/15587
33167         * einfo.ads: Minor comment updates for Has_Completion and
33168         E_Constant list of flags.
33169
33170         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
33171         and constant redeclarations now set the Has_Completion flag of their
33172         defining identifiers.
33173
33174         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
33175         Inspect_Deferred_Constant_Completion.
33176         Used to detect private deferred constants that have not been completed
33177         either by a constant redeclaration or pragma Import. Emits error message
33178         "constant declaration requires initialization expression".
33179
33180         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
33181         completes a deferred constant.
33182
33183 2004-06-11  Geert Bosch  <bosch@gnat.com>
33184
33185         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
33186
33187         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
33188         calculating exponent for scaling denormal numbers.
33189         (Leading_Part): Properly raise Constraint_Error for zero or negative
33190         Adjustment.
33191         (Remainder): Properly raise Constraint_Error for zero divisor.
33192
33193 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
33194
33195         * sem_util.adb: Minor reformatting.
33196
33197         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
33198         dereference when accessing the entry parameter record.
33199         (Check_Array_Type): Always check for possible implicit dereference.
33200         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
33201         Abort if a pointer is still present (denoting that an implicit
33202         dereference was left in the tree by the front-end).
33203
33204         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
33205         dereference when accessing the entry parameter record.
33206         (Check_Array_Type): Always check for possible implicit dereference.
33207         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
33208         Abort if a pointer is still present (denoting that an implicit
33209         dereference was left in the tree by the front-end).
33210
33211 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
33212
33213         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
33214         message, like the compiler itself does. Easier to parse the output.
33215
33216         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
33217
33218         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
33219         be base names, and not includes directories.
33220
33221 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
33222
33223         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
33224         so that dependencies are properly taken into account by make.
33225
33226 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
33227
33228         PR ada/15622
33229         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
33230         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
33231
33232 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
33233
33234         * Makefile.in (install-gnatlib): install target-specific run-time files.
33235
33236         * Make-lang.in: Remove obsolete targets.
33237
33238 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
33239
33240         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
33241         specification, to catch misuses of program unit names.
33242
33243         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
33244         superfluous conversions in an instance.
33245
33246 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
33247
33248         PR ada/15403
33249         * sem_ch12.adb (Save_References): If operator node has been folded to
33250         enumeration literal, associated_node must be discarded.
33251
33252 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
33253
33254         * s-stchop-vxworks.adb: Add required pragma Convention to
33255         Task_Descriptor because it is updated by a C function.
33256
33257 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
33258
33259         PR ada/15568
33260         * Makefile.in: Remove target specific SO_OPT on IRIX
33261
33262 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33263
33264         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
33265         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
33266         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
33267         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
33268         (STMT_STMT, USE_STMT): New statement codes.
33269         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
33270         * ada-tree.h: Reflect above changes.
33271         (struct tree_loop_id): Deleted.
33272         (union lang_tree_node, struct lang_decl, struct lang_type):
33273         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
33274         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
33275         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
33276         (IS_ADA_STMT): New macro.
33277         * decl.c (annotate_decl_with_node): New function.
33278         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
33279         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
33280         Call add_stmt_with_node to do needed assignments.
33281         Add call to update setjmp buffer directly, not via EXPR_STMT.
33282         (maybe_variable): Argment GNAT_NODE deleted.
33283         * gigi.h (maybe_variable): Likewise.
33284         (make_transform, add_stmt_with_node, set_block_for_group): New.
33285         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
33286         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
33287         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
33288         (set_lineno, set_lineno_from_sloc): Likewise.
33289         (record_code_position, insert_code_for): Likewise.
33290         (gnat_poplevel): Now returns void.
33291         (end_subprog_body): Now takes argument.
33292         * misc.c (cgraph.h, tree-inline.h): New includes.
33293         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
33294         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
33295         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
33296         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
33297         (gnat_parse_file): Don't set immediate_size_expand.
33298         Call cgraph functions.
33299         (gnat_expand_expr): Remove most cases.
33300         (record_code_position, insert_code_for): Remove from here.
33301         * trans.c (toplev.h, tree-gimple.h): Now included.
33302         (discard_file_names): Deleted.
33303         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
33304         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
33305         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
33306         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
33307         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
33308         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
33309         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
33310         (set_block_for_group, add_stmt_list): Likewise.
33311         (start_stmt_group): Renamed from start_block_stmt.
33312         (end_stmt_group): Likewise, from end_block_stmt.
33313         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
33314         (gigi): Don't set discard_file_names or call set_lineno.
33315         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
33316         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
33317         Numerous changes throughout to reflect new names and complete
33318         function-at-a-time implementation.
33319         (gnat_expand_stmt): Delete or comment out all cases.
33320         (process_inlined_subprograms): Use add_stmt.
33321         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
33322         call set_lineno; also remove unneeded block handling.
33323         (process_type): Remove unneeded block handling.
33324         (build_unit_elab): Remove calls to deleted functions.
33325         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
33326         (tree-dump.h): Likewise.
33327         (struct ada_binding_level): Add field jmpbuf_decl.
33328         (gnat_define_builtin, gnat_install_builtins): New.
33329         (gnat_gimplify_function, gnat_finalize): Likewise.
33330         (gnat_poplevel): No longer return BLOCK, set it instead.
33331         Remove code dealing with nested functions.
33332         (gnat_init_decl_processing): Also set size_type_node.
33333         Call gnat_install_builtins.
33334         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
33335         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
33336         Remove special-case for "main".
33337         (end_subprog_body): Add arg and rework for tree-ssa.
33338         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
33339         Add case for BOOLEAN_TYPE.
33340         * utils2.c (rtl.h): Now include.
33341         (build_call_raise): Test Debug_Flag_NN directly.
33342         (build_call_alloc_dealloc): Don't use local stack allocation for now.
33343         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
33344         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
33345
33346 2004-06-07  Robert Dewar  <dewar@gnat.com>
33347
33348         * a-direct.ads, einfo.ads: Minor comment updates
33349
33350         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
33351         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
33352         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
33353         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
33354         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
33355
33356         * s-interr-sigaction.adb: Remove unreferenced variable
33357         (Attached_Interrupts).  Minor reformatting.
33358         Avoid use of variable I (replace by J).
33359
33360         * par-ch10.adb: Fix text of one error message
33361
33362         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
33363         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
33364         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
33365         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
33366         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
33367         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
33368         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
33369         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
33370         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
33371         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
33372         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
33373         2005 support.
33374
33375 2004-06-07  Doug Rupp  <rupp@gnat.com>
33376
33377         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
33378
33379         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
33380
33381         * mlib-tgt-vms-ia64.adb: New file.
33382
33383         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
33384         Add mlib-tgt-vms-ia64.adb
33385         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
33386         Move to alpha specific ifeq section.
33387         Add VMS specific versions of symbols.adb
33388         Renaming of 5q vms files.
33389
33390         * 5qsystem.ads renamed to system-vms_64.ads.
33391
33392 2004-06-07  Vincent Celier  <celier@gnat.com>
33393
33394         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
33395         explain that when a time of day corresponding to the non existing hour
33396         on the day switching to DST is specified, Split may return a different
33397         value for Seconds.
33398
33399         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
33400         to GNAT PRETTY.
33401
33402         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
33403         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
33404
33405         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
33406         to False.
33407         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
33408         the linking options.
33409         (Build_Library.Check_Libs): On VMS, if there is a dependency on
33410         g-trasym.ads, set Gtrasymobj_Needed to True.
33411
33412         * prj-attr.adb: Add new package Metrics for gnatmetric
33413
33414         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
33415         canonical case to take into account files with upper case characters on
33416         Windows.
33417         (Ada_Check): Load the reference symbol file name in the name buffer to
33418         check it, not the symbol file name.
33419
33420         * snames.ads, snames.adb: Add standard name Metrics (name of project
33421         file package for gnatmetric).
33422
33423         * vms_conv.ads: Add Metric to Comment_Type
33424
33425         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
33426
33427         * vms_data.ads: Add qualifiers for GNAT METRIC
33428
33429         * makegpr.adb (Link_Executables): Take into account the switches
33430         specified in package Linker of the main project.
33431
33432 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
33433
33434         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
33435         the index of the last element is Units.Last, not Units.Table'Last
33436         (which is usually not a valid index within the actually allocated
33437         storage for the table).
33438
33439         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
33440         determines whether to generate a call to a checked storage pool
33441         Dereference action.
33442         Generate such a call only for a dereference that either comes from
33443         source, or is the result of rewriting a dereference that comes from
33444         source.
33445
33446 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
33447
33448         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
33449
33450 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
33451
33452         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
33453         file level, elaborate the stride for inner dimensions in alignment
33454         units, not bytes.
33455
33456         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
33457         in a comment.
33458
33459 2004-06-07  Javier Miranda  <miranda@gnat.com>
33460
33461         * exp_ch6.adb: Correct wrong modification in previous patch
33462
33463 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
33464
33465         * g-trasym.ads: Corrected comment to properly reflect level of support
33466         on VMS.
33467
33468 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
33469
33470         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
33471         includes case of a variable referenced on the left hand side of an
33472         assignment, therefore remove redundant code. Variables and prefixes of
33473         indexed or selected components are now marked as referenced on left
33474         hand side. Warnings are now properly emitted when variables or prefixes
33475         are assigned but not read.
33476
33477         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
33478         left hand side referenced variables. Private access types do not
33479         produce the warning "variable ... is assigned but never read".
33480         Add also additional checks to left hand side referenced variables.
33481         Aliased, renamed objects and access types do not produce the warning
33482         "variable ... is assigned but never read" since other entities may read
33483         the memory location.
33484
33485 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
33486
33487         * Makefile.in: In the powerpc/vxworks-specific section, restore
33488         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
33489         by mistake).
33490
33491 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
33492
33493         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
33494         predefined operators.
33495         Removes spurious type errors from g-trasym-vms.adb.
33496
33497         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
33498         distinct from the operator appearing in the source, call appropriate
33499         routine to insert conversions when needed, and complete resolution of
33500         node.
33501         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
33502         interpretations for rewritten right operand.
33503         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
33504         the other operand is overloaded and the context is a type conversion.
33505
33506 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33507
33508         * ada-tree.def (BLOCK_STMT): Now has two operands.
33509         (BREAK_STMT): New.
33510
33511         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
33512
33513         * gigi.h: (gnat_poplevel): Now returns a tree.
33514
33515         * trans.c (end_block_stmt): Add arg; all callers changed.
33516         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
33517         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
33518         (add_stmt): Set TREE_TYPE.
33519         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
33520         (gnat_expand_stmt, case BREAK_STMT): New case.
33521
33522         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
33523
33524 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
33525
33526         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
33527         procedure Set_Stack_Size that is not needed.
33528
33529 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
33530
33531         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
33532         used for gnatpp input file and for the files upon which it depends
33533
33534 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
33535
33536         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
33537
33538 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
33539
33540         * gnatvsn.ads: Bump version numbers appropriately.
33541         Add new build type.
33542
33543 2004-06-07  Pascal Obry  <obry@gnat.com>
33544
33545         * gnat_ugn.texi: Improve comments about imported names and link names
33546         on Windows. Add a note about the requirement to use -k gnatdll's option
33547         when working with a DLL which has stripped stdcall symbols (no @nn
33548         suffix).
33549
33550 2004-05-27  Vincent Celier  <celier@gnat.com>
33551
33552         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
33553         COMMENTS_LAYOUT=UNTOUCHED
33554
33555         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
33556         symbols-vms-alpha.adb
33557
33558 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
33559
33560         * sem.ads: Clarify documentation on checks suppression.
33561
33562         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
33563
33564 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
33565
33566         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
33567         the case of multiple derivations.
33568         (Is_Object_Reference): For a selected component, verify that the prefix
33569         is itself an object and not a value.
33570
33571         * sem_ch12.adb (Same_Instantiated_Constant): New name for
33572         Same_Instantiated_Entity.
33573         (Same_Instantiated_Variable): Subsidiary to
33574         Check_Formal_Package_Instance, to recognize actuals for in-out generic
33575         formals that are obtained from a previous formal package.
33576         (Instantiate_Subprogram_Body): Emit proper error when
33577         generating code and the proper body of a stub is missing.
33578
33579         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
33580         has a universal interpretation, do the disambiguation here.
33581
33582         * exp_ch4.adb (Expand_N_Type_Conversion,
33583         Expand_N_Unchecked_Type_Conversion): Special handling when target type
33584         is Address, to avoid typing anomalies when Address is a visible integer
33585         type.
33586
33587         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
33588         to determine whether a subprogram should not be marked Pure, even when
33589         declared in a pure package.
33590
33591 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
33592
33593         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
33594
33595         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
33596         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
33597         Update the documentation about the Ravenscar profile, following the
33598         definition found in AI-249.
33599
33600         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
33601         setting the Profile (Ravenscar). This must be done in addition to
33602         setting the required restrictions.
33603
33604         * rtsfind.ads: Add the set of operations defined in package
33605         Ada.Interrupts.
33606
33607         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
33608         restriction.
33609
33610 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
33611
33612         lang-specs.h: Always require -c or -S and always redirect to /dev/null
33613         if -gnatc or -gnats is passed.
33614
33615 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
33616
33617         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
33618         a significant reference. Warnings are now properly emitted when a
33619         discriminated type is not referenced.
33620
33621         * lib-xref.adb (Generate_Reference): A deferred constant completion,
33622         record representation clause or record type discriminant does not
33623         produce a reference to its corresponding entity. Warnings are now
33624         properly emitted when deferred constants and record types are not
33625         referenced.
33626
33627 2004-05-27  Geert Bosch  <bosch@gnat.com>
33628
33629         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
33630         Fixes ACATS Annex G tests.
33631
33632 2004-05-27  Robert Dewar  <dewar@gnat.com>
33633
33634         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
33635         handling WITH
33636
33637 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
33638
33639         * s-interr.adb (Server_Task): Take into account case of early return
33640         from sigwait under e.g. linux.
33641
33642 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
33643
33644         * gnat_ugn.texi: Add description for the new gnatpp options:
33645          -rnb - replace the original source without creating its backup copy
33646          -c0 - do not format comments
33647
33648 2004-05-24  Geert Bosch  <bosch@gnat.com>
33649
33650         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
33651         with 192 bits of precision, sufficient to reduce a double-extended
33652         arguments X with a maximum relative error of T'Machine_Epsilon, for X
33653         in -2.0**32 .. 2.0**32.
33654         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
33655         reduction by the processor, which only uses a 68-bit approximation of
33656         Pi.
33657         (Tan): Always reduce arguments and compute function either using
33658         the processor's fptan instruction, or by dividing sin and cos as needed.
33659
33660 2004-05-24  Doug Rupp  <rupp@gnat.com>
33661
33662         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
33663         gcc error on 32/64 bit VMS.
33664
33665 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
33666
33667         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
33668         since this is what we get for stack overflows although not documented
33669         as such.
33670         Document the issues which may require adjustments to our signal
33671         handlers.
33672
33673 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
33674
33675         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
33676         enclosing dynamic scope if the instantiation is within a generic unit.
33677
33678 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
33679
33680         * exp_dbug.ads: Fix typo.
33681
33682         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
33683         Rename it to its proper name: system-linux-ia64.ads
33684         (stamp-gnatlib1): Remove extra target specific run time files when
33685         setting up the rts directory.
33686
33687 2004-05-24  Javier Miranda  <miranda@gnat.com>
33688
33689         * einfo.ads, einfo.adb (Limited_Views): Removed.
33690         (Limited_View): New attribute that replaces the previous one. It is
33691         now a bona fide package with the limited-view list through the
33692         first_entity and first_private attributes.
33693
33694         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
33695         limited-private-with clause.
33696         (Install_Limited_Withed_Unit): Install the private declarations of a
33697         limited-private-withed package. Update the installation of the shadow
33698         entities according to the new structure (see Build_Limited_Views)
33699         (Build_Limited_Views): Replace the previous implementation of the
33700         limited view by a package entity that references the first shadow
33701         entity plus the first shadow private entity (required for limited-
33702         private-with clause)
33703         (New_Internal_Shadow_Entity): Code cleanup.
33704         (Remove_Limited_With_Clause): Update the implementation to undo the
33705         new work carried out by Build_Limited_Views.
33706         (Build_Chain): Complete documentation.
33707         Replace Ada0Y by Ada 0Y in comments
33708         Minor reformating
33709
33710         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
33711         types the level of accessibility depends on the enclosing type
33712         declaration.
33713
33714         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
33715         entities. Complete documentation of previous change.
33716
33717 2004-05-24  Robert Dewar  <dewar@gnat.com>
33718
33719         * namet.adb: Minor reformatting
33720         Avoid use of name I (replace by J)
33721         Minor code restructuring
33722
33723         * sem_ch6.adb: Minor reformatting
33724
33725         * lib-writ.adb: Do not set restriction as active if this is a
33726         Restriction_Warning case.
33727
33728         * sem_prag.adb: Reset restriction warning flag if real pragma
33729         restriction encountered.
33730
33731         * s-htable.adb: Minor reformatting
33732         Change rotate count to 3 in Hash (improves hash for small strings)
33733
33734         * 5qsystem.ads: Add comments for type Address (no literals allowed).
33735
33736         * gnat_ugn.texi: Add new section of documentation "Code Generation
33737         Control", which describes the use of -m switches.
33738
33739 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
33740
33741         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
33742         through the DECL_INITIAL for renamed variables.
33743
33744 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
33745
33746         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
33747
33748 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
33749
33750         * exp_dbug.ads: Correct comments concerning handling of overloading,
33751         since we no longer use $ anymore.
33752
33753 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
33754
33755         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
33756         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
33757         with illegal subunits.
33758
33759 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
33760
33761         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
33762         body with front-end inlining enabled, check whether an inline pragma
33763         appears immediately after the body and applies to it.
33764
33765         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
33766         enabled and the pragma appears after the body of the subprogram.
33767
33768 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33769
33770         Part of function-at-a-time conversion
33771
33772         * misc.c (adjust_decl_rtl): Deleted.
33773         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
33774         Define.
33775
33776         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
33777         (add_decl_stmt, add_stmt, block_has_vars): New functions.
33778         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
33779
33780         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
33781         when making a decl.
33782         (gnat_to_gnu_entity): Likewise.
33783         Use add_stmt to update setjmp buffer.
33784         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
33785         flush_addressof.
33786         No longer call adjust_decl_rtl.
33787         (DECL_INIT_BY_ASSIGN_P): New macro.
33788         (DECL_STMT_VAR): Likewise.
33789
33790         * trans.c (gigi): Call start_block_stmt to make the outermost
33791         BLOCK_STMT.
33792         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
33793         Call start_block_stmt and end_block_stmt temporarily.
33794         Use gnat_expand_stmt instead of expand_expr_stmt.
33795         (add_decl_stmt): New function.
33796         (tree_transform): Call it.
33797         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
33798         (end_block_stmt): Set type and NULL_STMT.
33799         (gnat_expand_stmt): Make recursize call instead of calling
33800         expand_expr_stmt.
33801         (gnat_expand_stmt, case DECL_STMT): New case.
33802         (set_lineno_from_sloc): Do nothing if global.
33803         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
33804         (start_block_stmt, add_stmt, end_block_stmt): New functions.
33805         (build_block_stmt): Call them.
33806         (gnat_to_code): Don't expand NULL_STMT.
33807         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
33808         args.
33809         (tree_transform): Likewise.
33810         (tree_transform, case N_Null_Statement): Return NULL_STMT.
33811         (gnat_expand_stmt, case NULL_STMT): New case.
33812         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
33813         IF_STMT_TRUE.
33814
33815         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
33816         TREE_ADDRESSABLE.
33817
33818         * utils.c (create_var_decl): Do not call expand_decl or
33819         expand_decl_init.
33820         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
33821         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
33822         here.
33823         (struct e_stack): Add chain_next to GTY.
33824         (struct binding_level): Deleted.
33825         (struct ada_binding_level): New struct.
33826         (free_block_chain): New.
33827         (global_binding_level, clear_binding_level): Deleted.
33828         (global_bindings_p): Rework to see if no chain.
33829         (kept_level_p, set_block): Deleted.
33830         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
33831         new data structure and work directly on BLOCK node.
33832         (gnat_poplevel): Similarly.
33833         (get_decls): Look at BLOCK_VARS.
33834         (insert_block): Work directly on BLOCK node.
33835         (block_has_var): New function.
33836         (pushdecl): Rework for new binding structures.
33837         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
33838         poplevel.
33839         (build_subprog_body): Likewise.
33840         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
33841
33842         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
33843
33844         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
33845         (DECL_STMT_VAR): Likewise.
33846
33847 2004-05-17  Robert Dewar  <dewar@gnat.com>
33848
33849         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
33850         procedure
33851
33852         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
33853         of restriction synonyums by using
33854         Restrict.Process_Restriction_Synonyms.
33855
33856         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
33857
33858         * s-restri.ads (Tasking_Allowed): Correct missing comment
33859
33860         * s-rident.ads: Add entries for restriction synonyms
33861
33862         * ali.adb: Fix some problems with badly formatted ALI files that can
33863         result in infinite loops.
33864
33865         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
33866         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
33867         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
33868         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
33869         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
33870         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
33871         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
33872         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
33873         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
33874         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
33875         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
33876         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
33877         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
33878         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
33879         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
33880         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
33881         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
33882         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
33883         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
33884         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
33885         to Task_Id (minor cleanup).
33886
33887 2004-05-17  Vincent Celier  <celier@gnat.com>
33888
33889         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
33890         directory separator.
33891
33892         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
33893         project being extended, if Languages is not declared in extending
33894         project.
33895
33896 2004-05-17  Javier Miranda  <miranda@gnat.com>
33897
33898         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
33899         limited view of a visible sibling.
33900
33901 2004-05-14  Robert Dewar  <dewar@gnat.com>
33902
33903         * gnat_ugn.texi: Minor change to -gnatS documentation
33904
33905         * sprint.adb: Remove some instances of Assert (False) and for this
33906         purpose replace them by output of a ??? string.
33907
33908         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
33909         Assert (False).
33910
33911         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
33912         flag processing. This was suppressing required dependencies in
33913         No_Run_Time mode and is not needed since the binder does not generate
33914         references for things in libgnat anyway.
33915
33916         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
33917         warning.
33918
33919 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
33920
33921         * gnat_ugn.texi: Document AIX-specific issue with initialization of
33922         resolver library.
33923
33924         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
33925         action for the case of an actual parameter in an init proc call.
33926
33927 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
33928
33929         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
33930         subtype, check visible entities in base type.
33931
33932         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
33933         actions if the object is a renaming.
33934
33935         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
33936         Check_Formal_Package_Instance, to determine more precisely when the
33937         formal and the actual denote the same entity.
33938
33939 2004-05-14  Javier Miranda  <miranda@gnat.com>
33940
33941         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
33942
33943         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
33944         corresponding to a private_with must be removed from visibility; it
33945         will be made visible later, just before we analyze the private part of
33946         the package.
33947         (Check_Private_Child_Unit): Allow private_with clauses in public
33948         siblings.
33949         (Install_Siblings): Make visible the private entities of private-withed
33950         siblings.
33951         (Install_Withed_Unit): Do not install the private withed unit if we
33952         are compiling a package declaration and the Private_With_OK flag was
33953         not set by the caller. These declarations will be installed later,
33954         just before we analyze the private part of the package.
33955
33956         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
33957         during the evaluation of the expression that initializes the object,
33958         decorate it with the expected type to avoid cascade errors.
33959         Code cleanup.
33960
33961         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
33962         subprogram we have to install the private_with clauses after its
33963         specification has been analyzed (as documented in AI-262.TXT).
33964
33965         * sem_ch8.adb (Has_Private_With): New function. Determines if the
33966         current compilation unit has a private with on a given entity.
33967         (Find_Direct_Name): Detect the Beaujolais problem described in
33968         AI-262.TXT
33969
33970         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
33971         provides the functionality of the function Is_Ancestor that was
33972         previously available in sem_ch10. It has been renamed to avoid
33973         overloading.
33974
33975         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
33976
33977 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33978
33979         * utils.c (build_vms_descriptor): Use SImode pointers.
33980
33981 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
33982
33983         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
33984
33985 2004-05-14  GNAT Script  <nobody@gnat.com>
33986
33987         * Make-lang.in: Makefile automatically updated
33988
33989 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
33990
33991         Renaming of target specific files for clarity
33992
33993         * Makefile.in: Rename GNAT target specific files.
33994
33995         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
33996         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
33997         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
33998         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
33999         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
34000         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
34001         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
34002         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
34003         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
34004         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
34005         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
34006         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
34007         51osinte.adb, 51osinte.ads, 51system.ads,
34008         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
34009         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
34010         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
34011         56tpopsp.adb, 57system.ads, 58system.ads,
34012         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
34013         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
34014         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
34015         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
34016         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
34017         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
34018         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
34019         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
34020         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
34021         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
34022         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
34023         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
34024         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
34025         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
34026         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
34027         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
34028         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
34029         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
34030         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
34031         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
34032         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
34033         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
34034         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
34035         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
34036         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
34037         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
34038         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
34039         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
34040         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
34041         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
34042         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
34043         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
34044         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
34045         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
34046         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
34047         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
34048         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
34049         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
34050         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
34051         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
34052
34053         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
34054         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
34055         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
34056         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
34057         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
34058         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
34059         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
34060         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
34061         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
34062         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
34063         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
34064         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
34065         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
34066         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
34067         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
34068         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
34069         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
34070         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
34071         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
34072         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
34073         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
34074         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
34075         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
34076         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
34077         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
34078         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
34079         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
34080         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
34081         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
34082         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
34083         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
34084         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
34085         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
34086         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
34087         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
34088         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
34089         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
34090         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
34091         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
34092         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
34093         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
34094         s-osinte-vms.ads, s-osinte-vxworks.adb,
34095         s-osinte-vxworks.ads, s-osprim-mingw.adb,
34096         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
34097         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
34098         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
34099         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
34100         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
34101         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
34102         s-stchop-vxworks.adb, s-taprop-dummy.adb,
34103         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
34104         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
34105         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
34106         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
34107         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
34108         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
34109         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
34110         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
34111         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
34112         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
34113         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
34114         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
34115         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
34116         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
34117         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
34118         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
34119         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
34120         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
34121         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
34122         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
34123         system-irix-o32.ads, system-linux-x86_64.ads,
34124         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
34125         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
34126         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
34127         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
34128         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
34129         system-vxworks-mips.ads, system-vxworks-ppc.ads,
34130         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
34131         above.
34132
34133 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
34134
34135         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
34136
34137 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
34138
34139         Merge from tree-ssa-20020619-branch.
34140
34141         * config-lang.in (boot_language, build_by_default): Set
34142         to no.
34143         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
34144         (max_size): Add static chain op for call_expr.
34145
34146 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
34147
34148         PR target/15331
34149         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
34150
34151 2004-05-11  Roger Sayle  <roger@eyesopen.com>
34152
34153         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
34154         COND_EXPR.
34155
34156 2004-05-10  Doug Rupp  <rupp@gnat.com>
34157
34158         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
34159         system.aux_dec.
34160
34161         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
34162
34163         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
34164
34165         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
34166         Fixes undefined symbols in IA64 gnatlib.
34167
34168         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
34169
34170         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
34171         Short_Address). This will be moved to system.auxdec.
34172
34173 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
34174
34175         * sem_util.adb: Replace test for presence of a node that is always
34176         present with a call to Discard_Node.
34177
34178         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
34179         Analyze on the library unit node after generation of distribution stub
34180         constructs.  The call was a no-op because Unit_Node has already been
34181         Analyzed, and the tree fragments for the distribution stubs are
34182         analyzed as they are inserted in Exp_Dist.
34183         Update comment regarding to distribution stubs to reflect that we
34184         do not generate stub in separate files anymore.
34185
34186         * einfo.ads: Clarify the fact that a tagged private type has the
34187         E_Record_Type_With_Private Ekind.
34188
34189         * erroutc.adb: Minor reformatting
34190
34191         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
34192         values if line length is increased using -gnatyM (noticed during code
34193         reading).
34194
34195         * eval_fat.adb: Minor reformatting
34196         Put spaces around exponentiation operator
34197
34198 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
34199
34200         PR ada/15005
34201         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
34202         has been rewritten as an explicit dereference, retrieve type of
34203         original node to check for possibly unconstrained record type.
34204
34205 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
34206
34207         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
34208         overriding, use the operation of the parent unconditionally.
34209
34210         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
34211         operation when either operand is a literal, to avoid further
34212         ambiguities.
34213
34214         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
34215         overridden by a previous explicit declaration, mark the previous entity
34216         as overriding.
34217
34218         * sem_disp.adb (Check_Dispatching_Operation): New predicate
34219         Is_Visibly_Controlled, to determine whether a declaration of a
34220         primitive control operation for a derived type overrides an inherited
34221         one. Add warning if the explicit declaration does not override.
34222
34223 2004-05-10  Vincent Celier  <celier@gnat.com>
34224
34225         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
34226         some cases when the sources are no longer present.
34227
34228         * make.adb (Collect_Arguments): Fail if an external source, not part
34229         of any project need to be compiled, when switch -x has not been
34230         specified.
34231
34232         * makeusg.adb: Document new switch -x
34233
34234         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
34235         defaulted to False.
34236
34237         * switch-m.adb (Scan_Make_Switches): New switch -x
34238
34239         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
34240         gnatmake switch -x.
34241
34242         * gnat_ugn.texi: Document new gnatmake switch -x
34243
34244 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
34245
34246         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
34247
34248         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
34249         (process_attributes): Likewise.
34250
34251 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
34252
34253         * s-inmaop.ads: Fix spelling mistake in one of the comments.
34254
34255 2004-05-10  Robert Dewar  <dewar@gnat.com>
34256
34257         * gnat_ugn.texi: Document that for config pragma files, the maximum
34258         line length is always 32767.
34259
34260         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
34261         literals is now allowed.
34262
34263         * gnat-style.texi: Remove statement about splitting long lines before
34264         an operator rather than after, since we do not follow this rule at all.
34265         Clarify rule (really lack of rule) for spaces around exponentiation
34266
34267         * sem_elim.adb: Allow concatenation of string literals as well as a
34268         single string literal for pragma arguments.
34269
34270         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
34271
34272         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
34273         written for append case.
34274
34275         * frontend.adb: Changes to avoid checking max line length in config
34276         pragma files.
34277
34278         * g-os_lib.ads: Minor reformatting
34279
34280         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
34281         wrong in any case. Instead use standard value. Noticed during code
34282         reading.
34283
34284         * opt.ads (Max_Line_Length): New field, used to implement removal of
34285         limitation on length of lines when scanning config pragma files.
34286
34287         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
34288         makeutl.ads, makeutl.adb: Minor reformatting
34289
34290         * scn.adb: Do not check line length while scanning config pragma files
34291         Do not check line length while scanning out license information
34292
34293         * scng.adb: Changes to avoid line length checks while parsing config
34294         pragma files.
34295
34296 2004-05-10  GNAT Script  <nobody@gnat.com>
34297
34298         * Make-lang.in: Makefile automatically updated
34299
34300 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
34301
34302         * osint.adb (Find_Program_Name): Fix handling of VMS version
34303         number.
34304
34305 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
34306
34307         * g-os_lib.ads (Invalid_Time): New constant
34308
34309         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
34310         return OS_Time instead of time_t to match what is imported by Ada.
34311         Now return -1 if the file doesn't exist, instead of a random value
34312
34313 2004-05-05  Robert Dewar  <dewar@gnat.com>
34314
34315         * usage.adb: Add line for -gnatR?s switch
34316
34317         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
34318
34319         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
34320         and for Match (Data_First, Data_last)
34321
34322         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
34323         written when we are dealing with multi-unit files.
34324
34325 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
34326
34327         * Makefile.in: Remove unused targets and variables.
34328
34329 2004-05-05  Vincent Celier  <celier@gnat.com>
34330
34331         * switch-m.adb: New gnatmake switch -eI
34332
34333         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
34334         of new gnatmake switch -eInnn.
34335
34336         * makegpr.adb: Take into account new parameters Index and Src_Index in
34337         Prj.Util.
34338
34339         * clean.adb: Implement support for multi-unit sources, including new
34340         switch -i.
34341
34342         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
34343         Src_Index.
34344
34345         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
34346         (Extract_From_Q): New out parameter Index
34347         (Mark, Is_Marked): Subprograms moved to Makeutl
34348         (Switches_Of): New parameter Source_Index
34349         (Add_Switch): New parameter Index
34350         (Check): New parameter Source_Index
34351         (Collect_Arguments): New parameter Source_Index
34352         (Collect_Arguments_And_Compile): New parameter Source_Index
34353         (Compile): New parameter Source_Index
34354         Put subprograms in alphabetical order
34355         Add support for multi-source sources, including in project files.
34356
34357         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
34358         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
34359         Make.
34360
34361         * makeusg.adb: New gnatmake switch -eInnn
34362
34363         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
34364         Prj.Util.Value_Of.
34365
34366         * opt.ads (Main_Index): New variable, defaulted to 0.
34367
34368         * osint.ads, osinte.adb (Add_File): New parameter Index
34369         (Current_Source_Index): New function
34370
34371         * prj.adb: Take into account new components Index and Src_Index
34372
34373         * prj.ads (String_Element): New component Index
34374         (Variable_Value): New component Index
34375         (Array_Element): New component Src_Index
34376
34377         * prj-attr.adb: Indicate that optional index may be specified for
34378         attributes Main, Executable, Spec, Body and some of Switches.
34379
34380         * prj-attr.ads (Attribute_Kind): New values for optional indexes
34381         (Attribute_Record): New component Optional_Index
34382
34383         * prj-com.ads (File_Name_Data): New component Index
34384
34385         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
34386
34387         * prj-env.adb (Put): Output optional index
34388
34389         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
34390         attributes Spec and Body.
34391
34392         * prj-nmsc.adb: Process optional indexes
34393
34394         * prj-pp.adb: Ouput "at" for optional indexes
34395
34396         * prj-proc.adb: Take into account optional indexes
34397
34398         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
34399         Optional_Index. For string literal,
34400         process optional index when Optional_Index is True.
34401         (Parse_Expresion): New Boolean parameter Optional_Index
34402
34403         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
34404         (Set_Source_Index_Of): New procedure
34405
34406         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
34407         index.
34408
34409         * prj-util.ads (Executable_Of): New parameter Index
34410         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
34411         New parameter Src_Index, defaulted to 0.
34412
34413 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
34414
34415         PR ada/15257
34416         * sem_ch3.adb (Access_Definition): If this is an access parameter
34417         whose designated type is imported through a limited_with clause, do
34418         not add the enclosing subprogram to the list of private dependents of
34419         the type.
34420
34421 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
34422
34423         PR ada/15258
34424         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
34425         a limited_with clause, and the other is its non-limited view.
34426
34427 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
34428
34429         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
34430
34431         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
34432         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
34433         Stand.Boolean_Literals to produce references to entities
34434         Standard_False and Standard_True from compile-time computed boolean
34435         values.
34436
34437         * stand.ads (Boolean_Literals): New variable, provides the entity
34438         values for False and True, for use by the expander.
34439
34440 2004-05-05  Doug Rupp  <rupp@gnat.com>
34441
34442         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
34443         5vinmaop.adb: Unchecked convert Short_Address vice Address
34444
34445         * adaint.c, raise.c: Caste CRTL function return value
34446         to avoid gcc error on 32/64 bit IVMS.
34447
34448         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
34449         target = IA64/VMS.
34450
34451         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
34452
34453         * 5qsystem.ads (Address): Declare as Long_Integer
34454         (Short_Address): Declare as 32 bit subtype of Address
34455         Declare  abstract address operations to avoid gratuitous ambiguities.
34456
34457 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
34458
34459         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
34460         instead of the old Boolean_Entry_Barriers.
34461         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
34462
34463 2004-05-05  GNAT Script  <nobody@gnat.com>
34464
34465         * Make-lang.in: Makefile automatically updated
34466
34467 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
34468
34469         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
34470
34471 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
34472
34473         PR ada/15152
34474         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
34475         alone. Replacing object references by literals is inappropriate in a
34476         so low level context.
34477
34478 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
34479
34480         * a-exexpr.adb: Add comments
34481
34482 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
34483
34484         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
34485         declare the Ancestor_Tags array in Type_Specific_Data with a small size
34486         without risking a bounds check error when accessing one of its
34487         components.
34488         (Type_Specific_Data): Define Ancestor_Tags as a small array.
34489         This prevents us from hitting a limitation during the debug info
34490         generation when using stabs.
34491
34492         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
34493         small array.
34494         This prevents us from hitting a limitation during the debug info
34495         generation when using stabs.
34496
34497 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
34498
34499         lang-specs.h: Remove -gnatz* from specs.
34500
34501 2004-05-03  Vincent Celier  <celier@gnat.com>
34502
34503         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
34504
34505         * Make-lang.in, Makefile.in: Add gprmake
34506
34507 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
34508
34509         * sem_aggr.adb: Fix typo in comment.
34510
34511 2004-05-03  Robert Dewar  <dewar@gnat.com>
34512
34513         * make.adb: Minor reformatting
34514
34515         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
34516
34517         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
34518         so that it works when address is not a private type.
34519
34520         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
34521         properly with rewritten unchecked conversions. This prevents
34522         order-of-elaboration issues that can otherwise arise.
34523         (Minimum_Size): Don't check size of access types under VMS
34524
34525         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
34526         interpretations of integer literals as type System.Address.
34527
34528         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
34529         (Is_Descendent_Of): New function
34530
34531 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
34532
34533         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
34534         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
34535         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
34536
34537         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
34538         of the old Max_Entry_Queue_Depth.
34539
34540         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
34541         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
34542         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
34543
34544         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
34545         New entry for proper handling of Max_Entry_Queue_Depth.
34546         New entry for proper handling of No_Dynamic_Interrupts.
34547
34548         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
34549         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
34550         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
34551         the GNAT specific restriction Max_Entry_Queue_Depth.
34552         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
34553         the GNAT specific restriction No_Dynamic_Interrupts.
34554
34555         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
34556         instead of the old Boolean_Entry_Barriers.
34557         Use the new restriction No_Dynamic_Attachment instead of the old
34558         No_Dynamic_Interrupts.
34559
34560         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
34561         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
34562
34563         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
34564         of the old Max_Entry_Queue_Depth.
34565
34566 2004-05-03  GNAT Script  <nobody@gnat.com>
34567
34568         * Make-lang.in: Makefile automatically updated
34569
34570 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
34571
34572         * checks.adb (Enable_Range_Check): If the prefix of an index component
34573         is an access to an unconstrained array, perform check unconditionally.
34574
34575 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34576
34577         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
34578         Component_Clause.
34579
34580 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
34581
34582         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
34583         alternate stack setting. There was no support for the tasking cases
34584         and the changes eventually caused a number of side-effect failures in
34585         the non-tasking case too.
34586
34587 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
34588
34589         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
34590         -gnats is passed.
34591
34592 2004-04-29  Vincent Celier  <celier@gnat.com>
34593
34594         * make.adb (Gnatmake): Increase max size of argument array for
34595         gnatbind for the potential addition of -F.
34596         If there are Stand-Alone Library projects, invoke gnatbind with -F to
34597         be sure that elaboration flags will be checked.
34598
34599         * switch-c.adb: Correct call to Scan_Pos for -gnateI
34600
34601 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
34602
34603         * sem_warn.adb (Check_References): Move '<access-variable> may be
34604         null' warning out of under Warn_On_No_Value_Assigned.
34605
34606 2004-04-29  Ed Falis  <falis@gnat.com>
34607
34608         * gnat_ugn.texi: Fixed texi error
34609
34610 2004-04-29  Robert Dewar  <dewar@gnat.com>
34611
34612         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
34613         abstract operations if they come from predefined files.
34614
34615         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
34616         Dynamic, not RM).
34617
34618         * s-addope.adb: Correct obvious error in mod function
34619
34620 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
34621
34622         * Makefile.in: Add target pairs for powerpc darwin*
34623         tasking support.
34624
34625         * a-intnam-darwin.ads, s-osinte-darwin.adb,
34626         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
34627
34628 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
34629
34630         * Makefile.in: Add target macro definitions for s390*-linux*.
34631         * system-linux-s390.ads: New file.
34632         * system-linux-s390x.ads: New file.
34633
34634 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
34635
34636         * gnat_ugn.texi: Correct argument to @setfilename.
34637
34638 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
34639
34640         * a-exexpr.adb (Unwind_Word): New data type.
34641         (Unwind_Exception): Use it as type of Private1 and Private2.
34642
34643         * raise.c (db_action_for): Fix debug printf.
34644
34645 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
34646
34647         * a-wtmoio.ads: Formal type must be a modular type, not a signed
34648         integer type.
34649
34650 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34651
34652         * decl.c (gnat_to_gnu_entity, case object): Call
34653         __builtin_update_setjmp_buf.
34654
34655         * gigi.h (update_setjmp_buf): Deleted.
34656         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
34657
34658         * misc.c: (update_setjmp_buf): Deleted.
34659
34660         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
34661         around block of RTL.
34662
34663         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
34664
34665 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
34666
34667         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
34668         subprogram for which no pragma All_Calls_Remote applies, store the
34669         address of the real subprogram in the underlying record type, so local
34670         dereferences do not go through the PCS.
34671
34672 2004-04-26  Robert Dewar  <dewar@gnat.com>
34673
34674         * i-c.ads: Add some type qualifications to avoid ambiguities when
34675         compiling with s-auxdec.ads and a non-private address type.
34676
34677 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
34678
34679         * Makefile.rtl: Fix error in previous check-in:
34680         Add s-addope.o to non tasking object list (rather than tasking object
34681         list).
34682
34683 2004-04-26  Javier Miranda  <miranda@gnat.com>
34684
34685         * sem_aggr.adb: Fix typo in comments
34686         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
34687         Required to check the null-exclusion attribute.
34688
34689         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
34690         case of anonymous access types in record and array components. For a
34691         component definition the level is the same of the enclosing composite
34692         type.
34693
34694         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
34695         that are anonymous access types the level of accessibility depends on
34696         the enclosing type declaration. In order to have this information, set
34697         the scope of the anonymous access type to the enclosing record type
34698         declaration.
34699         (Array_Type_Declaration): In case of components that are anonymous
34700         access types the level of accessibility depends on the enclosing type
34701         declaration. In order to have this information, set the scope of the
34702         anonymous access type to the enclosing array type declaration.
34703
34704         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
34705         access type.
34706
34707         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
34708         renaming of anonymous access-to-constant types allowed if and only if
34709         the renamed object is access-to-constant.
34710
34711         * sem_util.adb (Type_Access_Level): In case of anonymous access types
34712         that are component_definition or discriminants of a nonlimited type,
34713         the level is the same as that of the enclosing component type.
34714
34715 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
34716
34717         * sem_elim.adb: Some minor code reorganization from code reading. Fix
34718         misprint in the function name (File_Name_Match).
34719
34720 2004-04-23  Laurent Guerby  <laurent@guerby.net>
34721
34722         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
34723         install.
34724
34725 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34726
34727         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
34728
34729 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
34730
34731         * adaint.c (__gnat_try_lock): No longer requires that the parent
34732         directory be writable, the directory itself is enough.
34733         (gnat_is_absolute_path): Change profile, so that the call from
34734         GNAT.OS_Lib can be made more efficient.
34735
34736         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
34737         from GNAT.OS_Lib can be made more efficient.
34738
34739         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
34740         one copy of the file name. Found by code reading.
34741
34742 2004-04-23  Vincent Celier  <celier@gnat.com>
34743
34744         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
34745         Correct documentation on gnatmake switches transmitted to the compiler
34746
34747         * ali.ads: Minor comment fix
34748
34749 2004-04-23  Javier Miranda  <miranda@gnat.com>
34750
34751         * sem_ch6.adb: (Confirming Types): Code cleanup
34752
34753         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
34754         subprogram types: E_Anonymous_Access_Subprogram_Type and
34755         E_Anonymous_Access_Protected_Subprogram_Type.
34756
34757 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
34758
34759         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
34760         whether a pragma All_Calls_Remote applies to the subprogram on which
34761         'Access is taken.
34762         No functional change is introduced by this revision; the new parameter
34763         will be used to allow calls to local RCI subprograms to be optimized
34764         to not use the PCS in the case where no pragma All_Calls_Remote applies,
34765         as is already done in the PolyORB implementation of the DSA.
34766
34767         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
34768         whether a pragma All_Calls_Remote applies to the subprogram on which
34769         'Access is taken.
34770         No functional change is introduced by this revision; the new parameter
34771         will be used to allow calls to local RCI subprograms to be optimized
34772         to not use the PCS in the case where no pragma All_Calls_Remote applies,
34773         as is already done in the PolyORB implementation of the DSA.
34774
34775 2004-04-23  Robert Dewar  <dewar@gnat.com>
34776
34777         * Makefile.rtl: Add entry for s-addope.o in run time library list
34778         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
34779         * s-addope.ads, s-addope.adb: New files.
34780
34781         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
34782         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
34783         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
34784         System.Address to be non-private and signed.
34785
34786         * sem_elim.adb: Minor reformatting (fairly extensive)
34787         Some minor code reorganization from code reading
34788         Add a couple of ??? comments
34789
34790 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34791
34792         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
34793         (tree_transform, case N_If_Statement): Remove non-determinism.
34794
34795         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
34796
34797 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
34798
34799         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
34800         Eliminate' section.
34801
34802         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
34803         no longer used as a parameter name for Eliminate pragma).
34804
34805 2004-04-22  Laurent Guerby  <laurent@guerby.net>
34806
34807         PR optimization/14984
34808         PR optimization/14985
34809         * trans.c (gigi): Fix non determinism leading to bootstrap
34810         comparison failures.
34811
34812 2004-04-21  Pascal Obry  <obry@gnat.com>
34813
34814         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
34815         passed to spawnvp() to properly handle program pathname with spaces on
34816         Win32.
34817
34818 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
34819
34820         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
34821         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
34822         unlocked in case of exceptions.
34823
34824 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
34825
34826         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
34827         This function does not exist anymore.
34828
34829 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
34830
34831         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
34832
34833         * link.c: Move variables to the __gnat name space.
34834
34835         * Makefile.in: list link.o explicitly when needed.
34836
34837         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
34838
34839 2004-04-21  Javier Miranda  <miranda@gnat.com>
34840
34841         * einfo.adb (Original_Access_Type): New subprogram
34842         (Set_Original_Access_Type): New subprogram
34843         (Write_Field21_Name): Write the name of the new field
34844
34845         * einfo.ads (Original_Access_Type): New field present in access to
34846         subprogram types.
34847         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
34848         E_Anonymous_Access_Protected_Subprogram_Type.
34849
34850         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
34851         subprogram types.
34852
34853         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
34854         to anonymous access to subprogram types.
34855
34856         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
34857         to subprogram types.
34858
34859         * sem_ch3.adb (Access_Definition): Complete decoration of entities
34860         corresponding to anonymous access to subprogram types.
34861         (Analyze_Component_Declaration): Add new actual to the call to
34862         subprogram replace_anonymous_access_to_protected_subprogram.
34863         (Array_Type_Declaration): Add new actual to the call to subprogram
34864         replace_anonymous_access_to_protected_subprogram.
34865         (Process_Discriminants): Add new actual to the call to subprogram
34866         replace_anonymous_access_to_protected_subprogram.
34867         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
34868
34869         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
34870         formal.
34871
34872         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
34873         access to subprogram types.
34874
34875         * sem_util.adb (Has_Declarations): Addition of package_specification
34876         nodes.
34877
34878 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
34879
34880         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
34881         inlined flags to renamed entity only if in current unit.
34882
34883 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
34884
34885         * s-parint.ads: Add DSA implementation marker.
34886
34887         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
34888         value of System.Partition_Interface.DSA_Implementation to determine
34889         what version of the distributed systems annex is available (no
34890         implementation, GLADE, or PolyORB).
34891
34892 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
34893
34894         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
34895
34896 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34897
34898         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
34899         with new type if alias sets differ.
34900         Fixes ACATS c41103b.
34901
34902 2004-04-21  Vincent Celier  <celier@gnat.com>
34903
34904         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
34905         Add array Lang_Args for the language specific compiling argument
34906         switches.
34907
34908         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
34909
34910 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
34911
34912         * gnat_rm.texi: Update the descripton of the Eliminate pragma
34913         according to the recent changes in the format of the parameters of the
34914         pragma (replacing Homonym_Number with Source_Location).
34915
34916 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
34917
34918         * 5isystem.ads: Removed, unused.
34919
34920         * gnat_rm.texi: Redo 1.13 change.
34921
34922 2004-04-19  Robert Dewar  <dewar@gnat.com>
34923
34924         * s-stoele.ads: Clean up definition of Storage_Offset (the new
34925         definition is cleaner, avoids the kludge of explicit Standard operator
34926         references, and also is consistent with a visible System.Address with
34927         no visible operations.
34928
34929         * s-geveop.adb: Add declarations to avoid assumption of visible
34930         operations on type System.Address (since these might not be available
34931         if Address is a non-private type for which the operations
34932         are made abstract).
34933
34934         * sem_eval.adb: Minor reformatting
34935
34936         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
34937         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
34938         reformatting (new function spec format).
34939
34940         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
34941         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
34942         s-caun64.adb: Add declarations to avoid assumption of visible
34943         operations on type System.Address (since these might not be available
34944         if Address is a non-private type for which the operations are made
34945         abstract).
34946
34947         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
34948
34949         * exp_intr.adb: Minor comment update
34950
34951         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
34952
34953         * 5omastop.adb: Add declarations to avoid assumption of visible
34954         operations on type System.Address (since these might not be available
34955         if Address is a non-private type for which the operations
34956         are made abstract).
34957
34958 2004-04-19  Vincent Celier  <celier@gnat.com>
34959
34960         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
34961
34962         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
34963         defaulted to Ada.
34964
34965         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
34966         defaulted to Ada.
34967         Call Check with Process_Languages.
34968         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
34969         with Process_Languages.
34970         (Recursive_Check): New Boolean parameter Process_Languages. Call
34971         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
34972         Process_Languages.
34973
34974         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
34975
34976         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
34977         parameter Ada_Main, defaulted to True.
34978         Check for Ada specific characteristics only when Ada_Main is True.
34979
34980         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
34981
34982         * prj.adb: (Project_Empty): Add new Project_Data components.
34983
34984         * prj.ads: New types and tables for non Ada languages.
34985         (Project_Data): New components Languages, Impl_Suffixes,
34986         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
34987         Include_Path, Include_Data_Set.
34988
34989         * prj-env.ads, prj-env.adb: Minor reformatting
34990
34991         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
34992         Put subprograms in alphabetical order
34993
34994         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
34995         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
34996         Opt.Follow_Links.
34997
34998         * mlib-prj.adb: Back out modification in last version, as they are
34999         incorrect.
35000         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
35001
35002         * make.adb: (Mains): Moved to package Makeutl
35003         (Linker_Opts): Moved to package Makeutl
35004         (Is_External_Assignment): Moved to package Makeutl
35005         (Test_If_Relative_Path): Moved to package Makeutl
35006         (Gnatmake): Move sorting of linker options to function
35007         Makeutl.Linker_Options_Switches.
35008
35009         * makeutl.ads, makeutl.adb: New files.
35010
35011         * Makefile.in: Add makeutl.o to the object files for gnatmake
35012
35013         * makeusg.adb: Add line for new switch -eL.
35014
35015         * gnatls.adb (Image): New function.
35016         (Output_Unit): If in verbose mode, output the list of restrictions
35017         specified by pragmas Restrictions.
35018
35019         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
35020         Text_IO.
35021
35022         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
35023         needed, to put it in the range 1970 (included) - 2026 (excluded).
35024         (Time_Of): Do not shift Unix_Min_Year (1970).
35025         Shift the date by multiple of 56 years, if needed, to put it in the
35026         range 1970 (included) - 2026 (excluded).
35027
35028         * adaint.h, adaint.c (__gnat_set_executable): New function.
35029
35030 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35031
35032         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
35033         and pop GC context.
35034         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
35035         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
35036         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
35037         (tree_transform, case N_Code_Statement): Likewise.
35038         (gnat_expand_stmt, case LABEL_STMT): Don't look at
35039         LABEL_STMT_FIRST_IN_EH.
35040         (gnat_expand_stmt, case ASM_STMT): New case.
35041
35042         * utils2.c (build_unary_op): Properly set TREE_READONLY of
35043         UNCONSTRAINED_ARRAY_REF.
35044
35045         * utils.c (poplevel): Temporarily push/pop GC context around inline
35046         function expansion.
35047
35048         * decl.c (maybe_variable): Properly set TREE_READONLY of
35049         UNCONSTRAINED_ARRAY_REF.
35050         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
35051
35052         * ada-tree.def: (ASM_STMT): New.
35053
35054         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
35055         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
35056         ASM_STMT_INPUT): New.
35057         (ASM_STMT_CLOBBER): Likewise.
35058
35059 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
35060
35061         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
35062         general rcheck mechanism to raise Program_Error for E.4(18), instead
35063         of a custom raiser in System.Partition_Interface.
35064         Part of general cleanup work before PolyORB integration.
35065
35066         * snames.ads, snames.adb: Add new runtime library entities and names
35067         for PolyORB DSA.
35068
35069         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
35070         exp_dist.
35071         (Build_Subprogram_Id): New subprogram provided by exp_dist
35072         Code reorganisation in preparation for PolyORB integration.
35073
35074         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
35075         exp_dist.
35076         (Build_Subprogram_Id): New subprogram provided by exp_dist
35077
35078         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
35079         actual parameter types for call to dereference of an
35080         access-to-subprogram type.
35081
35082         * rtsfind.ads: Add new runtime library entities and names for PolyORB
35083         DSA.
35084
35085         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
35086         instead, which has the same behaviour here since we never pass it a
35087         NULL pointer.
35088
35089         * link.c (run_path_option, Solaris case): Use -Wl, as for other
35090         platforms.
35091
35092         * Makefile.in: adjust object file lists for gnatlink and gnatmake
35093         to account for new dependency upon Interfaces.C.Strings + link.o
35094         For x86 FreeBSD, use 86numaux.
35095
35096         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
35097         from Mlib.Tgt to Mlib.
35098
35099         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
35100         target-independent.
35101
35102         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
35103         target-specific versions of this subprogram, now implemented as a
35104         target-independent function in Mlib.
35105
35106         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
35107         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
35108         (Linker_Library_Path_Option): Remove target-specific versions of this
35109         subprogram, now implemented as a target-independent function in Mlib.
35110
35111         * atree.adb: (Allocate_Initialize_Node): New subprogram.
35112         Factors out node table slots allocation.
35113         (Fix_Parents): New subprogram.
35114         Encapsulate the pattern of fixing up parent pointers for syntactic
35115         children of a rewritten node.
35116         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
35117         (Rewrite): Use New_Copy when creating saved copy of original node.
35118         (Replace): Use Copy_Node to copy nodes.
35119
35120 2004-04-19  Javier Miranda  <miranda@gnat.com>
35121
35122         * sprint.adb (Sprint_Node_Actual): Give support to the new
35123         Access_To_Subprogram node available in Access_Definition nodes. In
35124         addition, give support to the AI-231 node fields: null-exclusion,
35125         all-present, constant-present.
35126
35127         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
35128
35129         * sinfo.ads, sinfo.adb:
35130         New field Access_To_Subprogram_Definition in Access_Definition nodes
35131
35132         * sem_ch6.adb (Process_Formals): Move here the code that creates and
35133         decorates internal subtype declaration corresponding to the
35134         null-excluding formal. This code was previously in Set_Actual_Subtypes.
35135         In addition, carry out some code cleanup on this code. In case of
35136         access to protected subprogram call
35137         Replace_Anonymous_Access_To_Protected_Subprogram.
35138         (Set_Actual_Subtypes): Code cleanup.
35139
35140         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
35141         Find_Type in case of anonymous access renamings. Add warning in case of
35142         null-excluding attribute used in anonymous access renaming.
35143
35144         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
35145         subprogram
35146
35147         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
35148         subprogram.
35149         (Access_Definition): In case of anonymous access to subprograms call
35150         the corresponding semantic routine to decorate the node.
35151         (Access_Subprogram_Declaration): Addition of some comments indicating
35152         some code that probably should be added here. Detected by comparison
35153         with the access_definition subprogram.
35154         (Analyze_Component_Declaration): In case of access to protected
35155         subprogram call Replace_Anonymous_Access_To_Protected.
35156         (Array_Type_Declaration): In case of access to protected subprogram call
35157         Replace_Anonymous_Access_To_Protected_Subprogram.
35158         (Process_Discriminants): In case of access to protected subprogram call
35159         Replace_Anonymous_Access_To_Protected_Subprogram.
35160
35161         * par.adb (P_Access_Definition): New formal that indicates if the
35162         null-exclusion part was present.
35163         (P_Access_Type_Definition): New formal that indicates if the caller has
35164         already parsed the null-excluding part.
35165
35166         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
35167         (P_Identifier_Declarations): Code cleanup and give support to renamings
35168         of anonymous access to subprogram types.
35169         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
35170         (P_Array_Type_Definition): Give support to AI-254.
35171         (P_Component_Items): Give support to AI-254.
35172         (P_Access_Definition): New formal that indicates if the header was
35173         already parsed by the caller.
35174         (P_Access_Type_Definition): New formal that indicates if the caller has
35175         already parsed the null-excluding part.
35176
35177         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
35178         call to P_Access_Definition.
35179
35180 2004-04-19  Geert Bosch  <bosch@gnat.com>
35181
35182         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
35183         the delicate semantics of floating-point to integer conversion.
35184         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
35185
35186         * eval_fat.adb (Machine_Mantissa): Moved to spec.
35187         (Machine_Radix): New function.
35188
35189         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
35190         conversion checks.
35191         (Machine_Radix): New function also for use in conversion checks.
35192
35193 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
35194
35195         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
35196
35197         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
35198         to decorate the access-to-protected subprogram and the equivalent type.
35199
35200         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
35201         to anonymous access to subprogram types.
35202
35203         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
35204         constant-folding, for legality checks in contexts that require an RM
35205         static expression.
35206
35207         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
35208         temporary but stack checking is not enabled, increment serial number
35209         to so that symbol generation is consistent with and without stack
35210         checking.
35211
35212         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
35213         independent on whether stack checking is enabled, caller must check
35214         the corresponding flag.
35215
35216         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
35217         range checks.
35218         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
35219         parent if it has discriminants.
35220         (Build_Derived_Private_Type): Constructed full view does
35221         not come from source.
35222         (Process_Discriminants): Default discriminants on a tagged type are
35223         legal if this is the internal completion of a private untagged
35224         derivation.
35225
35226         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
35227         no constraint checks, because it corresponds to an existing object.
35228
35229         * sem_prag.adb (Process_Convention): Pragma applies
35230         only to subprograms in the same declarative part, i.e. the same unit,
35231         not the same scope.
35232
35233         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
35234         ignore type mismatch on a numeric conversion if expression comes from
35235         expansion.
35236
35237 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
35238
35239         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
35240         Homonym_Number parameter, add processing for Source_Location parameter
35241         corresponding.
35242         (Check_Eliminated): Remove the check for homonym numbers, add the check
35243         for source location traces.
35244
35245         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
35246         with Arg_Source_Location corresponding to the changes in the format of
35247         the pragma.
35248
35249         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
35250         Eliminate pragma corresponding to the changes in the format of the
35251         pragma: Homonym_Number is replaced with Source_Location, two ways of
35252         distinguishing homonyms are mutially-exclusive.
35253
35254 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
35255
35256         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
35257
35258         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
35259         No_Dollar_In_Label, no longer necessary, as it is always True.
35260         (Strip_Suffixes): Likewise.
35261
35262 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
35263
35264         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
35265         modulus for compatibility with size clause on targets with 16-bit
35266         Integer.
35267
35268         * layout.adb (Discrimify): In the case of private types, set Vtyp to
35269         full type to fix type mismatches on calls to size functions for
35270         discriminant-dependent array components.
35271
35272 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
35273
35274         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
35275         lib.
35276
35277 2004-04-19  Pascal Obry  <obry@gnat.com>
35278
35279         * mdll-utl.adb (Locate): New version is idempotent.
35280
35281 2004-04-17  Laurent Guerby  <laurent@guerby.net>
35282
35283         PR ada/14988 (partial)
35284         * impunit.adb: Fix typo.
35285
35286 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
35287
35288         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
35289         and install-rts-cert targets.  Remove all gnatlib and gnattools
35290         targets and all other rts-* targets (moved to libada).  Remove (now)
35291         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
35292         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
35293
35294 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35295
35296         * trans.c (tree_transform): Shortcut returning error_mark_node for
35297         statements in annotate_only_mode.
35298         (tree_transform, case N_Label, case N_Return_Statement,
35299         N_Goto_Statement): Make statement tree instead of generating code.
35300         (tree_transform, case N_Assignment_Statement): No longer check
35301         type_annotate_only.
35302         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
35303         RETURN_STMT): New.
35304         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
35305         New fcns.
35306         (gnat_to_gnu): Collect any RTL generated and deal with it.
35307         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
35308         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
35309         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
35310
35311         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
35312
35313         * ada-tree.def (EXPR_STMT): Fix typo in name.
35314         (BLOCK_STMT, IF_STMT): New nodes.
35315
35316         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
35317         LABEL_STMT_FIRST_IN_EH): New macros.
35318         (RETURN_STMT_EXPR): Likewise.
35319
35320         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
35321         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
35322
35323 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
35324
35325         * atree.ads: Correct documentation on extended nodes.
35326
35327         * link.c: Set run_path_option for FreeBSD.
35328
35329 2004-04-08  Vincent Celier  <celier@gnat.com>
35330
35331         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
35332         one of the ALI file, do not link with DEC lib.
35333
35334         * par.adb Remove the last two characters ("%s" or "%b") when checking
35335         if a language defined unit may be recompiled.
35336
35337 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
35338
35339         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
35340         removal of abstract operation leaves no possible interpretation for
35341         expression.
35342
35343         * sem_eval.adb (Eval_Qualified_Expression): Use
35344         Set_Raises_Constraint_Error on node when needed, so that it does not
35345         get optimized away by subsequent optimizations.
35346
35347         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
35348         operands even when they are not wrapped in a type conversion.
35349
35350 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
35351
35352         * sem_prag.adb (Set_Exported): Warn about making static as result of
35353         export only when the export is coming from source. This may be not
35354         be true e.g. on VMS where we expand export pragmas for exception codes
35355         together with imported or exported exceptions, and we don't want the
35356         user to be warned about something he didn't write.
35357
35358 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
35359
35360         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
35361         duplication between normal entities and those declared as renamings.
35362         No functional change.
35363
35364         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
35365         inline functions returning an unconstrained result.
35366
35367 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
35368
35369         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
35370         conform to what other front-ends do.
35371
35372 2004-04-08  Doug Rupp  <rupp@gnat.com>
35373
35374         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
35375         libraries.
35376
35377 2004-04-06  Pascal Obry  <obry@gnat.com>
35378
35379         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
35380
35381         * osint.adb (Program_Name): Do not look past a directory separator.
35382
35383 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
35384
35385         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
35386
35387         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
35388         requirement for preserving a copy of the original assignment node.
35389
35390         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
35391
35392 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
35393
35394         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
35395         when supported.
35396
35397 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
35398
35399         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
35400         operator calls in functional notation, and apply
35401         Universal_Interpretation to operands, not to their type.
35402
35403 2004-04-06  Robert Dewar  <dewar@gnat.com>
35404
35405         * 5wdirval.adb: Minor reformatting
35406
35407 2004-04-06  Ed Falis  <falis@gnat.com>
35408
35409         * gnat_rm.texi: Improve a reference to the GCC manual
35410
35411 2004-04-05  Vincent Celier  <celier@gnat.com>
35412
35413         * adaint.h, adaint.c: Add function __gnat_named_file_length
35414
35415         * impunit.adb: Add Ada.Directories to the list
35416
35417         * Makefile.in: Add VMS and Windows versions of
35418         Ada.Directories.Validity package body.
35419
35420         * Makefile.rtl: Add a-direct and a-dirval
35421
35422         * mlib-tgt.ads: Minor comment update.
35423
35424         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
35425         a-direct.ads, a-direct.adb: New files.
35426
35427 2004-04-05  Vincent Celier  <celier@gnat.com>
35428
35429         PR ada/13620
35430         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
35431         just to the compiler.
35432
35433 2004-04-05  Robert Dewar  <dewar@gnat.com>
35434
35435         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
35436         returned string is 1.
35437
35438         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
35439
35440         * eval_fat.ads: Minor reformatting
35441
35442         * g-curexc.ads: Document that lower bound of returned string values
35443         is always one.
35444
35445         * gnatlink.adb: Add ??? comment for previous change
35446         (need to document why this is VMS specific)
35447
35448         * s-stoele.ads: Minor reformatting
35449
35450         * tbuild.ads: Minor reformatting throughout (new function specs)
35451
35452         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
35453         after WITH.
35454
35455         * scng.adb: Minor reformatting
35456
35457 2004-04-05  Geert Bosch  <bosch@gnat.com>
35458
35459         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
35460         (Leading_Part): Still perform truncation to machine number if the
35461         specified radix_digits is greater or equal to machine_mantissa.
35462
35463 2004-04-05  Javier Miranda  <miranda@gnat.com>
35464
35465         * par-ch3.adb: Complete documentation of previous change
35466         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
35467         (aliased must appear before constant).
35468
35469         * par-ch4.adb: Complete documentation of previous change.
35470
35471         * par-ch6.adb: Complete documentation of previous change.
35472
35473         * sinfo.ads: Fix typo in commment.
35474
35475 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
35476
35477         * sem_ch3.adb (Inherit_Components): If derived type is private and has
35478         stored discriminants, use its discriminants to constrain parent type,
35479         as is done for non-private derived record types.
35480
35481         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
35482         Ada 2005 AI-310: an abstract non-dispatching operation is not a
35483         candidate interpretation in an overloaded call.
35484
35485         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
35486         expression is Null and target type is not an access type (e.g. a
35487         non-private address type).
35488
35489 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
35490
35491         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
35492         statement whose right-hand side is an inlined call, save a copy of the
35493         original assignment subtree to preserve enough consistency for
35494         Analyze_Assignment to proceed.
35495
35496         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
35497         complete assignment subtree which is now unnecessary, as the expansion
35498         of inlined call has been improved to preserve a consistent assignment
35499         tree.  Note_Possible_Modification must be called only
35500         after checks have been applied, or else unnecessary checks will
35501         be generated.
35502
35503         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
35504         of explicit dereferences that do not Come_From_Source:
35505          - be selective on cases where we must go back to the dereferenced
35506            pointer (an assignment to an implicit dereference must not be
35507            recorded as modifying the pointer);
35508          - do not rely on Original_Node being present (Analyze_Assignment
35509            calls Note_Possible_Modification on a copied tree).
35510
35511         * sem_warn.adb (Check_References): When an unset reference to a pointer
35512         that is never assigned is encountered, prefer '<pointer> may be null'
35513         warning over '<pointer> is never assigned a value'.
35514
35515 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
35516
35517         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
35518         the ABI.
35519
35520 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
35521
35522         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
35523         libexc. We currently don't reference anything in this library and
35524         linking it in triggers linker warnings we don't want to see.
35525
35526         * init.c: Update comments.
35527
35528 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35529
35530         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
35531         * utils.c (create_field_decl): Likewise.
35532         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
35533
35534 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
35535
35536         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
35537         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
35538         Add info directory entry and category.
35539
35540 2004-04-02  Jan Hubicka  <jh@suse.cz>
35541
35542         * utils.c: Include function.h
35543         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
35544
35545 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
35546
35547         PR ada/14150
35548         * Make-lang.in: Clean up generation of documentation
35549
35550         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
35551
35552         * xgnatug.adb: Removed, replaced by xgnatugn.adb
35553
35554         * xgnatugn.adb: Replaces xgnatug.adb
35555
35556         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
35557
35558         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
35559
35560         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
35561         gnat_ug_wnt.texi: Removed.
35562
35563 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
35564
35565         * utils2.c: Update copyright notice.
35566
35567 2004-04-01  Robert Dewar  <dewar@gnat.com>
35568
35569         * checks.adb: Minor reformatting throughout
35570         Note that prev checkin added RM reference to alignment warning
35571
35572 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
35573
35574         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
35575         non-static when building aggregate for bit-packed array.
35576
35577         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
35578         function call that is itself the actual in a procedure call, build
35579         temporary for it.
35580
35581         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
35582         a string literal, create a temporary for it, constant folding only
35583         handles scalars here.
35584
35585 2004-04-01  Vincent Celier  <celier@gnat.com>
35586
35587         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
35588         Error_Msg_SP): New empty procedures to instantiate the Scanner.
35589         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
35590         tokens.
35591         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
35592         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
35593         and get the checksum.
35594
35595         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
35596         already in the Q.
35597         Increase the Marking_Label at the end of the Multiple_Main_Loop,
35598         instead of at the beginning.
35599
35600         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
35601         directly.
35602         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
35603         on VMS.
35604
35605         * osint.ads (Multi_Unit_Index_Character): New Character global variable
35606
35607         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
35608         not '~' directly.
35609
35610         * par.adb: Remove test on file name to detect language defined units.
35611         Add test on unit name, after parsing, to detect language defined units
35612         that are not compiled with -gnatg (except System.RPC and its children)
35613
35614         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
35615         following units without style checking.
35616
35617         * switch-c.adb: Change -gnatC to -gnateI
35618
35619         * usage.adb: Document new switch -gnateInnn
35620
35621         * scng.adb (Accumulate_Token_Checksum): New procedure
35622         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
35623         word or literal number.
35624         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
35625         numbers.
35626
35627 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
35628
35629         * a-tasatt.adb,
35630         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
35631         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
35632         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
35633         5vtpopde.adb: Add missing 'constant' keywords.
35634
35635 2004-04-01  Javier Miranda  <miranda@gnat.com>
35636
35637         * par-ch4.adb: (P_Allocator): Code cleanup
35638
35639         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
35640         attribute.
35641
35642         * sinfo.ads: Complete documentation of previous change
35643
35644 2004-04-01  Pascal Obry  <obry@gnat.com>
35645
35646         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
35647         only on VMS.  This special handling was done because an old GNU/ld bug
35648         on Windows which has been fixed.
35649
35650 2004-04-01  GNAT Script  <nobody@gnat.com>
35651
35652         * Make-lang.in: Makefile automatically updated
35653
35654 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35655
35656         * decl.c (gnat_to_gnu_entity, make_type_from_size):
35657         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
35658         * trans.c (tree_transform, convert_with_check): Likewise.
35659         * utils.c (gnat_signed_or_unsigned_type): Likewise.
35660         (build_vms_descriptor, unchecked_convert): Likewise.
35661         * utils2.c (nonbinary_modular_operation): Likewise.
35662
35663 2004-03-29  Javier Miranda  <miranda@gnat.com>
35664
35665         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
35666         (Install_Null_Excluding_Check): Local subprogram that determines whether
35667         an access node requires a runtime access check and if so inserts the
35668         appropriate run-time check.
35669         (Apply_Access_Check): Call Install_Null_Excluding check if required
35670         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
35671
35672         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
35673
35674         * einfo.ads: Fix typo in comment
35675
35676         * exp_ch3.adb (Build_Assignment): Generate conversion to the
35677         null-excluding type to force the corresponding run-time check.
35678         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
35679         type to force the corresponding run-time check.
35680
35681         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
35682         the null-excluding type to force the corresponding run-time check.
35683
35684         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
35685         case of access types unless they have the null-excluding attribute.
35686
35687         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
35688         part.
35689
35690         * exp_util.ads: Fix typo in comment
35691
35692         * par.adb (P_Null_Exclusion): New subprogram
35693         (P_Subtype_Indication): New formal that indicates if the null-excluding
35694         part has been scanned-out and it was present
35695
35696         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
35697
35698         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
35699         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
35700         type to force the corresponding run-time check
35701         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
35702         components
35703         (Resolve_Array_Aggregate): Carry out some static checks
35704         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
35705
35706         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
35707         attribute must be set only if specified by means of the null-excluding
35708         part. In addition, we must also propagate the access-constant attribute
35709         if present.
35710         (Access_Subprogram_Declaration, Access_Type_Declaration,
35711         Analyze_Component_Declaration, Analyze_Object_Declaration,
35712         Array_Type_Declaration, Process_Discriminants,
35713         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
35714         and carry out some static checks.
35715         (Build_Derived_Access_Type): Set the null-excluding attribute
35716         (Derived_Type_Declaration, Process_Subtype): Carry out some static
35717         checks.
35718
35719         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
35720
35721         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
35722
35723         * sem_ch6.adb (Process_Formals): Carry out some static checks.
35724         (Set_Actual_Subtypes): Generate null-excluding subtype if the
35725         null-excluding part was present; it is not required to be done here in
35726         case of anonymous access types.
35727         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
35728         value.
35729
35730         * sem_res.adb (Resolve_Actuals): Carry out some static check
35731         (Resolve_Null): Allow null in anonymous access
35732
35733         * sinfo.adb: New subprogram Null_Exclusion_Present
35734         All_Present and Constant_Present available on access_definition nodes
35735
35736         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
35737         object_declaration, derived_type_definition, component_definition,
35738         discriminant_specification, access_to_object_definition,
35739         access_function_definition, allocator, access_procedure_definition,
35740         access_definition, parameter_specification, All_Present and
35741         Constant_Present flags available on access_definition nodes.
35742
35743 2004-03-29  Robert Dewar  <dewar@gnat.com>
35744
35745         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
35746         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
35747         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
35748         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
35749         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
35750         sem_prag.adb: Updates to handle multiple units/file
35751
35752         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
35753
35754         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
35755         sem_util.adb: Minor reformatting
35756
35757         * sem_ch12.adb: Add comment for previous change
35758
35759 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
35760
35761         * osint.adb (Executable_Prefix): Set Exec_Name to the current
35762         executable name when not initialized. Otherwise, use its current value.
35763
35764         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
35765         initialize it to another executable name than the current one. This
35766         allows to configure paths for an executable name (gnatmake) different
35767         from the current one (gnatdist).
35768
35769 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
35770
35771         * exp_ch6.adb (Expand_Call): A call to a function declared in the
35772         current unit cannot be inlined if it appears in the body of a withed
35773         unit, to avoid order of elaboration problems in gigi.
35774
35775         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
35776         information for protected (wrapper) operation as well, to simplify gdb
35777         use.
35778
35779         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
35780         protected body, indicate that the entity for the generated spec comes
35781         from source, to ensure that references are properly generated for it.
35782         (Build_Body_To_Inline): Do not inline a function that returns a
35783         controlled type.
35784
35785         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
35786         apply convention to homonyms that are declared explicitly.
35787
35788         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
35789         that renames an equality operator and the operands are overloaded,
35790         resolve them with the declared formal types, before rewriting as an
35791         operator.
35792
35793 2004-03-29  GNAT Script  <nobody@gnat.com>
35794
35795         * Make-lang.in: Makefile automatically updated
35796
35797 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
35798
35799         * memtrack.adb: Log realloc calls, which are treated as free followed
35800         by alloc.
35801
35802 2004-03-25  Vincent Celier  <celier@gnat.com>
35803
35804         * prj-makr.adb (Process_Directories): Detect when a file contains
35805         several units. Do not include such files in the config pragmas or
35806         in the naming scheme.
35807
35808         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
35809         Resolve links only when not in Trusted_Mode.
35810         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
35811         Do not resolve links for the display names.
35812
35813         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
35814         resolve links when computing the display names.
35815
35816 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
35817
35818         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
35819         attribute reference does not denote a subtype, it can be any
35820         expression that has a classwide type, potentially after an implicit
35821         dereference.  In particular, the prefix can be a view conversion for
35822         a classwide type (for which Is_Object_Reference holds), but it can
35823         also be a value conversion for an access-to-classwide type. In the
35824         latter case, there is an implicit dereference, and the original node
35825         for the prefix does not verify Is_Object_Reference.
35826
35827         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
35828         conversion of a discriminant-dependent component of a mutable object
35829         is one itself.
35830
35831 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
35832
35833         * freeze.adb (Freeze_Entity): When an inherited subprogram is
35834         inherited, has convention C, and has unconstrained array parameters,
35835         place the corresponding warning on the derived type declaration rather
35836         than the original subprogram.
35837
35838         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
35839         indication on renaming declaration, if formal has a box and actual
35840         is absent.
35841
35842         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
35843         determine whether to generate an implicit or explicit reference to
35844         the renamed entity.
35845
35846         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
35847         subprogram renaming comes from a defaulted formal subprogram in an
35848         instance.
35849
35850 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
35851
35852         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
35853         value expressions to ensure that calls within a component definition
35854         will be checked (since those are evaluated during the record type's
35855         elaboration).
35856
35857 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
35858
35859         * s-tpobop.adb: Code clean up:
35860         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
35861         code.
35862         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
35863
35864 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
35865
35866         * Makefile.in: Clean up in the ravenscar run time.
35867
35868 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35869
35870         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
35871         of No_Strict_Aliasing to build_pointer_type_for_mode.
35872         * utils.c (update_pointer_to): Walk pointer and ref chains.
35873
35874 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
35875
35876         * ali.ads: Fix Comment about Dynamic_Elab.
35877
35878         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
35879         Has_RACW, Is_Generic, etc.)
35880         (Output_Object, Gnatls): Take into account ALI files not attached to
35881         an object.
35882
35883 2004-03-22  Vincent Celier  <celier@gnat.com>
35884
35885         * gprep.adb: Change all String_Access to Name_Id
35886         (Is_ASCII_Letter): new function
35887         (Double_File_Name_Buffer): New procedure
35888         (Preprocess_Infile_Name): New procedure
35889         (Process_Files): New procedure
35890         (Gnatprep): Check if output and input are existing directories.
35891         Call Process_Files to do the real job.
35892
35893 2004-03-22  Robert Dewar  <dewar@gnat.com>
35894
35895         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
35896         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
35897
35898 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
35899
35900         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
35901         case when the source contains only comments.
35902
35903 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
35904
35905         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
35906         declaration for a child subprogram body that acts as a spec, indicate
35907         that the entity in the declaration needs debugging information.
35908
35909         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
35910         full view if the subtype is created for a constrained record component;
35911         gigi has enough information to construct the record, and there is no
35912         place in the tree for the declaration.
35913
35914         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
35915         serial number for the dummy body that is built for analysis, to avoid
35916         inconsistencies in the generation of internal names when compiling
35917         with -gnatN.
35918
35919 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
35920
35921         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
35922         object.
35923
35924 2004-03-22  GNAT Script  <nobody@gnat.com>
35925
35926         * Make-lang.in: Makefile automatically updated
35927
35928 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35929
35930         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
35931         * trans.c (tree_transform, emit_index_check): Likewise.
35932         * utils.c (build_template): Likewise.
35933         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
35934         (maybe_unconstrained_array, unchecked_convert): Likewise.
35935         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
35936         (build_unary_op): Likewise.
35937         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
35938         (fill_vms_descriptor): Likewise.
35939         (build_call_alloc_dealloc): Likewise.
35940         ALIGN is unsigned.
35941         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
35942
35943 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
35944
35945         PR other/14630
35946         * gnat_ug.texi: Add info directory category and entry.
35947         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
35948         gnat_ug_wnt.texi: Regenerate.
35949
35950 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
35951
35952         * ada-tree.h: Update copyright notice.
35953         Minor reformatting.
35954
35955 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
35956
35957         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
35958         as regular exception objects and not as mere integers representing the
35959         condition code.  The latter approach required some dynamics to mask off
35960         severity bits, which did not fit well into the GCC table based model.
35961         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
35962         exception data objects. We don't it and it would conflict with the other
35963         external symbol we have to generate for such exceptions.
35964
35965         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
35966         the special code for VMS exceptions, since these are now represented
35967         as regular exceptions objects.
35968
35969 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35970
35971         * decl.c (debug_no_type_hash): Remove.
35972         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
35973         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
35974
35975 2004-03-19  Laurent Guerby  <laurent@guerby.net>
35976
35977         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
35978         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
35979
35980 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35981
35982         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
35983         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
35984         (TYPE_RM_SIZE_INT): Directly use type.values.
35985         (TREE_LOOP_ID): Clean up check.
35986         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
35987         TYPE_VALUES, not TYPE_FIELDS.
35988         * trans.c (convert_with_check): Delay access of bounds of basetype
35989         until sure is numeric.
35990
35991 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
35992
35993         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
35994
35995         Code clean up:
35996         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
35997         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
35998         Specific.Set instead of direct call to e.g pthread_setspecific.
35999
36000 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
36001
36002         * adaint.c: Update comments.
36003
36004         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
36005         GNATLIB_SHARED for FreeBSD.
36006
36007 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
36008
36009         * init.c [VxWorks]: Do not fix the stack size for the environment task.
36010         When needed (stack checking) the stack size is retrieved
36011         from the VxWorks kernel.
36012
36013         * Makefile.in: Flag -nostdinc is required when building the run time
36014         for avoiding looking for files in the base compiler.
36015         Add the VxWorks specific version of the package body for
36016         System.Stack_checking.Operations (5zstchop.adb).
36017
36018         * Make-lang.in: Add the object file for
36019         System.Stack_Checking.Operations.
36020
36021         * Makefile.rtl: Add object file for the package
36022         System.Stack_Checking.Operations.
36023
36024         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
36025
36026         * s-stache.ads, s-stache.adb: Move the operations related to stack
36027         checking from this package to package System.Stack_Checking.Operations.
36028         This way, stack checking operations are only linked in the final
36029         executable when using the -fstack-check flag.
36030
36031 2004-03-18  Doug Rupp  <rupp@gnat.com>
36032
36033         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
36034         Reorganize ifeq's.
36035
36036         * 5qsystem.ads, 5xcrtl.ads: New files.
36037
36038 2004-03-18  Vincent Celier  <celier@gnat.com>
36039
36040         * prj.adb (Reset): Reset hash table Files_Htable
36041
36042         * prj-env.adb (Source_Paths, Object_Paths): New tables.
36043         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
36044         the procedures Add_To_Path_File.
36045         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
36046         making sure that each directory is present only once and, for object
36047         dirs, when a directory already present is added, the duplicate is
36048         removed and the directory is always put as the last in the table.
36049         Write the path files at the end of these accumulations.
36050
36051         * prj-nmsc.adb (Record_Source): Add source file name in hash table
36052         Files_Htable for all sources.
36053
36054         * prj-proc.adb (Process): Remove restrictions between not directly
36055         related extending projects.
36056
36057 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
36058
36059         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
36060         (Find_Sources): Minor speed optimization.
36061
36062         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
36063         parameter Trusted_Mode.
36064
36065 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
36066
36067         * scn.adb (Determine_License): Take into account a degenerated case
36068         when the source contains only comments.
36069
36070 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
36071
36072         * sem_warn.adb (Check_References): For a warning on a selected
36073         component that does not come from source, locate an uninitialized
36074         component of the record type to produce a more precise error message.
36075
36076 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
36077
36078         * 3zsoccon.ads: Fix multicast options.
36079
36080         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
36081         in the spec.
36082
36083 2004-03-15  Robert Dewar  <dewar@gnat.com>
36084
36085         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
36086         pragma used for a private type.
36087
36088         * lib-xref.adb (Generate_Reference): Do not generate warning if
36089         reference is in a different unit from the pragma Unreferenced.
36090
36091         * 5vtpopde.adb: Minor reformatting
36092         Fix casing of To_Task_ID
36093
36094         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
36095         flag if we have an unchecked conversion to an access type in the same
36096         unit.
36097
36098 2004-03-15  Geert Bosch  <bosch@gnat.com>
36099
36100         * a-ngcoty.adb (Modulus): In alternate formula for large real or
36101         imaginary parts, use Double precision throughout.
36102
36103         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
36104         we want to be able to compile run-time with -gnata for testing, but
36105         this may also be instantiated in user code that is compiled with -gnata.
36106
36107 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
36108
36109         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
36110         codes. Having a separate type for this is useful to enforce consistency
36111         throughout the various run-time units.
36112         (Exception_Data): Use Exception_Code for Import_Code.
36113
36114         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
36115         Natural and Integer in various places.
36116         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
36117         with the severity bits masked off.
36118         (Register_VMS_Exception): Handle the additional exception data pointer
36119         argument.
36120
36121         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
36122         component, now reflected by an exported accessor.
36123         (is_handled_by): New routine to compute whether the propagated
36124         occurrence matches some handler choice specification. Extracted out of
36125         get_action_description_for, and expanded to take care of the VMS
36126         specifities.
36127         (get_action_description_for): Use is_handled_by instead of an explicit
36128         complex condition to decide if the current choice at hand catches the
36129         propagated occurrence.
36130
36131         * raise.h (Exception_Code): New type for C.
36132
36133         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
36134         System.Standard_Library.Exception_Code, to allow references from the
36135         pragma import/export expander.
36136
36137         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
36138         New accessors to allow easy access to GNAT exception data
36139         characteristics.
36140         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
36141         redundant Handled_By_Others component, helper for the personality
36142         routine which will now be able to call the appropriate exception data
36143         accessor instead.
36144
36145         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
36146         component of Standard_Exception_Type to be the closest possible to
36147         Exception_Code in System.Standard_Library, that we cannot get at this
36148         point. Expand a ??? comment to notify that this type node should
36149         probably be rewritten later on.
36150
36151         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
36152         registration call to include a pointer to the exception object in the
36153         arguments.
36154
36155         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
36156         instead of int and explicit bitmasks.
36157
36158 2004-03-15  Vincent Celier  <celier@gnat.com>
36159
36160         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
36161         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
36162
36163         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
36164         longer needed now that it is in the spec of
36165         System.Tasking.Task_Attributes.
36166
36167         * adaint.h, adaint.c: (__gnat_create_output_file): New function
36168
36169         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
36170
36171         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
36172
36173         * make.adb (Gnatmake): Do not check the executable suffix; it is being
36174         taken care of in Scan_Make_Arg.
36175         (Scan_Make_Arg): Add the executable suffix only if the argument
36176         following -o, in canonical case, does not end with the executable
36177         suffix.  When in verbose mode and executable file name does not end
36178         with executable suffix, output the executable name, in canonical case.
36179
36180         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
36181         to avoid warnings when instantiating Ada.Task_Attributes.
36182         Minor reformating.
36183
36184         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
36185         in the correct order.
36186
36187         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
36188         redirect standard output and error to a file for the invocation of the
36189         compiler, then read the file.
36190
36191         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
36192         directory, instead of the Value.
36193         (Find_Source_Dirs): Remove useless code & comments.
36194
36195 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
36196
36197         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
36198         tagged type is inherited, and the parent operation is not frozen yet,
36199         force generation of a freeze node for the inherited operation, so the
36200         corresponding dispatch entry is properly initialized.
36201         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
36202         when looking for user-defined equality operation.
36203
36204         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
36205         boolean when locating primitive equality of tagged component.
36206
36207         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
36208         bit-aligned field and the right-hand side a string literal, introduce
36209         a temporary before expanding assignment into a loop.
36210
36211         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
36212         priority in full, to ensure that any expanded subepxressions of it are
36213         elaborated in the scope of the init_proc.
36214
36215         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
36216         after object declaration, skipping over code that may have been
36217         generated for validity checks.
36218
36219         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
36220         discriminants, ignore the known discriminants of its full view, if
36221         any, to check legality.
36222
36223         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
36224         component if type has unknown discriminants.
36225         (Analyze_Private_Extension_Declaration): Discriminant constraint is
36226         null if type has unknown discriminants.
36227
36228         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
36229         for end label when present.
36230
36231         * s-fileio.adb (Open): When called with a C_Stream, use given name for
36232         temporary file, rather than an empty string.
36233
36234 2004-03-15  Ed Falis  <falis@gnat.com>
36235
36236         * s-thread.adb: Removed, no longer used.
36237
36238 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36239
36240         * decl.c (target.h): Now include.
36241         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
36242         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
36243         (validate_size): For POINTER_TYPE, get smallest size permitted on
36244         machine.
36245
36246         * fe.h: Sort Einfo decls and add Set_Mechanism.
36247
36248         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
36249         (ada/decl.o): Depends on target.h.
36250
36251         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
36252         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
36253
36254 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
36255
36256         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
36257
36258         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
36259         Insert_Dereference_Action when rewriting an implicit dereference into
36260         an explicit one, this will be taken care of during expansion of the
36261         explicit dereference.
36262         (Expand_N_Slice): Same. Always do the rewriting, even for the case
36263         of non-packed slices, since the dereference action generated by
36264         expansion of the explicit dereference is needed in any case.
36265         (Expand_N_Selected_Component): When rewriting an implicit dereference,
36266         analyze and resolve the rewritten explicit dereference so it is seen
36267         by the expander.
36268         (Insert_Dereference_Action): This procedure is now called only for the
36269         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
36270         dereferences that do not come from source (including explicit
36271         dereferences resulting from rewriting implicit ones), but do not
36272         recursively insert a check for the dereference nodes contained within
36273         the check.
36274         (Insert_Dereference_Action): Clarify and correct comment.
36275
36276 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
36277
36278         PR ada/14131
36279         Move language detection to the top level.
36280         * config-lang.in: Build by default.
36281
36282 2004-03-05  Robert Dewar  <dewar@gnat.com>
36283
36284         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
36285
36286         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
36287         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
36288         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
36289         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
36290         unchecked conversion to spec to avoid warnings.
36291
36292         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
36293         to Task_ID
36294
36295         * 7stpopsp.adb: Correct casing in To_Task_ID call
36296
36297         * a-strsea.ads, a-strsea.adb: Minor reformatting
36298
36299         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
36300
36301         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
36302         Adjust Max_Msg_Length to be clearly large enough.
36303
36304         * fe.h: Define In_Same_Source_Unit
36305
36306         * osint.adb: Add pragma Warnings Off to suppress warnings
36307         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
36308         aliasing warnings.
36309
36310         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
36311
36312         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
36313
36314         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
36315
36316         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
36317
36318         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
36319
36320         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
36321         node. We now do generate them for gcc back end.
36322
36323         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
36324         warning.
36325
36326         * sinput-c.adb: Fix bad name in header.
36327         Add pragma Warnings Off to suppress aliasing warning.
36328
36329         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
36330
36331         * snames.h, snames.ads, snames.adb: Add entry for pragma
36332         No_Strict_Aliasing.
36333
36334 2004-03-05  Vincent Celier  <celier@gnat.com>
36335
36336         * prj-com.ads: Add hash table Files_Htable to check when a file name
36337         is already a source of another project.
36338
36339         * prj-nmsc.adb (Record_Source): Before recording a new source, check
36340         if its file name is not already a source of another project. Report an
36341         error if it is.
36342
36343         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
36344         source file name, call gnatpp with all the sources of the main project.
36345
36346         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
36347         of file names.
36348
36349         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
36350         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
36351         /RUNTIME_SYSTEM=, converted to --RTS=
36352         /NOTABS, converted to -notabs
36353
36354 2004-03-05  Pascal Obry  <obry@gnat.com>
36355
36356         * make.adb: Minor reformatting.
36357
36358 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
36359
36360         Part of implemention of AI-262.
36361         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
36362
36363         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
36364         procedure.
36365
36366         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
36367         when component type is a partially constrained class-wide subtype.
36368         (Constrain_Discriminated_Type): If parent type has unknown
36369         discriminants, a constraint is illegal, even if full view has
36370         discriminants.
36371         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
36372         with unknown discriminants whose full view is a discriminated record.
36373
36374         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
36375         flag, to handle properly derivations of tagged types with unknown
36376         discriminants.
36377         (Analyze_Package_Spec, Analyze_Package_Body): Install
36378         Private_With_Clauses before analyzing private part or body.
36379
36380         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
36381         Has_Discriminants can be true for a given type (documentation).
36382
36383 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
36384
36385         * s-restri.ads: Fix license (GPL->GMGPL).
36386
36387         * s-tassta.adb: Minor reformatting.
36388
36389         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
36390         by calls to Exit_One_ATC_Level, since additional clean up is performed
36391         by this function.
36392
36393         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
36394         by calls to Exit_One_ATC_Level, since additional clean up is performed
36395         by this function.
36396
36397 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36398
36399         * trans.c: Reflect GCC changes to fix bootstrap problem.
36400         Add warning for suspicious aliasing unchecked conversion.
36401
36402 2004-03-05  GNAT Script  <nobody@gnat.com>
36403
36404         * Make-lang.in: Makefile automatically updated
36405
36406 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
36407
36408         * ali.adb (Read_Instantiation_Instance): Do not modify the
36409         current_file_num when reading information about instantiations, since
36410         this corrupts files in later references.
36411
36412 2004-03-02  Vincent Celier  <celier@gnat.com>
36413
36414         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
36415         before checking if it is read-only.
36416
36417         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
36418         of SRC_DIRS and eliminate duplicates.
36419
36420         * gprcmd.adb: Replace command "path" with command "path_sep" to return
36421         the path separator.
36422         (Usage): Document path_sep
36423
36424         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
36425         C++ compiler. No need for a script.
36426         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
36427         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
36428         subst.
36429
36430         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
36431         where there are Ada sources.
36432         (Set_Ada_Paths): Only add to the include path the source dirs of project
36433         with Ada sources.
36434         (Add_To_Path): Add the Display_Values of the directories, not their
36435         Values.
36436
36437         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
36438         data.
36439
36440         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
36441         is not No_Name.
36442         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
36443         Value is canonicalized.
36444         (Language_Independent_Check): Do not copy Value to Display_Value when
36445         canonicalizing Value.
36446
36447         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
36448         path to find limited with cycles.
36449         (Parse_Single_Project): Use canonical cased path to find the end of a
36450         with cycle.
36451
36452 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
36453
36454         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
36455         and not a child unit.
36456
36457         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
36458         appear in a with_clause.
36459
36460         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
36461         only happen in type_annotate mode, do not try to elaborate it.
36462
36463         * exp_util.adb (Force_Evaluation): If expression is a selected
36464         component on the left of an assignment, use a renaming rather than a
36465         temporary to remove side effects.
36466
36467         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
36468         inlined instance body, which is analyzed before the end of the
36469         enclosing scope.
36470
36471 2004-03-02  Robert Dewar  <dewar@gnat.com>
36472
36473         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
36474         sem_ch4.adb: Use new feature for substitution of keywords in VMS
36475
36476         * errout.ads, errout.adb: Implement new circuit for substitution of
36477         keywords in VMS.
36478
36479         * sem_case.adb (Analyze_Choices): Place message properly when case is
36480         a subtype reference rather than an explicit range.
36481
36482         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
36483
36484 2004-03-02  Doug Rupp  <rupp@gnat.com>
36485
36486         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
36487
36488 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
36489
36490         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
36491
36492 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36493
36494         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
36495         BLKmode bitfield.
36496
36497 2004-02-25  Robert Dewar  <dewar@gnat.com>
36498
36499         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
36500         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
36501         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
36502         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
36503         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
36504         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
36505         the defining instance of the type to avoid aliasing problems.
36506         Fix copyright header.  Fix bad comments in package header.
36507
36508         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
36509
36510 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
36511
36512         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
36513         rewritten as references when aliased through an address clause.
36514
36515         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
36516         whether call can be interpreted as an indirect call to the result of a
36517         parameterless function call returning an access subprogram.
36518
36519 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
36520
36521         Code clean up:
36522         * exp_ch7.adb (Make_Clean): Remove generation of calls to
36523         Unlock[_Entries], since this is now done by Service_Entries directly.
36524
36525         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
36526
36527         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
36528         Requeue_Call for better code readability. Change spec and update calls:
36529         PO_Service_Entries now unlock the PO on exit.
36530         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
36531         PO_Service_Entries.
36532
36533         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
36534
36535         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
36536
36537 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
36538
36539         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
36540         protected subprogram call and analyzing the result of such expanding
36541         in case when the called protected subprogram is eliminated.
36542
36543         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
36544         names.
36545
36546 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
36547
36548         * Makefile.in: Clean ups.
36549
36550 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
36551
36552         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
36553         protected operations if original subprogram is flagged as eliminated.
36554         (Expand_N_Subprogram_Body): For a protected operation, create
36555         discriminals for next operation before checking whether the operation
36556         is eliminated.
36557
36558         * exp_ch9.adb (Expand_N_Protected_Body,
36559         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
36560         for internal protected operations if the original subprogram is
36561         eliminated.
36562
36563         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
36564         declared in a single protected object.
36565
36566 2004-02-23  Vincent Celier  <celier@gnat.com>
36567
36568         * prj-attr.adb: Make attribute Builder'Executable an associative array,
36569         case insensitive if file names are case insensitive, instead of a
36570         standard associative array.
36571
36572         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
36573         them as case insensitive on platforms where the file names are case
36574         sensitive.
36575
36576         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
36577         project file has already been parsed that canonical path are compared.
36578
36579 2004-02-23  Robert Dewar  <dewar@gnat.com>
36580
36581         * sinput-c.ads: Correct bad unit title in header
36582
36583         * freeze.adb: Minor reformatting
36584
36585 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36586
36587         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
36588         nonaddressable COMPONENT_REF that is removing padding that we are
36589         taking the address of, take the address of the padded record instead
36590         if item is variable size.
36591
36592 2004-02-20  Robert Dewar  <dewar@gnat.com>
36593
36594         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
36595
36596 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
36597
36598         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
36599         itype references for the constrained designated type of a component
36600         whose base type is already frozen.
36601
36602 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
36603
36604         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
36605         avoid GCC warnings.
36606
36607 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
36608
36609         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
36610         identifier for a phantom package that rewrites the formal package
36611         declaration with a box. The Add semantic decorations for the defining
36612         identifier from the original node (that represents the formal package).
36613
36614 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
36615
36616         * Make-lang.in (ada/stamp-sdefault): Use the top level
36617         move-if-change.
36618
36619 2004-02-19  Richard Henderson  <rth@redhat.com>
36620
36621         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
36622
36623 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
36624
36625         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
36626         Scan_ALI can be used for multiple ALI files without reinitializing
36627         between calls.
36628
36629 2004-02-18  Robert Dewar  <dewar@gnat.com>
36630
36631         * debug.adb: Minor reformatting.
36632
36633 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36634
36635         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
36636         to zero if there is an address clause.
36637
36638 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
36639
36640         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
36641
36642 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
36643
36644         * layout.adb (Layout_Component_List): Revise generation of call to
36645         discriminant-checking function to pass selections of all of the type's
36646         discriminants rather than just the variant-controlling discriminant.
36647
36648 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
36649
36650         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
36651         fail in the current setup and triggers spurious system error messages.
36652         Pretend it occurred and failed instead.
36653
36654 2004-02-18  Vincent Celier  <celier@gnat.com>
36655
36656         * bld.adb: Mark FLDFLAGS as saved
36657         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
36658         it is not the root project.  Put each directory to be
36659         extended between double quotes to prevent it to be expanded on Windows.
36660         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
36661         the project file. Set them back to their initial values if they have not
36662         been set in the project file.
36663
36664         * gprcmd.adb: (Gprdebug, Debug): New global variables
36665         (Display_Command): New procedure
36666         (Usage): Document new command "linkopts"
36667         Call Display_Command when env var GPRDEBUG has the value "TRUE"
36668         Implement new command "linkopts"
36669         Remove quotes that may be around arguments for "extend"
36670         Always call Normalize_Pathname with arguments formatted for the platform
36671
36672         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
36673         Change @echo to @$(display) in target clean to be able to clean silently
36674
36675         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
36676
36677         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
36678         canonical case.
36679
36680         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
36681         = Extending_All when current project is an extending all project.
36682
36683         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
36684         set to True only for LINK command, after Unix switch -o.
36685         (Process_Arguments): Set Output_File_Expected to True for LINK command
36686         after Unix switch -o. When Output_File_Expected is True, never add an
36687         extension to a file name.
36688
36689         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
36690         option file name, only to the --for-linker= switch.
36691         (Option_File_Name): If option file name do not end with ".opt", append
36692         "/OPTIONS".
36693
36694 2004-02-18  GNAT Script  <nobody@gnat.com>
36695
36696         * Make-lang.in: Makefile automatically updated
36697
36698 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
36699
36700         * Make-lang.in (stamp-sdefault): Do not depend on
36701         move-if-change.
36702
36703 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
36704
36705         * config-lang.in: Disable Ada by default until probe logic for
36706         a bootstrap Ada compiler can be moved to the top level configure
36707         script.
36708
36709 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
36710
36711         * decl.c (components_to_record): Don't claim that the internal fields
36712         we make to hold the variant parts are semantically addressable, because
36713         they are not.
36714
36715         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
36716         adjust the comment describing the modular type form when we can use it.
36717         (Install_PAT): Account for the Esiz renaming.
36718
36719         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
36720         sc_onstack context indication before raising the exception to which
36721         the signal is mapped. Allows better handling of later signals possibly
36722         triggered by the resumed user code if the exception is handled.
36723
36724 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
36725
36726         * 5zinit.adb: Removed, no longer used.
36727
36728 2004-02-12  Robert Dewar  <dewar@gnat.com>
36729
36730         * ali.adb: Remove separating space between parameters on R line. Makes
36731         format consistent with format used by the binder for Set_Globals call.
36732
36733         * atree.ads, atree.adb: Minor reformatting (new function header format)
36734
36735         * bindgen.adb: Add Run-Time Globals documentation section containing
36736         detailed documentation of the globals passed from the binder file to
36737         the run time.
36738
36739         * gnatls.adb: Minor reformatting
36740
36741         * init.c (__gnat_set_globals): Add note pointing to documentation in
36742         bindgen.
36743
36744         * lib-writ.ads, lib-writ.adb: Remove separating space between
36745         parameters on R line.
36746         Makes format consistent with format used by the binder for Set_Globals
36747         call.
36748
36749         * osint.ads: Add 2004 to copyright notice
36750         Minor reformatting
36751
36752         * snames.ads: Correct capitalization of FIFO_Within_Priorities
36753         Noticed during code reading, documentation issue only
36754
36755         * usage.adb: Remove junk line for obsolete C switch
36756         Noticed during code reading
36757
36758 2004-02-12  Vincent Celier  <celier@gnat.com>
36759
36760         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
36761         extend for each directory, so that multiple /** directories are
36762         extended individually.
36763         (Recursive_Process): Set the default for LANGUAGES to ada
36764
36765         * gprcmd.adb: Define new command "ignore", to do nothing.
36766         Implement new comment "path".
36767
36768         * Makefile.generic: Suppress output when SILENT is set
36769         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
36770         used, so that the correct compiler is invoked.
36771         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
36772         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
36773
36774 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
36775
36776         * Makefile.in: Clean ups and remove obsolete targets.
36777
36778 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
36779
36780         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
36781         predicate declared in exp_util.
36782
36783         * exp_util.adb: Add comments.
36784
36785         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
36786         visibility before compiling context of the subunit.
36787
36788         * sem_res.adb (Check_Parameterless_Call): If the context expects a
36789         value but the name is a procedure, do not attempt to analyze as a call,
36790         in order to obtain more telling diagnostics.
36791
36792         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
36793         'Access on parameterless function calls.
36794         (Normalize_Actuals): For a parameterless function call with missing
36795         actuals, defer diagnostic until resolution of enclosing call.
36796
36797         * sem_util.adb (Wrong_Type): If the context type is an access to
36798         subprogram and the expression is a procedure name, suggest a missing
36799         'attribute.
36800
36801 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
36802             Nathanael Nerode  <neroden@gcc.gnu.org>
36803
36804         PR ada/6637
36805         PR ada/5911
36806         Merge with libada-branch:
36807         * config-lang.in: Build libada only when ada is built.
36808
36809 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
36810
36811         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
36812         for a tagged type, verify that both formals have the same type.
36813
36814         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
36815         temporary when the formal is an in-parameter and the actual a possibly
36816         unaligned slice.
36817
36818         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
36819         when expansion is disabled, to ensure proper name capture with
36820         overloaded literals.  Condition can be of any boolean type, resolve
36821         accordingly.
36822
36823         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
36824         renaming is for a formal subprogram with a default operator name, and
36825         there is a usable operator that is visible at the point of
36826         instantiation.
36827
36828 2004-02-09  Robert Dewar  <dewar@gnat.com>
36829
36830         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
36831         rewrite to ignore errors in ali files, intended to allow tools downward
36832         compatibility with new versions of ali files.
36833
36834         * ali.ads: Add new parameter Ignore_Errors
36835
36836         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
36837         duplicating the error message giving the file with restrictions.
36838
36839         * debug.adb: Add debug flag I for gnatbind
36840
36841         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
36842         operators for the case where the operator is a defining operator.
36843
36844         * exp_ch3.adb: Minor reformatting (new function spec format).
36845
36846         * exp_ch4.adb: Add comment for previous change, and make minor
36847         adjustment to loop to always check for improper loop termination.
36848         Minor reformatting throughout (new function spec format).
36849
36850         * gnatbind.adb: Implement -di debug flag for gnatbind
36851
36852         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
36853
36854         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
36855
36856         * lib-load.adb: Fix bad assertion.
36857         Found by testing and code reading.
36858         Minor reformatting.
36859
36860         * lib-load.ads: Minor reformatting.
36861
36862         * lib-writ.adb: There is only one R line now.
36863
36864         * lib-writ.ads: Add documentation on making downward compatible changes
36865         to ali files so old tools work with new ali files.
36866         There is only one R line now.
36867         Add documentation on format incompatibilities (with special GPS note)
36868
36869         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
36870
36871         * par-load.adb: Minor reformatting
36872
36873         * sem_ch8.adb: Fix to error message from last update
36874         Minor reformatting and restructuring of code from last update
36875
36876         * par-prag.adb, snames.adb, snames.ads, snames.h,
36877         sem_prag.adb: Implement pragma Profile.
36878
36879         * stylesw.adb: Implement -gnatyN switch to turn off all style check
36880         options.
36881
36882         * usage.adb: Add line for -gnatyN switch
36883
36884         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
36885
36886 2004-02-09  Albert Lee  <lee@gnat.com>
36887
36888         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
36889
36890 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
36891
36892         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
36893         slices.
36894
36895         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
36896         is nested in an instance that is not frozen yet, to avoid
36897         order-of-elaboration problems in gigi.
36898
36899         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
36900         body the attribute is legal.
36901
36902 2004-02-09  Robert Dewar  <dewar@gnat.com>
36903
36904         * s-rident.ads: Minor comment correction
36905
36906         * targparm.adb: Remove dependence on uintp completely. There was
36907         always a bug in Make in that it called Targparm before initializing
36908         the Uint package. The old code appeared to get away with this, but
36909         the new code did not! This caused an assertion error in gnatmake.
36910
36911         * targparm.ads: Fix bad comment, restriction pragmas with parameters
36912         are indeed fully supported.
36913
36914 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
36915
36916         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
36917
36918 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
36919
36920         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
36921         with targetm.calls.promote_prototypes.
36922
36923 2004-02-04  Robert Dewar  <dewar@gnat.com>
36924
36925         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
36926         ali.ads, gprcmd.adb: Minor reformatting
36927
36928         * bindgen.adb: Output restrictions string for new style restrictions
36929         handling
36930
36931         * impunit.adb: Add s-rident.ads (System.Rident) and
36932         s-restri (System.Restrictions)
36933
36934         * lib-writ.adb: Fix bug in writing restrictions string (last few
36935         entries wrong)
36936
36937         * s-restri.ads, s-restri.adb: Change name Restrictions to
36938         Run_Time_Restrictions to avoid conflict with package name.
36939         Add circuit to read and acquire run time restrictions.
36940
36941 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
36942
36943         * restrict.ads, restrict.adb: Use the new restriction
36944         No_Task_Attributes_Package instead of the old No_Task_Attributes.
36945
36946         * sem_prag.adb: No_Task_Attributes is a synonym of
36947         No_Task_Attributes_Package.
36948
36949         * snames.ads, snames.adb: New entry for proper handling of
36950         No_Task_Attributes.
36951
36952         * s-rident.ads: Adding restriction No_Task_Attributes_Package
36953         (AI-00249) that supersedes the GNAT specific restriction
36954         No_Task_Attributes.
36955
36956 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
36957
36958         * sem_prag.adb:
36959         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
36960          body, an identifier may be wrapped in an unchecked conversion.
36961
36962 2004-02-04  Vincent Celier  <celier@gnat.com>
36963
36964         * lib-writ.ads: Comment update for the W lines
36965
36966         * bld.adb: (Expression): An empty string list is static
36967
36968         * fname-uf.adb: Minor comment update
36969
36970         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
36971
36972         * gnatbind.adb: Initialize Cumulative_Restrictions with the
36973         restrictions on the target.
36974
36975 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
36976
36977         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
36978         gen_rtx.
36979
36980 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
36981
36982         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
36983
36984 2004-02-02  Vincent Celier  <celier@gnat.com>
36985
36986         * gprcmd.adb (Check_Args): If condition is false, print the invoked
36987         comment before the usage.
36988         Gprcmd: Fail when command is not recognized.
36989         (Usage): Document command "prefix"
36990
36991         * g-md5.adb (Digest): Process last block.
36992         (Update): Do not process last block. Store remaining characters and
36993         length in Context.
36994
36995         * g-md5.ads (Update): Document that several call to update are
36996         equivalent to one call with the concatenated string.
36997         (Context): Add fields to allow new Update behaviour.
36998
36999         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
37000         defaulted to False.
37001         When May_Fail is True and no existing file can be found, return No_File.
37002
37003         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
37004         functions.
37005
37006         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
37007         spec file name instead on the W line.
37008
37009 2004-02-02  Robert Dewar  <dewar@gnat.com>
37010
37011         * ali.adb: Read and acquire info from new format restrictions lines
37012
37013         * bcheck.adb: Add circuits for checking restrictions with parameters
37014
37015         * bindgen.adb: Output dummy restrictions data
37016         To be changed later
37017
37018         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
37019         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
37020         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
37021         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
37022         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
37023
37024         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
37025         the warning message on access to possibly uninitialized variable S)
37026         Minor changes for new restrictions handling.
37027
37028         * gnatbind.adb: Minor reformatting
37029         Minor changes for new restrictions handling
37030         Move circuit for -r processing here from bcheck (cleaner)
37031
37032         * gnatcmd.adb, gnatlink.adb: Minor reformatting
37033
37034         * lib-writ.adb: Output new format restrictions lines
37035
37036         * lib-writ.ads: Document new R format lines for new restrictions
37037         handling.
37038
37039         * s-restri.ads/adb: New files
37040
37041         * Makefile.rtl: Add entry for s-restri.ads/adb
37042
37043         * par-ch3.adb: Fix bad error messages starting with upper case letter
37044         Minor reformatting
37045
37046         * restrict.adb: Major rewrite throughout for new restrictions handling
37047         Major point is to handle restrictions with parameters
37048
37049         * restrict.ads: Major changes in interface to handle restrictions with
37050         parameters. Also generally simplifies setting of restrictions.
37051
37052         * snames.ads/adb: New entry for proper handling of No_Requeue
37053
37054         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
37055         restriction counting.
37056         Other minor changes for new restrictions handling
37057
37058         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
37059         Restriction_Warnings now allows full parameter notation
37060         Major rewrite of Restrictions for new restrictions handling
37061
37062 2004-02-02  Javier Miranda  <miranda@gnat.com>
37063
37064         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
37065         syntax rule for object renaming declarations.
37066         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
37067         component definitions.
37068
37069         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
37070         components.
37071         (Array_Type_Declaration): Give support to access components. In addition
37072         it was also modified to reflect the name of the object in anonymous
37073         array types. The old code did not take into account that it is possible
37074         to have an unconstrained anonymous array with an initial value.
37075         (Check_Or_Process_Discriminants): Allow access discriminant in
37076         non-limited types.
37077         (Process_Discriminants): Allow access discriminant in non-limited types
37078         Initialize the new Access_Definition field in N_Object_Renaming_Decl
37079         node.  Change Ada0Y to Ada 0Y in comments
37080
37081         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
37082         equality operators.
37083         Change Ada0Y to Ada 0Y in comments
37084
37085         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
37086         renamings Change Ada0Y to Ada 0Y in comments
37087
37088         * sem_type.adb (Find_Unique_Type): Give support to the equality
37089         operators for universal access types
37090         Change Ada0Y to Ada 0Y in comments
37091
37092         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
37093
37094         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
37095         field.
37096         (N_Object_Renaming_Declaration): Addition of Access_Definition field
37097         Change Ada0Y to Ada 0Y in comments
37098
37099         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
37100         component definition and object renaming nodes
37101         Change Ada0Y to Ada 0Y in comments
37102
37103 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
37104
37105         * restrict.adb: Use the new restriction identifier
37106         No_Requeue_Statements instead of the old No_Requeue for defining the
37107         restricted profile.
37108
37109         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
37110         No_Requeue_Statements.
37111
37112         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
37113         that supersedes the GNAT specific restriction No_Requeue. The later is
37114         kept for backward compatibility.
37115
37116 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
37117
37118         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
37119         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
37120         pragma and fix incorrect ones.
37121
37122         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
37123         warning if the pragma is redundant.
37124
37125 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
37126
37127         * 5staprop.adb: Add missing 'constant' keywords.
37128
37129         * Makefile.in: use consistent value for SYMLIB on
37130         platforms where libaddr2line is supported.
37131
37132 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37133
37134         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
37135         annotating types.
37136
37137 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
37138
37139         * init.c (__gnat_install_handler): Setup an alternate stack for signal
37140         handlers in the environment thread. This allows proper propagation of
37141         an exception on stack overflows in this thread even when the builtin
37142         ABI stack-checking scheme is used without support for a stack reserve
37143         region.
37144
37145         * utils.c (create_field_decl): Augment the head comment about bitfield
37146         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
37147         here, because the former is not accurate enough at this point.
37148         Let finish_record_type decide instead.
37149         Don't make a bitfield if the field is to be addressable.
37150         Always set a size for the field if the record is packed, to ensure the
37151         checks for bitfield creation are triggered.
37152         (finish_record_type): During last pass over the fields, clear
37153         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
37154         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
37155         from DECL_BIT_FIELD.
37156
37157 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
37158
37159         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
37160         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
37161         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
37162
37163 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
37164
37165         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
37166
37167         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
37168         (ZCX_By_Default): Likewise.
37169         (Front_End_ZCX_Support): Likewise.
37170
37171         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
37172         (Initialize_Lock): Mark Level unreferenced.
37173         (Sleep): Mark Reason unreferenced.
37174         (Timed_Sleep): Likewise.
37175         (Wakeup): Likewise.
37176         (Exit_Task): Use Result.
37177         (Check_No_Locks): Mark Self_ID unreferenced.
37178
37179         * 5gtasinf.adb (New_Sproc): Make Attr constant.
37180         (Bound_Thread_Attributes): Make Sproc constant.
37181         (New_Bound_Thread_Attributes): Likewise.
37182
37183 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
37184
37185         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
37186         one-dimensional array an slice assignments, when component type is
37187         controlled.
37188
37189         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
37190         component type is controlled, and control_actions are in effect, use
37191         TSS procedure rather than generating inline code.
37192
37193         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
37194         arrays with controlled components.
37195
37196 2004-01-26  Vincent Celier  <celier@gnat.com>
37197
37198         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
37199         command line for the non VMS case.
37200
37201         * gnatlink.adb (Process_Binder_File): When building object file, if
37202         GNU linker is used, put all object paths between quotes, to prevent ld
37203         error when there are unusual characters (such as '!') in the paths.
37204
37205         * Makefile.generic: When there are sources in Ada and the main is in
37206         C/C++, invoke gnatmake with -B, instead of -z.
37207
37208         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
37209         from VMS_Conversion.
37210         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
37211         specification of argument file on the command line.
37212
37213 2004-01-26  Bernard Banner  <banner@gnat.com>
37214
37215         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
37216
37217 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
37218
37219         * snames.adb: Update copyright notice.
37220         Add info on slice assignment for controlled arrays.
37221
37222 2004-01-23  Robert Dewar  <dewar@gnat.com>
37223
37224         * exp_aggr.adb: Minor reformatting
37225
37226         * exp_ch9.adb: Minor code clean up
37227         Minor reformatting
37228         Fix bad character in comment
37229
37230         PR ada/13471
37231         * targparm.adb (Get_Target_Parameters): Give clean abort error on
37232         unexpected end of file, along with more detailed message.
37233
37234 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37235
37236         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
37237         PAT.
37238
37239         * decl.c (copy_alias_set): New function.
37240         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
37241
37242 2004-01-23  Doug Rupp  <rupp@gnat.com>
37243
37244         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
37245         lib$${file} in case subsequent character is not a separator.
37246
37247 2004-01-23  Vincent Celier  <celier@gnat.com>
37248
37249         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
37250         when the GCC version is at least 3.
37251
37252         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
37253         Remove all "Opt.", to prepare for opt split
37254
37255         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
37256         Extends_All. Set to True when the project parsed is an extending all
37257         project. Fails for importing an extending all project only when the
37258         imported project is an extending all project.
37259         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
37260         depending on the value of Extends_All returned.
37261
37262         * prj-proc.adb (Process): Check that no project shares its object
37263         directory with a project that extends it, directly or indirectly,
37264         including a virtual project.
37265         Check that no project extended by another project shares its object
37266         directory with another also extended project.
37267
37268         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
37269         Kind = N_With_Clause
37270
37271         * prj-tree.ads: Minor reformatting
37272         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
37273
37274 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
37275
37276         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
37277         applies to a type with an incomplete view, use full view in Name of
37278         clause, for consistency with uses of Get_Attribute_Definition_Clause.
37279
37280 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
37281
37282         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
37283         SCHED_RR, since other values are not supported by this policy.
37284         (Initialize): Move initialization of mutex attribute to package
37285         elaboration, to prevent early access to this variable.
37286
37287         * Makefile.in: Remove mention of Makefile.adalib, unused.
37288
37289         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
37290         1ssecsta.ads: Removed, unused.
37291
37292 2004-01-21  Javier Miranda  <miranda@gnat.com>
37293
37294         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
37295         entity if already built in the current scope.
37296
37297         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
37298         reminder in internal scopes. Required for nested limited aggregates.
37299
37300 2004-01-21  Doug Rupp  <rupp@gnat.com>
37301
37302         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
37303         VMS. Replace all occurences of libgnat- and libgnarl- with
37304         libgnat$(hyphen) and libgnarl$(hyphen).
37305         Fixed shared library build problem on VMS.
37306
37307 2004-01-21  Robert Dewar  <dewar@gnat.com>
37308
37309         * mlib-prj.adb: Minor reformatting
37310
37311 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
37312
37313         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
37314         'constant' keywords for declaration of pointers that are not modified.
37315
37316         * exp_pakd.adb: Fix English in comment.
37317
37318 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
37319
37320         PR ada/10889
37321         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
37322         copy all attributes of the parent, including the foreign language
37323         convention.
37324
37325 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
37326
37327         PR ada/10565
37328         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
37329         for 'delay until' statement.
37330
37331 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
37332
37333         * Make-lang.in: Replace $(docdir) with doc.
37334         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
37335         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
37336         to use consistent MAKEINFO rule.
37337         (ada.man, ada.srcman): Dummy entry.
37338         (ADA_INFOFILES): Define.
37339         (ada.info, ada.srcinfo): New rules.
37340
37341 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
37342
37343         * utils.c: Update copyright notice, missed in previous change.
37344
37345 2004-01-19  Vincent Celier  <celier@gnat.com>
37346
37347         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
37348         args if Bind is True. Set First_ALI, if not already done.
37349         (Build_Library): For Stand Alone Libraries, extract from one ALI file
37350         an eventual --RTS switch, for gnatbind, and all backend switches +
37351         --RTS, for linking.
37352
37353 2004-01-19  Robert Dewar  <dewar@gnat.com>
37354
37355         * sem_attr.adb, memtrack.adb: Minor reformatting
37356
37357 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
37358
37359         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
37360         that rename enumeration literals. This is properly done in sem_eval.
37361
37362         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
37363         to functions that rename enumeration literals.
37364
37365         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
37366         functions that rename enumeration literals.
37367
37368 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
37369
37370         * Make-lang.in (utils.o): Depend on target.h.
37371         * utils.c: Include target.h.
37372         (process_attributes): Use targetm.have_named_sections instead
37373         of ASM_OUTPUT_SECTION_NAME.
37374
37375 2004-01-16  Andreas Jaeger  <aj@suse.de>
37376
37377         * Makefile.in: Add $(DESTDIR).
37378
37379 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
37380
37381         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
37382         also when not defining if a Size clause applies. That information is
37383         not to be ignored.
37384
37385 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
37386
37387         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
37388         symbolic links for the shared gnat run time when needed.
37389
37390 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
37391
37392         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
37393         for writing, and terminate with an error message if not.
37394
37395 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
37396
37397         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
37398         warning on an access to subprogram in an instance, when the target
37399         type is declared in the same generic unit.
37400         (Eval_Attribute): If 'access is known to fail accessibility check,
37401         rewrite as a raise statement.
37402
37403 2004-01-15  GNAT Script  <nobody@gnat.com>
37404
37405         * Make-lang.in: Makefile automatically updated
37406
37407 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
37408
37409         * Make-lang.in (ada.srcextra): Dummy entry.
37410
37411 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
37412
37413         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
37414
37415 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
37416
37417         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
37418         components that are initialized with aggregates.
37419
37420 2004-01-13  Vincent Celier  <celier@gnat.com>
37421
37422         * gnatlink.adb (Process_Binder_File): To find directory of shared
37423         libgcc, if "gcc-lib" is not a subdirectory, look for the last
37424         subdirectory "lib" in the path of the shared libgnat or libgnarl.
37425
37426         * make.adb (Gnatmake): If GCC version is at least 3, link with
37427         -shared-libgcc, when there is at least one shared library project.
37428
37429         * opt.ads (GCC_Version): New integer constant.
37430
37431         * adaint.c (get_gcc_version): New function.
37432
37433 2004-01-13  Robert Dewar  <dewar@gnat.com>
37434
37435         * sem_dist.adb, sem_res.adb, sem_util.adb,
37436         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
37437         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
37438
37439 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
37440
37441         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
37442         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
37443         declarations.
37444
37445 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
37446
37447         * misc.c: Remove trailing spaces.
37448         Update copyright notice missed in previous change.
37449
37450         PR ada/13572
37451         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
37452         prefix/share/make
37453
37454         * Makefile.generic: Update copyright.
37455         Add license notice.
37456
37457         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
37458         of prefix/share/make.
37459
37460         * Makefile.prolog: Update copyright.
37461         Add license notice.
37462
37463 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
37464
37465         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
37466         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
37467         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
37468         instead of String.
37469
37470         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
37471         signature.
37472
37473 2004-01-12  Javier Miranda  <miranda@gnat.com>
37474
37475         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
37476         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
37477         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
37478         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
37479         Component_Definition node.
37480
37481 2004-01-12  Ed Falis  <falis@gnat.com>
37482
37483         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
37484
37485 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
37486
37487         * link.c: Change default libgnat kind to STATIC for FreeBSD.
37488
37489 2004-01-12  Bernard Banner  <banner@gnat.com>
37490
37491         * Makefile.in: map 86numaux to a-numaux for x86_64
37492
37493 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
37494
37495         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
37496         generated to rename a generic actual, go to the actual itself, the
37497         subtype is not a user-visible entity.
37498
37499         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
37500         part is a private subtype, reset the visibility of its full view, if
37501         any, to be consistent.
37502
37503         PR ada/13417
37504         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
37505         to use a generic package G as a formal package for another generic
37506         declared within G.
37507
37508 2004-01-12  Robert Dewar  <dewar@gnat.com>
37509
37510         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
37511
37512         * usage.adb: Remove mention of obsolete -gnatwb switch
37513         Noticed during code reading
37514
37515 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
37516
37517         * 1ssecsta.adb: Minor changes for -gnatwa warnings
37518
37519 2004-01-12  GNAT Script  <nobody@gnat.com>
37520
37521         * Make-lang.in: Makefile automatically updated
37522
37523 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
37524
37525         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
37526
37527 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
37528
37529         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
37530
37531 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
37532
37533         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
37534         Update comment and copyright date.
37535         * stamp-xgnatug: Delete.
37536
37537 2004-01-05  Robert Dewar  <dewar@gnat.com>
37538
37539         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
37540         be modified by the binder generated main program if the -D switch is
37541         used.
37542
37543         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
37544         imported functions (since now we expect this to be done for imported
37545         functions)
37546
37547         * 5vtaprop.adb: Add several ??? for sections requiring more comments
37548         Minor reformatting throughout
37549
37550         * 5zinit.adb: Minor reformatting
37551         Add 2004 to copyright date
37552         Minor changes to avoid -gnatwa warnings
37553         Correct some instances of using OR instead of OR ELSE (noted while
37554         doing reformatting)
37555
37556         * sprint.adb: Minor updates to avoid -gnatwa warnings
37557
37558         * s-secsta.ads, s-secsta.adb:
37559         (SS_Get_Max): New function to obtain high water mark for ss stack
37560         Default_Secondary_Stack is not a constant since it may be modified by
37561         the binder generated main program if the -D switch is used.
37562
37563         * switch-b.adb: New -Dnnn switch for binder
37564
37565         * switch-c.adb:
37566         Make -gnatg imply all warnings currently in -gnatwa
37567
37568         * vms_conv.adb: Minor reformatting
37569         Add 2004 to copyright notice
37570         Add 2004 to printed copyright notice
37571
37572         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
37573         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
37574         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
37575         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
37576         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
37577         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
37578         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
37579         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
37580         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
37581         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
37582         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
37583         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
37584         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
37585         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
37586         checks.adb, clean.adb, cstand.adb, einfo.ads,
37587         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
37588         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
37589         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
37590         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
37591         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
37592         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
37593         Minor reformatting and code clean ups.
37594         Minor changes to prevent -gnatwa warnings
37595
37596         * ali.adb: Minor reformatting and cleanup of code
37597         Acquire new SS indication of secondary stack use from ali files
37598
37599         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
37600         (since now we expect this to be done for imported functions)
37601
37602         * bindgen.adb: Generate call to modify default secondary stack size if
37603         -Dnnn switch given
37604
37605         * bindusg.adb: Add line for new -D switch
37606
37607         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
37608         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
37609         Add circuitry for both records and arrays to avoid gigi
37610         processing if the type involved has non-bit-aligned components
37611
37612         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
37613         N_String_Literal node always references an E_String_Literal_Subtype
37614         entity. This may not be true in the future.
37615         (Possible_Bit_Aligned_Component): Move processing of
37616         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
37617
37618         * exp_ch6.adb (Expand_Thread_Body): Pick up
37619         Default_Secondary_Stack_Size as variable so that we get value modified
37620         by possible -Dnnn binder parameter.
37621
37622         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
37623         (Type_May_Have_Bit_Aligned_Components): New function.
37624
37625         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
37626         (Type_May_Have_Bit_Aligned_Components): New function.
37627
37628         * fe.h: (Set_Identifier_Casing): Fix prototype.
37629         Add declaration for Sem_Elim.Eliminate_Error_Msg.
37630         Minor reformatting.
37631
37632         * freeze.adb (Freeze_Entity): Add RM reference to error message about
37633         importing constant atomic/volatile objects.
37634         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
37635         unless explicit Pure_Function pragma given, to avoid insidious bug of
37636         call to non-pure imported function getting eliminated.
37637
37638         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
37639         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
37640         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
37641         Add 2004 to printed copyright notice
37642
37643         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
37644         stack used.
37645
37646         * Makefile.rtl: Add entry for g-sestin.o
37647         g-sestin.ads: New file.
37648
37649         * mdll.adb: Minor changes to avoid -gnatwa warnings
37650
37651         * mlib-tgt.adb: Minor reformatting
37652
37653         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
37654         New switch Sec_Stack_Used (GNAT, GNATBIND)
37655         Make Default_Secondary_Stack_Size a variable instead of a constant,
37656         so that it can be modified by the new -Dnnn bind switch.
37657
37658         * rtsfind.adb (Load_Fail): Give full error message in configurable
37659         run-time mode if all_errors mode is set. This was not done in the case
37660         of a file not found, which was an oversight.
37661         Note if secondary stack unit is used by compiler.
37662
37663         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
37664         ineffective elaborate all pragmas on non-visible packages (this
37665         happened when a renamed subprogram was called). Now the elaborate all
37666         always goes on the package containing the renaming rather than the one
37667         containing the renamed subprogram.
37668
37669         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
37670         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
37671
37672         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
37673         has an Etype that references an E_String_Literal.
37674         (Eval_String_Literal): Avoid assumption that N_String_Literal node
37675         always references an E_String_Literal_Subtype entity. This may not
37676         be true in the future.
37677
37678         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
37679         pragma location.
37680
37681         * sem_res.adb (Resolve): Specialize msg for function name used in proc
37682         call.
37683
37684 2004-01-05  Ed Falis  <falis@gnat.com>
37685
37686         * g-debuti.adb: Replaced direct boolean operator with short-circuit
37687         form.
37688
37689 2004-01-05  Vincent Celier  <celier@gnat.com>
37690
37691         * bld.adb: Minor comment updates
37692         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
37693         of Item_Name).
37694
37695         * make.adb (Gnatmake): Special process for files to compile/check when
37696         -B is specified. Fail when there are only foreign mains in attribute
37697         Main of the project file and -B is not specified. Do not skip bind/link
37698         steps when -B is specified.
37699
37700         * makeusg.adb: Document new switch -B
37701
37702         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
37703
37704         * switch-m.adb: (Scan_Make_Switches): Process -B switch
37705
37706         * vms_data.ads: Add new GNAT PRETTY qualifier
37707         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
37708
37709 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37710
37711         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
37712         case.
37713
37714         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
37715         Set_Identifier_Casing.
37716
37717         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
37718         has size that overflows.
37719
37720 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
37721
37722         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
37723         -gnatwa warning on static condition.
37724
37725 2004-01-05  Doug Rupp  <rupp@gnat.com>
37726
37727         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
37728
37729 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
37730
37731         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
37732         all attributes, including read-only attribute.
37733
37734 2004-01-05  Pascal Obry  <obry@gnat.com>
37735
37736         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
37737         library naming scheme.
37738
37739         * mlib-prj.adb (Build_Library): Generate different names for the static
37740         or dynamic version of the GNAT runtime. This is needed to support the
37741         new shared library naming scheme.
37742         (Process_Binder_File): Add detection of shared library in binder file
37743         based on the new naming scheme.
37744
37745         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
37746         scheme for the shared runtime libraries.
37747
37748         * Makefile.in:
37749         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
37750         scheme.
37751         (install-gnatlib): Do not create symlinks for shared libraries.
37752         (gnatlib-shared-default): Idem.
37753         (gnatlib-shared-dual-win32): New target. Not used for now as the
37754         auto-import feature does not support arrays/records.
37755         (gnatlib-shared-win32): Do not create copy for the shared libraries.
37756         (gnatlib-shared-vms): Fix shared runtime libraries names.
37757
37758         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
37759         dependent runtime shared library name.
37760
37761 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
37762
37763         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
37764         than the object.
37765
37766 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
37767
37768         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
37769         protected objects when allocator has a subtype indication, not a
37770         qualified expression. Note that qualified expressions may have to be
37771         checked when limited aggregates are implemented.
37772
37773         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
37774         pure, emit warning.
37775         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
37776         subprogram is imported, remove warning.
37777
37778 2004-01-05  Geert Bosch  <bosch@gnat.com>
37779
37780         * s-poosiz.adb: Update copyright notice.
37781         (Allocate): Use Task_Lock to protect against concurrent access.
37782         (Deallocate): Likewise.
37783
37784 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
37785
37786         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
37787         comment.
37788
37789 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
37790
37791         * gnat_ug.texi: Force a CVS commit by updating copyright.
37792         * gnat_ug_vxw.texi: Regenerate.
37793         * gnat_ug_wnt.texi: Regenerate.
37794         * gnat_ug_vms.texi: Regenerate.
37795         * gnat_ug_unx.texi: Regenerate.
37796
37797 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
37798
37799         * trans.c: Remove uses of "register" specifier in
37800         declarations of local variables.
37801
37802 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
37803
37804         * stamp-xgnatug: New stamp file.
37805         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
37806         (ada/doctools/xgnatug): Add $(build_exeext).
37807         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
37808         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
37809
37810 2003-12-17  Ed Falis  <falis@gnat.com>
37811
37812         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
37813         eliminate warning.
37814
37815         * a-exextr.adb: Add context clause for
37816         Ada.Exceptions.Last_Chance_Handler.
37817
37818 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
37819
37820         * cstand.adb (Create_Standard): Change the way how the declaration of
37821         the Duration type is created (making it the same way as it is for all
37822         the other standard types).
37823
37824 2003-12-17  Robert Dewar  <dewar@gnat.com>
37825
37826         * s-crtl.ads: Fix header format
37827         Change Pure to Preelaborate
37828
37829 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
37830
37831         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
37832         the expression type only if it is declared in the current unit.
37833
37834         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
37835         are universal and already analyzed, as can occur in constrained
37836         subcomponents that depend on discriminants, when one constraint is a
37837         subtype mark.
37838
37839         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
37840         type Any_Fixed is legal as the argument of a conversion, if only one
37841         fixed-point type is in context.
37842
37843 2003-12-17  GNAT Script  <nobody@gnat.com>
37844
37845         * Make-lang.in: Makefile automatically updated
37846
37847 2003-12-15  Robert Dewar  <dewar@gnat.com>
37848
37849         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
37850         sec stack size.
37851
37852 2003-12-15  Vincent Celier  <celier@gnat.com>
37853
37854         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
37855         (Gnatchop): Do not set failure status when reporting the number of
37856         warnings.
37857
37858 2003-12-15  Doug Rupp  <rupp@gnat.com>
37859
37860         * s-ctrl.ads: New file.
37861
37862         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
37863
37864         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
37865         (GNATBIND_OBJS): Add ada/s-crtl.o.
37866
37867         * Makefile.in [VMS]: Clean up ifeq rules.
37868
37869         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
37870         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
37871         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
37872         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
37873         s-tasdeb.adb: Update copyright.
37874         Import System.CRTL.
37875         Make minor modifications to use System.CRTL declared functions instead
37876         of importing locally.
37877
37878 2003-12-15  GNAT Script  <nobody@gnat.com>
37879
37880         * Make-lang.in: Makefile automatically updated
37881
37882 2003-12-11  Ed Falis  <falis@gnat.com>
37883
37884         * 5zinit.adb: Clean up.
37885
37886         * 5zintman.adb (Notify_Exception): replaced case statement with a call
37887         to __gnat_map_signal, imported from init.c to support
37888         signal -> exception mappings that depend on the vxWorks version.
37889
37890         * init.c:
37891         Created and exported __gnat_map_signal to support signal -> exception
37892         mapping that is dependent on the VxWorks version.
37893         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
37894
37895 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
37896
37897         * 5wosinte.ads: Link with -mthreads switch.
37898
37899 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
37900
37901         * init.c (__gnat_install_handler [NetBSD]): Set
37902         __gnat_handler_installed, as done on all other platforms.
37903         Remove duplicated code.
37904
37905 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
37906
37907         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
37908
37909 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
37910
37911         * sinfo.ads: Fix inconsistent example code in comment.
37912
37913 2003-12-11  Robert Dewar  <dewar@gnat.com>
37914
37915         * a-tiinau.adb: Add a couple of comments
37916
37917         * sem_ch3.adb: Minor reformatting
37918
37919         * sem_prag.adb:
37920         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
37921         Minor reformatting throughout
37922
37923 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
37924
37925         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
37926         bounds of a loop, create a separate block in order to generate proper
37927         cleanup actions to prevent memory leaks.
37928
37929         * sem_res.adb (Resolve_Call): After a call to
37930         Establish_Transient_Scope, the call may be rewritten and relocated, in
37931         which case no further processing is needed.
37932
37933         * sem_util.adb: (Wrong_Type): Refine previous fix.
37934          Fixes ACATS regressions.
37935
37936         PR ada/13353
37937         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
37938         be inlined.
37939
37940 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
37941
37942         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
37943         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
37944         obsolete files.
37945
37946         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
37947         (rts-zfp): Ditto.
37948
37949 2003-12-08  Robert Dewar  <dewar@gnat.com>
37950
37951         * 7sintman.adb: Minor reformatting
37952
37953         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
37954         standard linker options to get standard libraries linked. We now plan
37955         to provide dummy versions of these libraries to match the appropriate
37956         configurable run-time (e.g. if a library is not needed at all, provide
37957         a dummy empty library).
37958
37959         * targparm.ads: Configurable_Run_Time mode no longer affects linker
37960         options (-L parameters and standard libraries). What we plan to do is
37961         to provide dummy libraries where the libraries are not required.
37962
37963         * gnatbind.adb: Minor comment improvement
37964
37965 2003-12-08  Javier Miranda  <miranda@gnat.com>
37966
37967         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
37968         aggregate in the parent. Otherwise constants with limited aggregates
37969         are not supported. Add new formal to pass the component type (Ctype).
37970         It is required to call the corresponding IP subprogram in case of
37971         default initialized components.
37972         (Gen_Assign): In case of default-initialized component, generate a
37973         call to the IP subprogram associated with the component.
37974         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
37975         of aggregate with default initialized components.
37976         (Has_Default_Init_Comps): Improve implementation to recursively check
37977         all the present expressions.
37978
37979         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
37980         to indicate that the initialization call corresponds to a
37981         default-initialized component of an aggregate.
37982         In case of default initialized aggregate with tasks this parameter is
37983         used to generate a null string (this is just a workaround that must be
37984         improved later). In case of discriminants, this parameter is used to
37985         generate a selected component node that gives access to the discriminant
37986         value.
37987
37988         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
37989         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
37990         allocated aggregates with default-initialized components.
37991
37992         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
37993         the box notation is used in positional aggregates.
37994
37995 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
37996
37997         * lib.ads: Fix typo in comment
37998
37999 2003-12-08  Vincent Celier  <celier@gnat.com>
38000
38001         * prj.adb (Project_Empty): New component Unkept_Comments
38002         (Scan): Remove procedure; moved to Prj.Err.
38003
38004         * prj.ads (Project_Data): New Boolean component Unkept_Comments
38005         (Scan): Remove procedure; moved to Prj.Err.
38006
38007         * prj-dect.adb: Manage comments for the different declarations.
38008
38009         * prj-part.adb (With_Record): New component Node
38010         (Parse): New Boolean parameter Store_Comments, defaulted to False.
38011         Set the scanner to return ends of line and comments as tokens, if
38012         Store_Comments is True.
38013         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
38014         comments are associated with these nodes. Store the node IDs in the
38015         With_Records.
38016         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
38017         With_Records.
38018         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
38019         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
38020         current project. Call Tree.Restore afterwards. Set the various nodes
38021         for comment storage (Next_End, End_Of_Line, Previous_Line,
38022         Previous_End).
38023
38024         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
38025         defaulted to False.
38026
38027         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
38028         to False. When Truncated is True, truncate the string, never go to the
38029         next line.
38030         (Write_End_Of_Line_Comment): New procedure
38031         (Print): Process comments for nodes N_With_Clause,
38032         N_Package_Declaration, N_String_Type_Declaration,
38033         N_Attribute_Declaration, N_Typed_Variable_Declaration,
38034         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
38035         Process nodes N_Comment.
38036
38037         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
38038         without comments and there are some comments, set the flag
38039         Unkept_Comments to True.
38040         (Scan): If there are comments, set the flag Unkept_Comments to True and
38041         clear the comments.
38042         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
38043         (Next_End_Nodes: New table
38044         (Comment_Zones_Of): New function
38045         (Scan): New procedure; moved from Prj. Accumulate comments in the
38046         Comments table and set end of line comments, comments after, after end
38047         and before end.
38048         (Add_Comments): New procedure
38049         (Save, Restore, Seset_State): New procedures
38050         (There_Are_Unkept_Comments): New function
38051         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
38052         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
38053         procedures.
38054         (First_Comment_After, First_Comment_After_End): New functions
38055         (First_Comment_Before, First_Comment_Before_End): New functions
38056         (Next_Comment): New function
38057         (End_Of_Line_Comment, Follows_Empty_Line,
38058         Is_Followed_By_Empty_Line): New functions
38059         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
38060         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
38061         (Set_Next_Comment): New procedure
38062         (Default_Project_Node): Associate comment before if the node can store
38063         comments.
38064
38065         * scans.ads (Token_Type): New enumeration value Tok_Comment
38066         (Comment_Id): New global variable
38067
38068         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
38069         defaulted to False.
38070         (Scan): Store position of start of comment. If comments are tokens, set
38071         Comment_Id and set Token to Tok_Comment when scanning a comment.
38072         (Set_Comment_As_Token): New procedure
38073
38074         * sinput-p.adb: Update Copyright notice
38075         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
38076         that no longer exists.
38077
38078 2003-12-08  Javier Miranda  <miranda@gnat.com>
38079
38080         * sem_aggr.adb: Add dependence on Exp_Tss package
38081         Correct typo in comment
38082         (Resolve_Aggregate): In case of array aggregates set the estimated
38083         type of the aggregate before calling resolve. This is needed to know
38084         the name of the corresponding IP in case of limited array aggregates.
38085         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
38086         in case of default initialized array components.
38087
38088         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
38089         types. Required to give support to limited aggregates in generic
38090         formals.
38091
38092 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
38093
38094         * sem_ch3.adb (Check_Initialization): For legality purposes, an
38095         inlined body functions like an instantiation.
38096         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
38097         until bounds are analyzed, to diagnose premature use of type.
38098
38099         * sem_util.adb (Wrong_Type): Improve error message when the type of
38100         the expression is used prematurely.
38101
38102 2003-12-08  GNAT Script  <nobody@gnat.com>
38103
38104         * Make-lang.in: Makefile automatically updated
38105
38106 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
38107
38108         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
38109         they are automatically generated by Make-lang.in and cause nothing but
38110         maintenance troubles.
38111
38112 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
38113
38114         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
38115         version of this unit).
38116
38117 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
38118
38119         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
38120         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
38121         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
38122         the body of System.Interrupt_Management common to several targets.
38123         Update copyright notice when appropriate.
38124
38125         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
38126         constant.
38127
38128         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
38129         to ensure that the kernel fills in the interrupted context structure
38130         before calling a signal handler, which is necessary to be able to
38131         unwind past it. Update the copyright notice.
38132
38133 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
38134
38135         * a-elchha.ads: New file.
38136
38137         * a-elchha.adb: New default last chance handler. Contents taken from
38138         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
38139
38140         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
38141         is moved to a-elchha.adb to provide a target-independent default last
38142         chance handler.
38143
38144         * Makefile.rtl: Add a-elchha.o
38145
38146         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
38147
38148 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
38149
38150         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
38151         declared in an instance, do not inline the call if the instance is not
38152         frozen yet, to prevent order of elaboration problems.
38153
38154         * sem_prag.adb: Add comments for previous fix.
38155
38156 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
38157
38158         * g-table.adb: Use the right variable in Set_Item.
38159         Update copyright notice.
38160
38161 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
38162
38163         * Makefile.in: Remove unused rules.
38164
38165 2003-12-05  Vincent Celier  <celier@gnat.com>
38166
38167         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
38168         -nostdlib. Not needed here after all.
38169
38170 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
38171
38172         PR ada/11724
38173         * adaint.h, adaint.c, g-os_lib.ads:
38174         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
38175         on some platforms (including FreeBSD), it is a 64 bit value.
38176         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
38177
38178 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
38179
38180         * gnatvsn.ads (Library_Version): Now contain only the relevant
38181         version info.
38182         (Verbose_Library_Version): New constant.
38183
38184         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
38185         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
38186         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
38187
38188         * gnatlbr.adb: Clean up: replace Library_Version by
38189         Verbose_Library_Version.
38190
38191         * make.adb, lib-writ.adb, exp_attr.adb:
38192         Clean up: replace Library_Version by Verbose_Library_Version.
38193
38194         * 5lintman.adb: Removed.
38195
38196         * Makefile.in:
38197         Update and simplify computation of LIBRARY_VERSION.
38198         Fix computation of GSMATCH_VERSION.
38199         5lintman.adb is no longer used: replaced by 7sintman.adb.
38200
38201 2003-12-03  Robert Dewar  <dewar@gnat.com>
38202
38203         * exp_ch5.adb:
38204         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
38205         name. Modified to consider small non-bit-packed arrays as troublesome
38206         and in need of component-by-component assigment expansion.
38207
38208 2003-12-03  Vincent Celier  <celier@gnat.com>
38209
38210         * lang-specs.h: Process nostdlib as nostdinc
38211
38212         * back_end.adb: Update Copyright notice
38213         (Scan_Compiler_Arguments): Process -nostdlib directly.
38214
38215 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
38216
38217         * Makefile.in:
38218         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
38219         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
38220         included in HIE_NONE_TARGET_PAIRS.
38221
38222 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
38223
38224         * sem_attr.adb:
38225         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
38226         is legal in an instance, because legality is cheched in the template.
38227
38228         * sem_prag.adb:
38229         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
38230         appplied to an unchecked conversion of a formal parameter.
38231
38232         * sem_warn.adb:
38233         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
38234         variables.
38235
38236 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
38237
38238         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
38239         routines. The second one is new functionality to deal with backtracing
38240         through signal handlers.
38241         (unwind): Split into the two separate subroutines above.
38242         Update the documentation, and deal properly with sizeof (REG) different
38243         from sizeof (void*).
38244
38245 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
38246
38247         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
38248         so that the debugger can reliably access the value of the parameter,
38249         and therefore is able to display the exception name when an exception
38250         breakpoint is reached.
38251
38252 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
38253
38254         * fmap.adb: Fix typo in warning message.
38255
38256         * g-socket.ads, g-socket.adb: Make Free a visible instance of
38257         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
38258
38259 2003-12-01  Vincent Celier  <celier@gnat.com>
38260
38261         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
38262         ther is no Afile.
38263         (Build_Library): Get the switches only if Default_Switches is declared
38264         in package Binder.
38265
38266 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
38267
38268         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
38269         actuals that are indexed components, reanalyze actual to ensure that
38270         packed array references are properly expanded.
38271
38272         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
38273         attempted assignment to a discriminant.
38274
38275 2003-12-01  Robert Dewar  <dewar@gnat.com>
38276
38277         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
38278         reformatting.
38279
38280         * switch-c.adb: Minor reformatting of comments
38281
38282 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
38283
38284         * Makefile.in: Clean ups.
38285
38286 2003-12-01  GNAT Script  <nobody@gnat.com>
38287
38288         * Make-lang.in: Makefile automatically updated
38289
38290 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
38291
38292         * 5wsystem.ads: Disable zero cost exception, not ready yet.
38293
38294 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
38295
38296         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
38297         to force serialization.
38298
38299 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
38300
38301         * g-socket.ads, g-socket.adb:
38302         Clarify documentation of function Stream. Introduce a Free procedure
38303         to release the returned Stream once it becomes unused.
38304
38305         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
38306
38307 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
38308
38309         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
38310         since NT 4 cannot handle timeout values that are too large,
38311         e.g. DWORD'Last - 1.
38312
38313 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
38314
38315         * exp_ch4.adb:
38316         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
38317         in procedure calls and whose expansion must be deferred.
38318
38319         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
38320         is in exp_ch4.
38321
38322         * sem_ch3.adb:
38323         (Build_Derived_Array_Type): Create operator for unconstrained type
38324         if ancestor is unconstrained.
38325
38326 2003-11-26  Vincent Celier  <celier@gnat.com>
38327
38328         * make.adb (Project_Object_Directory): New global variable
38329         (Change_To_Object_Directory): New procedure
38330         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
38331         of Change_Dir directly. Do not change working directory to object
38332         directory of main project after each compilation.
38333         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
38334         directly.
38335         Change to object directory of main project before binding step.
38336         (Initialize): Initialize Project_Object_Directory to No_Project
38337
38338         * mlib-prj.adb:
38339         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
38340         binding a Stand-Alone Library.
38341
38342         * output.adb: Update Copyright notice
38343         (Write_Char): Output buffer when full
38344
38345 2003-11-26  Robert Dewar  <dewar@gnat.com>
38346
38347         * sem_ch13.adb: (Check_Size): Reset size if size is too small
38348
38349         * sem_ch13.ads:
38350         (Check_Size): Fix documentation to include bit-packed array case
38351
38352         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
38353
38354         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
38355
38356         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
38357
38358 2003-11-24  Arnaud Charlet  <charlet@act-europe.fr>
38359
38360         PR ada/13142
38361         * utils.c (init_gigi_decls): Change name of built-in setjmp to
38362         __builtin_setjmp, since this is apparently needed by recent
38363         non Ada changes.
38364
38365 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
38366
38367         * adadecode.c: Only include ctype.h if not IN_GCC.
38368         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
38369
38370 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
38371
38372         * Makefile.in:
38373         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
38374         signals and interrupts.
38375
38376         * 5zintman.ads: New File.
38377
38378         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
38379         add exception signals to the set of unmasked signals.
38380
38381         * 5ztaprop.adb:
38382         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
38383         between signals and interrupts.
38384         Add to Unblocked_Signal_Mask the set of signals that are in
38385         Keep_Unmasked.
38386
38387         * 7sinmaop.adb:
38388         Adding a check to see whether the Interrupt_ID we want to unmask is in
38389         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
38390         reason is that the index type of the Keep_Unmasked array is not always
38391         Interrupt_ID; it may be a subtype of Interrupt_ID.
38392
38393 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
38394
38395         * exp_util.adb:
38396         (Remove_Side_Effects): Condition constantness of object created for a
38397          an unchecked type conversion on the constantness of the expression
38398          to ensure the correct value for 'Constrained when passing components
38399          of view-converted class-wide objects.
38400
38401 2003-11-24  Robert Dewar  <dewar@gnat.com>
38402
38403         * par-load.adb (Load): Improve handling of misspelled and missing units
38404         Removes several cases of compilation abandoned messages
38405
38406         * lib.adb: (Remove_Unit): New procedure
38407
38408         * lib.ads: (Remove_Unit): New procedure
38409
38410         * lib-load.adb: Minor reformatting
38411
38412 2003-11-24  Vincent Celier  <celier@gnat.com>
38413
38414         * make.adb:
38415         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
38416         (Marking_Label): Label to mark processed source files. Incremented for
38417         each executable.
38418         (Gnatmake): Increase Marking_Labet for each executable
38419         (Is_Marked): Compare against marking label
38420         (Mark): Mark with marking label
38421
38422 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
38423
38424         * s-thread.ads:
38425         Move the declaration of the TSD for System.Threads to System.Soft_Links.
38426         Add some comments.
38427
38428         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
38429         (rts-cert): build a single relocatable object for the run-time lib.
38430         Fix perms.
38431
38432 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
38433
38434         * Make-lang.in:
38435         Use gnatls rather than gcc to obtain the location of GNAT RTL for
38436         crosstools build.
38437
38438 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
38439
38440         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
38441         can not use it as before (that is, as a variable) when dumping it into
38442         the tree file. Add a local variable to store the result of this
38443         function and to be used as the string to be written into the tree.
38444
38445         * scn.adb (Initialize_Scanner): Add comments explaining the recent
38446         changes.
38447
38448         * sinput.adb (Source_First, Source_Last): In case of
38449         Internal_Source_File, replace returning attributes of
38450         Internal_Source_Ptr (which is wrong) with returning attributes of
38451         Internal_Source.
38452
38453 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
38454
38455         * sem_ch3.adb:
38456         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
38457         used for implicit concatenation operators.
38458         Code cleanup.
38459
38460         * sem_elab.adb:
38461         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
38462         task bodies that are in the scope of a Suppress pragma.
38463         (Check_A Call): Use the flag to prevent spurious elaboration checks.
38464
38465         * sinfo.ads, sinfo.adb:
38466         New flag No_Elaboration_Check on function/procedure calls, to properly
38467         suppress checks on calls in task bodies that are within a local suppress
38468         pragma.
38469
38470         * exp_ch4.adb:
38471         (Expand_Concatenate_Other): Use the proper integer type for the
38472         expression for the upper bound, to avoid universal_integer computations
38473         when possible.
38474
38475 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
38476
38477         * .cvsignore: Delete.
38478
38479 2003-11-21  Andreas Schwab  <schwab@suse.de>
38480
38481         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
38482
38483 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
38484
38485         * 5wsystem.ads: Enable zero cost exception.
38486
38487 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
38488
38489         * 5ztiitho.adb: Remove an unreferenced variable.
38490
38491 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
38492
38493         * adaint.c: For FreeBSD, use mkstemp.
38494
38495 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
38496
38497         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
38498
38499 2003-11-21  Robert Dewar  <dewar@gnat.com>
38500
38501         * bld.adb: Remove useless USE of gnatvsn
38502
38503         * gnatchop.adb: Minor reformatting
38504         Clean up version handling to be more consistent
38505
38506         * gnatxref.adb: Minor reformatting
38507
38508         * gprcmd.adb: Minor reformatting
38509         Fix output of copyright to be more consistent with other tools
38510
38511 2003-11-21  Vincent Celier  <celier@gnat.com>
38512
38513         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
38514
38515 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
38516
38517         * atree.adb (Initialize): Add initializations for global variables
38518         used in New_Copy_Tree.
38519
38520         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
38521         Internal_Source_File as the actual).
38522         Put the set of statements creating Any_Character before the set of
38523         statements creating Any_Array to have Any_Character fully initialized
38524         when it is used in creating Any_Array.
38525
38526         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
38527         not call Scan in case if the actual is Internal_Source_File
38528         Add 2003 to copyright note.
38529
38530         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
38531         processing Internal_Source_File.
38532
38533         * types.ads: Add the constant Internal_Source_File representing the
38534         source buffer for artificial source-code-like strings created within
38535         the compiler (the definition of Source_File_Index is changed).
38536
38537 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
38538
38539         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
38540         56system.ads: New file, FreeBSD version.
38541
38542 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
38543
38544         * Make-lang.in (ada.extraclean): Delete.
38545
38546 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
38547
38548         * gnatmem.adb: Clean up verbose output.
38549
38550         * gprcmd.adb: Change copyright to FSF.
38551
38552 2003-11-19  Vincent Celier  <celier@gnat.com>
38553
38554         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
38555         and Version (ignored).
38556
38557         * symbols.ads: (Policy): New type
38558         (Initialize): New parameter Reference, Symbol_Policy and
38559         Library_Version.
38560         Remove parameter Force.
38561         Minor reformatting.
38562
38563         * snames.ads, snames.adbadb: New standard names
38564         Library_Reference_Symbol_File and Library_Symbol_Policy
38565
38566         * mlib-prj.adb:
38567         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
38568         project.
38569
38570         * mlib-tgt.adb:
38571         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
38572
38573         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
38574
38575         * prj.adb: (Project_Empty): New component Symbol_Data
38576
38577         * prj.ads: (Policy, Symbol_Record): New types
38578         (Project_Data): New component Symbol_Data
38579
38580         * prj-attr.adb:
38581         New attributes Library_Symbol_File, Library_Symbol_Policy and
38582         Library_Reference_Symbol_File.
38583
38584         * prj-nmsc.adb:
38585         (Ada_Check): When project is a Stand-Alone library project, process
38586         attribute Library_Symbol_File, Library_Symbol_Policy and
38587         Library_Reference_Symbol_File.
38588
38589         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
38590         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
38591         5sml-tgt.adb (Build_Dynamic_Library): New parameter
38592         Symbol_Data (ignored).
38593
38594         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
38595         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
38596         functions Option_File_Name and Version_String. Set new options of
38597         gnatsym related to symbol file, symbol policy and reference symbol
38598         file.
38599
38600         * 5vsymbol.adb:
38601         Extensive modifications to take into account the reference symbol file,
38602         the symbol policy, the library version and to put in the symbol file the
38603         minor and major IDs.
38604
38605         * bld.adb (Process_Declarative_Items): Put second argument of
38606         gprcmd to_absolute between single quotes, to avoid problems with
38607         Windows.
38608
38609         * bld-io.adb: Update Copyright notice.
38610         (Flush): Remove last character of a line, if it is a back slash, to
38611         avoid make problems.
38612
38613         * gnatsym.adb:
38614         Implement new scheme with reference symbol file and symbol policy.
38615
38616         * g-os_lib.ads: (Is_Directory): Clarify comment
38617
38618 2003-11-19  Robert Dewar  <dewar@gnat.com>
38619
38620         * atree.adb: Move New_Copy_Tree global variables to head of package
38621
38622         * errout.adb: Minor reformatting
38623
38624 2003-11-19  Javier Miranda  <miranda@gnat.com>
38625
38626         * sem_ch4.adb: (Diagnose_Call): Improve error message.
38627         Add reference to Ada0Y (AI-50217)
38628
38629         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
38630         sem_util.adb: Add reference to AI-50217
38631
38632         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
38633
38634         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
38635
38636         * sem_aggr.adb: Complete documentation of AI-287 changes
38637
38638         * par-ch4.adb: Document previous changes.
38639
38640         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
38641         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
38642         Ada0Y (AI-50217)
38643
38644         * exp_aggr.adb: Add references to AI-287 in previous changes
38645
38646 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
38647
38648         * exp_ch6.adb:
38649         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
38650         in the rewriting is the result of an inlined call.
38651
38652         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
38653         parameter is a type conversion, use original node to construct the
38654         post-call assignment, because expression may have been rewritten, e.g.
38655         if it is a packed array.
38656
38657         * sem_attr.adb:
38658         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
38659         body, just as it is in an instance.
38660         Categorization routines
38661
38662         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
38663         Instantiate_Object): Set proper sloc reference for message on missing
38664         actual.
38665
38666 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
38667
38668         * Makefile.in: Add FreeBSD libgnat pairs.
38669
38670         * usage.adb: Fix typo in usage message.
38671
38672 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
38673
38674         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
38675         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
38676         pragma Thread_Body.
38677         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
38678
38679         * s-thread.adb: This file is now a dummy implementation of
38680         System.Thread.
38681
38682 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
38683
38684         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
38685
38686 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
38687
38688         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
38689         instanciation references in the parent type description.
38690
38691 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
38692
38693         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
38694
38695         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
38696         TYPE_PRECISION directly from esize.
38697
38698 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
38699
38700         * cstreams.c:
38701         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
38702
38703         * init.c: Initialization routines for FreeBSD
38704
38705         * link.c: Link info for FreeBSD
38706
38707         * sysdep.c: Add the case of FreeBSD
38708
38709 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
38710
38711         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
38712         already called in System.Threads.
38713
38714         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
38715         environment task, as it has been moved to System.Threads.Initialization.
38716
38717 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
38718
38719         * adaint.c (__gnatlib_install_locks): Only reference
38720         __gnat_install_locks on VMS, since other platforms can avoid using
38721         --enable-threads=gnat
38722
38723 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
38724
38725         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
38726
38727         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
38728         TYPE_PACKED_ARRAY_TYPE_P.
38729         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
38730
38731         Part of PR ada/12806
38732         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
38733         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
38734
38735 2003-11-17  Vincent Celier  <celier@gnat.com>
38736
38737         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
38738         to False.
38739         Do not set exit status to Failure when Warning is True.
38740         (Gnatchop): Make errors "no compilation units found" and
38741         "no source files written" warnings only.
38742
38743         * make.adb (Gnatmake): When using a project file, set
38744         Look_In_Primary_Dir to False.
38745         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
38746         and Local_Configuration_Pragmas in the project where they are declared
38747         not an extending project which might have inherited them.
38748
38749         * osint.adb (Locate_File): If Name is already an absolute path, do not
38750         look for a directory.
38751
38752         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
38753         -gnats (Check_Syntax) is used, issue only a warning, not an error.
38754
38755         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
38756         in objects of type Variable_Value.
38757
38758         * prj.ads: (Variable_Value): New component Project
38759
38760         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
38761         is in a project extended by Project.
38762
38763         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
38764         Project of Variable_Values to this new parameter value.
38765         (Expression): Set component Project of Variable_Values.
38766         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
38767         Set the component Project in array elements.
38768
38769 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
38770
38771         * errout.adb: (Initialize): Add initialization for error nodes.
38772
38773         * sem_ch12.adb (Initialize): Add missing initializations for
38774         Exchanged_Views and Hidden_Entities.
38775
38776 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
38777
38778         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
38779         already instantiated tree for use in subsequent inlining.
38780         (Analyze_Associations, Instantiate_Formal_Subprogram,
38781         Instantiate_Object): improve error message for mismatch in
38782         instantiations.
38783
38784         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
38785         instantiations of subprograms declared in instances.
38786
38787 2003-11-17  Javier Miranda  <miranda@gnat.com>
38788
38789         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
38790         executed only under the Extensions_Allowed flag.
38791
38792 2003-11-17  Robert Dewar  <dewar@gnat.com>
38793
38794         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
38795         zeroes suppressed.
38796         (Address_Image): Fix bug of returning 0x instead of 0x0
38797         Minor reformatting (function specs).
38798
38799         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
38800         (missed case of 33-63)
38801
38802         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
38803
38804         * s-thread.adb: Add comments for pragma Restriction
38805
38806         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
38807         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
38808
38809 2003-11-17  Ed Falis  <falis@gnat.com>
38810
38811         * s-thread.adb: Added No_Tasking restriction for this implementation.
38812
38813 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
38814
38815         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
38816         instanciation references in the parent type description.
38817
38818 2003-11-17  GNAT Script  <nobody@gnat.com>
38819
38820         * Make-lang.in: Makefile automatically updated
38821
38822 2003-11-16  Jason Merrill  <jason@redhat.com>
38823
38824         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
38825         and TAGS files that include them for each front end.
38826
38827 2003-11-14  Andreas Jaeger  <aj@suse.de>
38828
38829         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
38830         is the canonical version.
38831         * misc.c (gnat_handle_option): Likewise.
38832
38833         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
38834
38835         * 5nsystem.ads: New file for x86_64-linux-gnu.
38836
38837 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
38838
38839         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
38840
38841         * comperr.adb: Fix logic in previous change.
38842
38843 2003-11-13  Vincent Celier  <celier@gnat.com>
38844
38845         * 5bml-tgt.adb (Build_Dynamic_Library): Use
38846         Osint.Include_Dir_Default_Prefix instead of
38847         Sdefault.Include_Dir_Default_Name.
38848
38849         * gnatlbr.adb: Update Copyright notice
38850         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
38851         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
38852         instead of Sdefault.Object_Dir_Default_Name
38853
38854         * gnatlink.adb:
38855         (Process_Binder_File): Never suppress the option following -Xlinker
38856
38857         * mdll-utl.adb:
38858         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
38859         Sdefault.Object_Dir_Default_Name.
38860
38861         * osint.ads, osint.adb:
38862         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
38863         Minor reformatting.
38864
38865         * vms_conv.ads: Minor reformating
38866         Remove GNAT STANDARD and GNAT PSTA
38867
38868         * vms_conv.adb:
38869         Allow GNAT MAKE to have several files on the command line.
38870         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
38871         Sdefault.Object_Dir_Default_Name.
38872         Minor Reformating
38873         Remove data for GNAT STANDARD
38874
38875         * vms_data.ads:
38876         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
38877         Remove data for GNAT STANDARD
38878         Remove options and documentation for -gnatwb/-gnatwB: these warning
38879         options no longer exist.
38880
38881 2003-11-13  Ed Falis  <falis@gnat.com>
38882
38883         * 5zthrini.adb: (Init_RTS): Made visible
38884
38885         * 5zthrini.adb:
38886         (Register): Removed unnecessary call to taskVarGet that checked whether
38887          an ATSD was already set as a task var for the argument thread.
38888
38889         * s-thread.adb:
38890         Updated comment to reflect that this is a VxWorks version
38891         Added context clause for System.Threads.Initialization
38892         Added call to System.Threads.Initialization.Init_RTS
38893
38894 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
38895
38896         * 5zthrini.adb:
38897         (Init_RTS): New procedure, for the initialization of the run-time lib.
38898
38899         * s-thread.adb:
38900         Remove dependancy on System.Init, so that this file can be used in the
38901         AE653 sequential run-time lib.
38902
38903 2003-11-13  Robert Dewar  <dewar@gnat.com>
38904
38905         * bindgen.adb: Minor reformatting
38906
38907 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
38908
38909         * checks.adb:
38910         (Apply_Discriminant_Check): Do no apply check if target type is derived
38911         from source type with no applicable constraint.
38912
38913         * lib-writ.adb:
38914         (Ensure_System_Dependency): Do not apply the style checks that may have
38915         been specified for the main unit.
38916
38917         * sem_ch8.adb:
38918         (Find_Selected_Component): Further improvement in error message, with
38919         RM reference.
38920
38921         * sem_res.adb:
38922         (Resolve): Handle properly the case of an illegal overloaded protected
38923         procedure.
38924
38925 2003-11-13  Javier Miranda  <miranda@gnat.com>
38926
38927         * exp_aggr.adb:
38928         (Has_Default_Init_Comps): New function to check the presence of
38929         default initialization in an aggregate.
38930         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
38931         extension aggregate of a limited record. In addition, a new formal
38932         was added to do not initialize the record controller (if any) during
38933         this recursive expansion of ancestors.
38934         (Init_Controller): Add support for limited record components.
38935         (Expand_Record_Aggregate): In case of default initialized components
38936         convert the aggregate into a set of assignments.
38937
38938         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
38939         describing the new syntax.
38940         Nothing else needed to be done because this subprogram delegates part of
38941         its work to P_Precord_Or_Array_Component_Association.
38942         (P_Record_Or_Array_Component_Association): Give support to the new
38943         syntax for default initialization of components.
38944
38945         * sem_aggr.adb:
38946         (Resolve_Aggregate): Relax the strictness of the frontend in case of
38947         limited aggregates.
38948         (Resolve_Record_Aggregate): Give support to default initialized
38949         components.
38950         (Get_Value): In case of default initialized components, duplicate
38951         the corresponding default expression (from the record type
38952         declaration). In case of default initialization in the *others*
38953         choice, do not check that all components have the same type.
38954         (Resolve_Extension_Aggregate): Give support to limited extension
38955         aggregates.
38956
38957         * sem_ch3.adb:
38958         (Check_Initialization): Relax the strictness of the front-end in case
38959         of aggregate and extension aggregates. This test is now done in
38960         Get_Value in a per-component manner.
38961
38962         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
38963         expression corresponds to a limited aggregate. This test is now done
38964         in Get_Value.
38965
38966         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
38967         Box_Present flag.
38968
38969         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
38970         present in an N_Component_Association node
38971
38972 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
38973
38974         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
38975         type-conformant entry only if they are homographs.
38976
38977 2003-11-13  GNAT Script  <nobody@gnat.com>
38978
38979         * Make-lang.in: Makefile automatically updated
38980
38981 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
38982
38983         * adadecode.c: Use <> form of include for ctype.h.
38984         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
38985
38986 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
38987
38988         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
38989         Works around PR middle-end/6552.
38990
38991 2003-11-10  Ed Falis  <falis@gnat.com>
38992
38993         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
38994
38995         * 5zinit.adb: (Install_Handler): Moved back to spec
38996         (Install_Signal_Handlers): Deleted
38997
38998         * 5zthrini.adb: Added context clause for System.Storage_Elements
38999         (Register): Only handles creation of taskVar; initialization moved to
39000         Thread_Body_Enter.
39001         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
39002         Added declaration of environment task secondary stack and
39003         initialization.
39004
39005         * s-thread.adb: Implement bodies for thread body processing
39006
39007         * s-thread.ads:
39008         Added comment identifying supported targets for pragma Thread_Body.
39009
39010 2003-11-10  Pascal Obry  <obry@gnat.com>
39011
39012         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
39013         GNAT_MAX_PATH_LEN.
39014
39015         * s-fileio.adb:
39016         (Open): Properly check for string length before copying into the buffer.
39017         Raises Name_Error if buffer is too small. Note that this was a potential
39018         buffer overflow.
39019
39020 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
39021
39022         * bindgen.adb, comperr.adb: Code clean ups.
39023         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
39024
39025 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
39026
39027         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
39028
39029 2003-11-10  Vincent Celier  <celier@gnat.com>
39030
39031         * gprcmd.adb:
39032         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
39033         installation.
39034
39035         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
39036
39037         * prj.adb: (Project_Empty): Add new boolean component Virtual
39038
39039         * prj.ads: (Virtual_Prefix): New constant string
39040         (Project_Data): New boolean component Virtual
39041
39042         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
39043         a library project is extended by a virtual extending project.
39044
39045         * prj-part.adb:
39046         Modifications throughout to implement extending-all project, including:
39047         (Virtual_Hash, Processed_Hash): New hash tables
39048         (Create_Virtual_Extending_Project): New procedure
39049         (Look_For_Virtual_Projects_For): New procedure
39050
39051         * prj-proc.adb:
39052         (Process): After checking the projects, if main project is an
39053         extending-all project, set the object directory of all virtual extending
39054         project to the object directory of the main project.
39055         Adjust error message when a virtual extending project has the same
39056         object directory as an project being extended.
39057         (Recursive_Process): If name starts with the virtual prefix, set Virtual
39058         to True in the project data.
39059
39060         * prj-tree.adb:
39061         (Default_Project_Node): Add new boolean component Extending_All
39062         (Is_Extending_All): New function
39063         (Set_Is_Extending_All): New procedure
39064
39065         * prj-tree.ads: (Is_Extending_All): New function
39066         (Set_Is_Extending_All): New procedure
39067         (Project_Node_Record): New boolean component Extending_All
39068
39069         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
39070
39071         * vms_data.ads:
39072         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
39073
39074         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
39075         "gprcmd prefix" to define it.
39076
39077 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
39078
39079         * einfo.ads: Fix a typo and remove an extraneous word in comments.
39080
39081         * lib-load.adb:
39082         (Create_Dummy_Package_Unit): Set the scope of the entity for the
39083         created dummy package to Standard_Standard, not to itself, to
39084         defend other parts of the front-end against encoutering a cycle in
39085         the scope chain.
39086
39087         * sem_ch10.adb:
39088         (Analyze_With_Clause): When setting the entities for the successive
39089         N_Expanded_Names that constitute the name of a child unit, do not
39090         attempt to go further than Standard_Standard in the chain of scopes.
39091         This case arises from the placeholder units created by
39092         Create_Dummy_Package_Unit in the case of a with_clause for a
39093         nonexistent child unit.
39094
39095 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
39096
39097         * exp_ch6.adb:
39098         (Expand_Thread_Body): Place subprogram on scope stack, so that new
39099         declarations are given the proper scope.
39100
39101         * sem_ch13.adb:
39102         (Check_Expr_Constants): Reject an expression that contains a constant
39103         created during expansion, and that appears after the object to which
39104         the address clause applies.
39105
39106         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
39107         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
39108         that uses 'Range of a function call with controlled components, so
39109         that the function result can be finalized before starting the loop.
39110
39111         * sem_ch8.adb:
39112         (Find_Selected_Component): Improve error message when prefix is
39113         an implicit dereference of an incomplete type.
39114
39115 2003-11-10  Robert Dewar  <dewar@gnat.com>
39116
39117         * opt.ads: New Print_Standard flag for -gnatS switch
39118
39119         * sem_ch13.adb: Remove some additional checks for unaligned arrays
39120
39121         * cstand.adb (Create_Standard): Print out package standard if -gnatS
39122         switch set
39123
39124         * debug.adb: Update doc for -gnatds to discuss relationship with new
39125         -gnatS flag
39126
39127         * sinfo.adb: Add new field Entity_Or_Associated_Node
39128
39129         * sinfo.ads: Add new field Entity_Or_Associated_Node
39130         Update documentation for Associated_Node and Entity fields to clarify
39131         relationship and usage.
39132
39133         * sprint.adb:
39134         (Write_Id): Properly process Associated_Node field in generic template
39135
39136         * switch-c.adb:
39137         Recognize new -gnatS switch for printing package Standard
39138         This replaces gnatpsta
39139
39140         * usage.adb:
39141         Add line for  new -gnatS switch for printing package Standard
39142         This replaces gnatpsta
39143
39144 2003-11-10  Andreas Jaeger  <aj@suse.de>
39145
39146         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
39147         integer.
39148
39149 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
39150
39151         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
39152         by gnat1.
39153
39154 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
39155
39156         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
39157         no longer needed.
39158
39159         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
39160
39161         * sysdep.c: Add handling of cygwin.
39162
39163 2003-11-10  GNAT Script  <nobody@gnat.com>
39164
39165         * Make-lang.in: Makefile automatically updated
39166
39167 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
39168
39169         PR 12950
39170         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
39171         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
39172         Replace GNAT_ROOT by GCC_ROOT.
39173
39174         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
39175
39176 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
39177
39178         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
39179         and update for changed meaning of GET_MODE_BITSIZE.
39180
39181 2003-11-04  Doug Rupp  <rupp@gnat.com>
39182
39183         * sysdep.c: Problem discovered during IA64 VMS port.
39184         [VMS] #include <unixio.h> to get proper prototypes.
39185
39186         * adaint.c:
39187         Issues discovered/problems fixed during IA64 VMS port.
39188         [VMS] #define _POSIX_EXIT for proper semantics.
39189         [VMS] #include <unixio.h> for proper prototypes.
39190         [VMS] (fork): #define IA64 version.
39191         (__gnat_os_exit): Remove unnecessary VMS specific code.
39192
39193 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39194
39195         Part of PR ada/12806
39196         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
39197         tree, not integer.
39198
39199         * decl.c:
39200         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
39201         not integer.
39202
39203         * targtyps.c, decl.c, misc.c,
39204         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
39205         routines to work around change in FP sizing semantics in GCC.
39206
39207         * utils.c:
39208         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
39209
39210         * gigi.h: (enumerate_modes): New function.
39211
39212         * Make-lang.in: (ada/misc.o): Add real.h.
39213
39214         * misc.c: (enumerate_modes): New function.
39215
39216 2003-11-04  Robert Dewar  <dewar@gnat.com>
39217
39218         * 3vtrasym.adb: Minor reformatting
39219         Use terminology encoded/decoded name, rather than C++ specific notion
39220         of mangling (this is the terminology used throughout GNAT).
39221
39222         * einfo.h: Regenerated
39223
39224         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
39225
39226         * exp_ch6.adb:
39227         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
39228
39229         * par-prag.adb: Add dummy entry for Thread_Body pragma
39230
39231         * rtsfind.ads:
39232         Add entries for System.Threads entities for thread body processing
39233
39234         * sem_attr.adb:
39235         (Analyze_Pragma, Access attributes): Check these are not applied to a
39236         thread body, since this is not permitted
39237
39238         * sem_prag.adb: Add processing for Thread_Body pragma.
39239         Minor comment fix.
39240
39241         * sem_res.adb:
39242         (Resolve_Call): Check for incorrect attempt to call a thread body
39243          procedure with a direct call.
39244
39245         * snames.ads, snames.adb: Add entry for Thread_Body pragma
39246         Add names associated with thread body expansion
39247
39248         * snames.h: Add entry for Thread_Body pragma
39249
39250         * s-thread.adb: Add entries for thread body processing
39251         These are dummy bodies so far
39252
39253         * s-thread.ads: Add documentation on thread body handling.
39254         Add entries for thread body processing.
39255
39256 2003-11-04  Javier Miranda  <miranda@gnat.com>
39257
39258         * sem_ch10.adb:
39259         (Build_Limited_Views): Return after posting an error in case of limited
39260         with_clause on subprograms, generics, instances or generic renamings
39261         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
39262         on subprograms, generics, instances or generic renamings
39263
39264 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
39265
39266         * raise.c (setup_to_install): Correct mistake in last revision; two
39267         arguments out of order.
39268
39269         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
39270         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
39271         notice, missed in previous change.
39272         Remove trailing blanks and other style errors introduced in previous
39273         change.
39274
39275 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
39276
39277         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
39278         rid of the wrapper for a LJM type, ensuring we don't do that if the
39279         field is addressable.  This avoids potential low level type view
39280         mismatches later on, for instance in a by-reference argument passing
39281         process.
39282
39283 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39284
39285         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
39286         aligned at byte boundary.
39287
39288 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
39289
39290         * decl.c (components_to_record): Do not delete the empty variants from
39291         the end of the union type.
39292
39293 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
39294
39295         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
39296         operation for a derived type, an explicit declaration may use a local
39297         subtype of Boolean.
39298
39299 2003-11-04  Vincent Celier  <celier@gnat.com>
39300
39301         * make.adb (Gnatmake): Allow main sources on the command line with a
39302         library project when it is only for compilation (no binding or
39303         linking).
39304
39305 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
39306
39307         * Makefile.in: Remove many duplicate variables.
39308
39309 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
39310
39311         * Make-lang.in (dvi): Move targets to $(docobjdir).
39312         (gnat_ug_vms.dvi): Simplify rule and adjust target.
39313         (gnat_ug_wnt.dvi): Likewise.
39314         (gnat_ug_unx.dvi): Likewise.
39315         (gnat_ug_vxw.dvi): Likewise.
39316         (gnat_rm.dvi): Likewise.
39317         (gnat-style.dvi): Likewise.
39318
39319 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
39320
39321         * gigi.h: Missed commit from update for C90.
39322
39323 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
39324
39325         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
39326
39327 2003-10-31  Andreas Schwab  <schwab@suse.de>
39328
39329         * raise.c (get_action_description_for): Fix typo in last change.
39330
39331 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
39332
39333         PR ada/12761
39334         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
39335         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
39336
39337 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
39338
39339         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
39340         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
39341         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
39342         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
39343         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
39344
39345 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
39346
39347         * 3vtrasym.adb:
39348         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
39349         numbers when symbol name is too long.
39350
39351 2003-10-30  Ed Falis  <falis@gnat.com>
39352
39353         * g-signal.ads, g-signal.adb: New files
39354
39355         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
39356
39357         * Makefile.rtl: Introduce GNAT.Signals
39358
39359 2003-10-30  Robert Dewar  <dewar@gnat.com>
39360
39361         * freeze.adb: Minor reformatting
39362
39363         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
39364
39365         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
39366         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
39367         New handling of Id_Check parameter to improve recognition of keywords
39368         used as identifiers.
39369         Update copyright notice to include 2003
39370
39371 2003-10-29  Robert Dewar  <dewar@gnat.com>
39372
39373         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
39374         sem_ch10.adb: Minor reformatting
39375
39376         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
39377         (Expand_Assign_Record): Test right hand side for bit unaligned as well
39378
39379 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
39380
39381         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
39382         Support for TBK$SYMBOLIZE-based symbolic traceback.
39383
39384 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
39385
39386         * exp_disp.adb:
39387         Revert previous change, that did not work well when pragma No_Run_Time
39388         was used in conjunction with a run-time other than ZFP.
39389
39390 2003-10-29  Vincent Celier  <celier@gnat.com>
39391
39392         * make.adb:
39393         (Gnatmake): When there are no Ada mains in attribute Main, disable the
39394          bind and link steps only is switch -z is not used.
39395
39396 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
39397
39398         * Makefile.generic: Remove duplicated setting of CC.
39399
39400         * Makefile.prolog: Set CC to gcc by default, to override make's
39401         default (cc).
39402
39403         * einfo.h: Regenerated.
39404
39405 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
39406
39407         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
39408         current body, after compiling subunit.
39409
39410         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
39411         when in deleted code, because gigi needs properly ordered freeze
39412         actions to annotate types.
39413
39414         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
39415         prevent the premature freezing of record type that contains
39416         subcomponents with a private type that does not yet have a completion.
39417
39418 2003-10-29  Javier Miranda  <miranda@gnat.com>
39419
39420         * sem_ch12.adb:
39421         (Analyze_Package_Instantiation): Check that instances can not be used in
39422         limited with_clauses.
39423
39424         * sem_ch8.adb:
39425         (Analyze_Package_Renaming): Check that limited withed packages cannot
39426         be renamed. Improve text on error messages related to limited
39427         with_clauses.
39428
39429         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
39430
39431         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
39432         Update copyright notice.
39433
39434         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
39435         (Install_Limited_Context_Clauses): New subprogram that isolates all the
39436         checks required for limited context_clauses and installs the limited
39437         view.
39438         (Install_Limited_Withed_Unit): Complete its documentation.
39439         (Analyze_Context): Check that limited with_clauses are only allowed in
39440         package specs.
39441         (Install_Context): Call Install_Limited_Context_Clauses after the
39442         parents have been installed.
39443         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
39444         package as 'From_With_Type'; this mark indicates that the limited view
39445         is installed. Used to check bad usages of limited with_clauses.
39446         (Build_Limited_Views): Do not add shadow entities to the scope's list
39447         of entities. Do not add real entities to the Non_Limited_Views chain.
39448         Improve error notification.
39449         (Remove_Context_Clauses): Remove context clauses in two phases:
39450         limited views first and regular views later (to maintain the
39451         stack model).
39452         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
39453         its visible entities.
39454
39455 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
39456
39457         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
39458         with any type that Is_Fixed_Point_Type.
39459
39460         * sinfo.ads: Fix documentation for Associated_Node attribute.
39461
39462 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
39463
39464         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
39465         both '-gnatc' and '-gnatt' are specified.
39466
39467         * atree.adb (Initialize): Add initialization for Node_Count (set to
39468         zero).
39469
39470 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39471
39472         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
39473         do not consider as Pure.
39474
39475         Part of implementation of function-at-a-time:
39476
39477         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
39478         (tree_transform): Add new argument to build_component_ref.
39479         (tree_transform, case N_Assignment_Statement): Make and return an
39480         EXPR_STMT.
39481         (tree_transform): If result IS_STMT, set flags and return it.
39482         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
39483
39484         * utils2.c (build_simple_component_ref, build_component_ref): Add new
39485         arg, NO_FOLD_P.
39486         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
39487         (build_allocator): Likewise.
39488
39489         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
39490         Add new arg to build_component_ref.
39491         (maybe_unconstrained_array, unchecked_convert): Likewise.
39492
39493         * ada-tree.def (EXPR_STMT): New code.
39494
39495         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
39496
39497         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
39498         build_component_ref calls.
39499
39500         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
39501
39502         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
39503         (build_component_ref): Add new argument, NO_FOLD_P.
39504
39505 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
39506
39507         * Makefile.generic: Add missing substitution on object_deps handling.
39508
39509         PR ada/5909
39510         * Make-lang.in (check-ada): Enable ACATS test suite.
39511
39512 2003-10-27  Robert Dewar  <dewar@gnat.com>
39513
39514         * exp_ch3.adb:
39515         (Freeze_Array_Type): We do not need an initialization routine for types
39516         derived from String or Wide_String. They should be treated the same
39517         as String and Wide_String themselves. This caused problems with the
39518         use of Initialize_Scalars.
39519
39520         * exp_ch5.adb:
39521         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
39522         composites. This allows use of component clauses that are not byte
39523         aligned.
39524
39525         * sem_prag.adb:
39526         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
39527         is an attempt to pack an array of atomic objects.
39528
39529         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
39530
39531 2003-10-27  Pascal Obry  <obry@gnat.com>
39532
39533         * g-dirope.adb:
39534         (Basename): Check for drive letters in a pathname only on DOS based OS.
39535
39536 2003-10-27  Vincent Celier  <celier@gnat.com>
39537
39538         * make.adb:
39539         (Gnatmake): When unable to change dir to the object dir, display the
39540         content of the parent dir of the obj dir, to try to understand why this
39541         happens.
39542
39543 2003-10-27  GNAT Script  <nobody@gnat.com>
39544
39545         * Make-lang.in: Makefile automatically updated
39546
39547 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
39548
39549         * sem_ch12.adb:
39550         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
39551         should not be done in Save/Restore_Scope_Stack, because it is performed
39552         locally.
39553
39554         * sem_ch8.adb:
39555         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
39556         whether use clauses should be removed/restored.
39557
39558         * sem_ch8.ads:
39559         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
39560         whether use clauses should be removed/restored.
39561
39562 2003-10-26  Andreas Jaeger  <aj@suse.de>
39563
39564         * Makefile.in: Remove duplicated lines.
39565
39566 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
39567
39568         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
39569         minimize the differences with ACT tree.
39570
39571         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
39572         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
39573         Gnatvsn.Gnat_Static_Version_String to reduce differences between
39574         ACT and FSF trees.
39575
39576 2003-10-24  Pascal Obry  <obry@gnat.com>
39577
39578         PR ada/12014
39579         * adadecode.c (ostrcpy): New function.
39580         (__gnat_decode): Use ostrcpy of strcpy.
39581         (has_prefix): Set first parameter a const.
39582         (has_suffix): Set first parameter a const.
39583         Update copyright notice. Fix source name in header.
39584         Removes a trailing space.
39585
39586 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
39587
39588         * exp_disp.adb:
39589         Remove the test against being in No_Run_Time_Mode before generating a
39590         call to Register_Tag. It is redundant with the test against the
39591         availability of the function Register_Tag.
39592
39593 2003-10-24  Vincent Celier  <celier@gnat.com>
39594
39595         * g-catiio.adb: (Month_Name): Correct spelling of February
39596
39597         * make.adb: (Mains): New package
39598         (Initialize): Call Mains.Delete
39599         (Gnatmake): Check that each main on the command line is a source of a
39600         project file and, if there are several mains, each of them is a source
39601         of the same project file.
39602         (Gnatmake): When a foreign language is specified in attribute Languages,
39603         no main is specified on the command line and attribute Mains is not
39604         empty, only build the Ada main. If there is no Ada main, just compile
39605         the Ada sources and their closure.
39606         (Gnatmake): If a main is specified on the command line with directory
39607         information, check that the source exists and, if it does, that the path
39608         is the actual path of a source of a project.
39609
39610         * prj-env.adb:
39611         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
39612         Full_Path is True, return the full path instead of the simple file name.
39613         (Project_Of): New function
39614
39615         * prj-env.ads:
39616         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
39617         defaulted to False.
39618         (Project_Of): New function
39619
39620 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
39621
39622         * Makefile.generic:
39623         Ensure objects of main project are always checked and rebuilt if needed.
39624         Set CC to gcc by default.
39625         Prepare new handling of link by creating a global archive (not activated
39626         yet).
39627
39628         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
39629         stringt.h: Update copyright notice. Remove trailing blanks.
39630         Fix source name in header.
39631
39632 2003-10-24  Robert Dewar  <dewar@gnat.com>
39633
39634         * sem_ch12.adb: Minor reformatting
39635
39636         * sem_ch3.adb:
39637         Minor reformatting (including new function return style throughout)
39638
39639         * sem_ch3.ads:
39640         Minor reformatting (including new function return style throughout)
39641
39642 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
39643
39644         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
39645         stringt.h: Update copyright notice. Remove trailing blanks.
39646         Fix source name in header.
39647
39648 2003-10-24  GNAT Script  <nobody@gnat.com>
39649
39650         * Make-lang.in: Makefile automatically updated
39651
39652 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
39653
39654         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
39655         stringt.h: Convert to ISO C90 declarations and definitions.
39656
39657 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
39658
39659         PR ada/11978
39660         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
39661         External_Tag attribute definition clauses.
39662
39663 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
39664
39665         PR ada/7613
39666         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
39667         child unit, generate a fully qualified name to avoid spurious errors
39668         when the context contains renamings of different child units with
39669         the same simple name.
39670
39671         * exp_dbug.ads: Add documentation on name qualification for renamings
39672         of child units.
39673
39674 2003-10-23  Robert Dewar  <dewar@gnat.com>
39675
39676         * g-regpat.ads, g-regpat.adb: Minor reformatting
39677
39678 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
39679
39680         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
39681
39682 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39683
39684         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
39685         Machine call.
39686
39687         * urealp.h: (Machine): Update to proper definition.
39688
39689 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
39690
39691         * init.c, adaint.c: Minor reformatting.
39692
39693 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
39694
39695         * adaint.c (w32_epoch_offset): Define static const at file level.
39696         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
39697         rather than t_create, t_access in call to GetFileTime. Use union
39698         to convert between FILETIME and  unsigned long long.
39699         (__gnat_file_time_name): Test for invalid file handle.
39700         (__gnat_set_filetime_name): Support win32 targets using
39701         w32api SetFileTime.
39702
39703 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
39704
39705         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
39706
39707         * ctrl_c.c (__gnat_int_handler): Remove declaration.
39708
39709         * decl.c (creat_concat_name):  Const-ify prefix.
39710
39711         * adaint.c: Include ctype.h if __MINGW32__.
39712         (__gnat_readlink): Mark arguments as possibly unused.
39713         (__gnat_symlink): Likewise.
39714         (__gnat_is_symbolic_link): Likewise.
39715         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
39716         declaration
39717         (__gnat_file_time_name): Don't declare struct stat statbuf when
39718         not needed.
39719         (__gnat_is_absolute_path): Add parenthesis around condition of
39720         'if' statement to avoid warning.
39721         (__gnat_plist_init): Specify void as parameter.
39722         (plist_enter): Likewise.
39723         (plist_leave): Likewise.
39724         (remove_handle): Make static. Initialize prev.
39725
39726 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
39727
39728         PR ada/10110
39729         * Makefile.in: Disable build of gnatpsta.
39730         * cstreams.c (__gnat_full_name): Minor improvements and clean up
39731         of previous change.
39732
39733 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
39734
39735         * tracebak.c (MAX): Avoid redefinition warning.
39736
39737         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
39738         Change msg to const char *.
39739         (__gnat_install_handler): Remove ss, unused.
39740         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
39741         to const char *.
39742         * cstreams.c (__gnat_full_name): Declare p only when used.
39743         (__gnat_full_name) [sgi] Return buffer.
39744
39745 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
39746
39747         * mingw32.h: New file.
39748         * gnat_wrapper.adb: New file.
39749
39750 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
39751
39752         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
39753         string match a pre compiled regular expression (the corresponding
39754         version of the function working on a raw regular expression)
39755         Fix typos in various comments
39756         Update copyright notice in spec
39757
39758 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
39759
39760         * exp_ch3.adb:
39761         (Component_Needs_Simple_Initialization): Return False when the type is a
39762         packed bit array. Revise spec comments to document this case.
39763
39764         * exp_prag.adb:
39765         (Expand_Pragma_Import): Set any expression on the imported object to
39766         empty to avoid initializing imported objects (in particular this
39767         covers the case of zero-initialization of bit arrays).
39768         Update copyright notice.
39769
39770 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
39771
39772         * sem_ch12.adb:
39773         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
39774         a subunit is missing.
39775         (Instantiate_Subprogram_Body): If body of function is missing, set type
39776         of return expression explicitly in dummy body, to prevent cascaded
39777         errors when a subunit is missing.
39778         Fixes PR 5677.
39779
39780         * sem_ch3.adb:
39781         (Access_Subprogram_Declaration): Verify that return type is valid.
39782         Fixes PR 8693.
39783
39784         * sem_elab.adb:
39785         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
39786         generic.
39787         Fixes PR 12318.
39788
39789         * sem_util.adb:
39790         (Corresponding_Discriminant): If the scope of the discriminant is a
39791         private type without discriminant, use its full view.
39792         Fixes PR 8247.
39793
39794 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
39795
39796         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
39797         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
39798         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
39799         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
39800         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
39801         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
39802         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
39803         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
39804         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
39805         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
39806         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
39807         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
39808         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
39809         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
39810         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
39811         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
39812         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
39813         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
39814         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
39815         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
39816         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
39817         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
39818         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
39819         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
39820         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
39821         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
39822         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
39823         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
39824         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
39825         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
39826         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
39827         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
39828         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
39829         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
39830         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
39831         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
39832         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
39833         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
39834         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
39835         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
39836         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
39837         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
39838         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
39839         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
39840         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
39841         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
39842         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
39843         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
39844         vms_conv.ads, vms_conv.adb, vms_data.ads,
39845         vxaddr2line.adb: Files added. Merge with ACT tree.
39846
39847         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
39848         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
39849         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
39850         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
39851         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
39852         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
39853         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
39854         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
39855         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
39856         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
39857
39858         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
39859         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
39860         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
39861         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
39862         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
39863         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
39864         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
39865         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
39866         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
39867         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
39868         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
39869         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
39870         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
39871         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
39872         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
39873         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
39874         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
39875         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
39876         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
39877         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
39878         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
39879         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
39880         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
39881         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
39882         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
39883         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
39884         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
39885         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
39886         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
39887         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
39888         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
39889         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
39890         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
39891         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
39892         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
39893         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
39894         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
39895         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
39896         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
39897         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
39898         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
39899         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
39900         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
39901         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
39902         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
39903         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
39904         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
39905         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
39906         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
39907         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
39908         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
39909         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
39910         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
39911         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
39912         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
39913         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
39914         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
39915         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
39916         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
39917         checks.adb, checks.ads, cio.c, comperr.adb,
39918         comperr.ads, csets.adb, cstand.adb, cstreams.c,
39919         debug_a.adb, debug_a.ads, debug.adb, decl.c,
39920         einfo.adb, einfo.ads, errout.adb, errout.ads,
39921         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
39922         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
39923         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
39924         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
39925         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
39926         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
39927         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
39928         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
39929         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
39930         fe.h, fmap.adb, fmap.ads, fname.adb,
39931         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
39932         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
39933         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
39934         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
39935         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
39936         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
39937         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
39938         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
39939         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
39940         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
39941         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
39942         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
39943         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
39944         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
39945         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
39946         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
39947         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
39948         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
39949         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
39950         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
39951         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
39952         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
39953         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
39954         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
39955         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
39956         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
39957         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
39958         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
39959         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
39960         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
39961         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
39962         layout.adb, lib.adb, lib.ads, lib-list.adb,
39963         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
39964         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
39965         link.c, live.adb, make.adb, make.ads,
39966         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
39967         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
39968         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
39969         misc.c, mkdir.c, mlib.adb, mlib.ads,
39970         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
39971         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
39972         namet.adb, namet.ads, namet.h, nlists.ads,
39973         nlists.h, nmake.adt, opt.adb, opt.ads,
39974         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
39975         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
39976         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
39977         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
39978         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
39979         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
39980         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
39981         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
39982         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
39983         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
39984         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
39985         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
39986         prj-util.adb, prj-util.ads, raise.c, raise.h,
39987         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
39988         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
39989         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
39990         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
39991         scans.ads, scn.adb, scn.ads, s-crc32.adb,
39992         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
39993         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
39994         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
39995         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
39996         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
39997         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
39998         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
39999         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
40000         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
40001         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
40002         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
40003         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
40004         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
40005         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
40006         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
40007         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
40008         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
40009         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
40010         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
40011         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
40012         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
40013         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
40014         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
40015         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
40016         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
40017         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
40018         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
40019         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
40020         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
40021         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
40022         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
40023         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
40024         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
40025         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
40026         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
40027         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
40028         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
40029         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
40030         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
40031         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
40032         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
40033         stringt.adb, stringt.ads, stringt.h, style.ads,
40034         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
40035         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
40036         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
40037         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
40038         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
40039         table.adb, table.ads, targparm.adb, targparm.ads,
40040         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
40041         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
40042         ttypes.ads, types.ads, types.h, uintp.adb,
40043         uintp.ads, uintp.h, uname.adb, urealp.adb,
40044         urealp.ads, urealp.h, usage.adb, utils2.c,
40045         utils.c, validsw.adb, validsw.ads, widechar.adb,
40046         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
40047         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
40048         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
40049         gnatvsn.ads: Merge with ACT tree.
40050
40051         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
40052
40053 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
40054
40055         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
40056         (gnat_ug_vmx.info): Likewise.
40057         (gnat_ug_vxw.info): Likewise.
40058         (gnat_ug_wnt.info): Likewise.
40059         (gnat_rm.info): Likewise.
40060         (gnat-style.info): Likewise.
40061
40062         * Make-lang.in (ada.install-info): Remove target.
40063         (info): New target.
40064         (install-info): Likewise.
40065         (gnat_ug_unx.info): Simplify rule.
40066         (gnat_ug_vmx.info): Likewise.
40067         (gnat_ug_vxw.info): Likewise.
40068         (gnat_ug_wnt.info): Likewise.
40069         (gnat_rm.info): Likewise.
40070         (gnat-style.info): Likewise.
40071
40072 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
40073
40074         * Make-lang.in: Replace uses of $(target_alias) with
40075         $(target_noncanonical).
40076         * ada/Makefile.in: Remove unused mention of $(target_alias).
40077
40078 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
40079
40080         * Make-lang.in (ada.info): Replace with ...
40081         (info): ... this.
40082         (ada.dvi): Replace with ...
40083         (dvi): ... this.
40084
40085 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
40086
40087         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
40088         initialize dconstp5 and dconstmp5.
40089
40090 2003-09-28  Richard Henderson  <rth@redhat.com>
40091
40092         * trans.c (tree_transform): Update call to expand_asm_operands.
40093
40094 2003-09-21  Richard Henderson  <rth@redhat.com>
40095
40096         * trans.c, utils.c: Revert.
40097
40098 2003-09-21  Richard Henderson  <rth@redhat.com>
40099
40100         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
40101         change to const.
40102
40103 2003-09-04  Michael Matz  <matz@suse.de>
40104
40105         * misc.c: Include "target.h".
40106         * Make-lang.in (misc.o): Add dependency on target.h.
40107
40108 2003-09-03  DJ Delorie  <dj@redhat.com>
40109
40110         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
40111         hook.
40112
40113 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
40114
40115         * Makefile.in: Update substitutions to match changes to
40116         configure.  Use include directives instead of @-insertions
40117         to read in host and target fragments.  Add a rule to
40118         regenerate ada/Makefile.
40119
40120 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
40121
40122         * lang-options.h: Remove.
40123         * lang.opt: Add help text.
40124
40125 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
40126
40127         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
40128         calls.
40129
40130 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
40131
40132         * misc.c (gnat_handle_option): Don't handle filenames.
40133
40134 2003-07-04  H.J. Lu  <hongjiu.lu@intel.com>
40135
40136         * Make-lang.in: Replace PWD with PWD_COMMAND.
40137         * Makefile.adalib: Likewise.
40138         * Makefile.in: Likewise.
40139
40140 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
40141
40142         * misc.c (gnat_argv): Revert last change.
40143         (gnat_handle_option, gnat_init_options): Copy arguments.
40144
40145 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
40146
40147         * misc.c (gnat_argv): Make const.
40148
40149 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
40150
40151         * misc.c (save_argc, save_argv): Keep non-static!
40152
40153 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
40154
40155         * misc.c (save_argc, save_argv): Make static.
40156         (gnat_init_options): New prototype.
40157         (gnat_init_options): Update.
40158
40159 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
40160
40161         * gnat_ug.texi: Remove unlikely characters from @vars.
40162         * gnat_ug_vms.texi: Regenerate.
40163
40164 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
40165
40166         * misc.c (record_code_position): Adjust emit_note call.
40167
40168 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
40169
40170         * misc.c (gnat_handle_option): Don't check for missing arguments.
40171
40172 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
40173
40174         * utils.c (end_subprog_body): Adjust expand_function_end call.
40175
40176 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
40177
40178         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
40179         Bind_Main_Program.
40180
40181 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
40182
40183         * lang.opt: Declare Ada.
40184         * misc.c (gnat_init_options): Update.
40185
40186 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
40187
40188         * utils.c (begin_subprog_body): Adjust init_function_start call.
40189
40190 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
40191
40192         * Make-lang.in: Update to use options.c and options.h.
40193         * misc.c: Include options.h not aoptions.h.
40194         (gnat_handle_option): Abort on unrecognized switch.
40195         (gnat_init_options): Request Ada switches.
40196
40197 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
40198
40199         * lang.opt: Add -Wall.
40200         * misc.c (gnat_handle_option): Handle it.
40201
40202 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
40203
40204         * misc.c (gnat_handle_option): Fix warnings.
40205
40206 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
40207
40208         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
40209
40210 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
40211
40212         * Make-lang.in: Update to handle command-line options.
40213         * lang.opt: New file.
40214         * misc.c: Include aoptions.h.
40215         (cl_options_count, cl_options): Remove.
40216         (gnat_handle_option): New.
40217         (gnat_decode_option): Remove.
40218         (LANG_HOOKS_DECODE_OPTION): Remove.
40219         (LANG_HOOKS_HANDLE_OPTION): Override.
40220
40221 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
40222
40223         * init.c, misc.c, trans.c, utils.c: Remove dead code.
40224
40225 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
40226
40227         * Makefile.in: Replace "host_canonical" with "host" for autoconf
40228         substitution.
40229
40230 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
40231
40232         * Make-lang.in: Update.
40233         * misc.c: Include opts.h. Define cl_options_count and cl_options.
40234
40235 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
40236
40237         * misc.c (gnat_init_options): Update.
40238
40239 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
40240
40241         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
40242         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
40243         __attribute__ ((__unused__)).
40244
40245 2003-06-05  Jan Hubicka  <jh@suse.cz>
40246
40247         * Make-lang.in:  Add support for stageprofile and stagefeedback
40248
40249 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
40250
40251         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
40252         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
40253
40254 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
40255
40256         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
40257         Remove non-VMS directive.
40258         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
40259         alternatives.
40260         (Examples of gnatls Usage): Remove VMS alternative.
40261
40262 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
40263
40264         PR ada/9953
40265         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
40266         and turn ZCX_By_Default back to False since the underlying support
40267         is not quite there yet.
40268
40269 2003-06-01  Andreas Jaeger  <aj@suse.de>
40270
40271         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
40272         and ROUND_TYPE_SIZE_UNIT.
40273
40274 2003-05-22   Geert Bosch  <bosch@gnat.com>
40275
40276         * gnat_rm.texi : Remove reference to Ada Core Technologies.
40277
40278 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
40279
40280         * trans.c (tree_transform): Use location_t and input_location
40281         directly.
40282         (build_unit_elab): Likewise.
40283         * utils.c (create_label_decl): Likewise.
40284
40285 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
40286
40287         * trans.c (tree_transform, build_unit_elab,
40288         set_lineno): Rename lineno to input_line.
40289         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
40290         end_subprog_body): Likewise.
40291         * utils2.c (build_call_raise): Likewise.
40292
40293 2003-05-01  Laurent Guerby  <guerby@acm.org>
40294
40295         PR ada/10546
40296         * 5iosinte.ads: Increase pthread_cond_t size to match recent
40297         LinuxThread and NPTL version, merge from ACT.
40298
40299 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
40300
40301         * utils.c (convert): No need to clear TREE_CST_RTL.
40302
40303 2003-04-23   Geert Bosch  <bosch@gnat.com>
40304
40305         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
40306         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
40307         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
40308         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
40309         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
40310         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
40311         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
40312         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
40313         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
40314         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
40315         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
40316         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
40317         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
40318         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
40319         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
40320         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
40321         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
40322         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
40323         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
40324         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
40325         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
40326         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
40327         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
40328         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
40329         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
40330         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
40331         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
40332         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
40333         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
40334         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
40335         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
40336         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
40337         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
40338         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
40339         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
40340         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
40341         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
40342         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
40343         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
40344         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
40345         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
40346         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
40347         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
40348         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
40349         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
40350         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
40351         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
40352         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
40353         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
40354         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
40355         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
40356         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
40357         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
40358         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
40359         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
40360         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
40361         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
40362         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
40363         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
40364         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
40365         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
40366         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
40367         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
40368         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
40369         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
40370         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
40371         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
40372         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
40373         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
40374         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
40375         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
40376         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
40377         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
40378         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
40379         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
40380         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
40381         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
40382         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
40383         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
40384         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
40385         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
40386         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
40387         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
40388         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
40389         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
40390         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
40391         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
40392         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
40393         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
40394         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
40395         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
40396         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
40397         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
40398         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
40399         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
40400         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
40401         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
40402         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
40403         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
40404         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
40405         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
40406         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
40407         ali.adb, ali.ads, alloc.ads, argv.c,
40408         atree.adb, atree.ads, atree.h, aux-io.c,
40409         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
40410         binde.adb, binde.ads, binderr.adb, binderr.ads,
40411         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
40412         butil.adb, butil.ads, cal.c, calendar.ads,
40413         casing.adb, casing.ads, ceinfo.adb, checks.adb,
40414         checks.ads, cio.c, comperr.adb, comperr.ads,
40415         config-lang.in, csets.adb, csets.ads, csinfo.adb,
40416         cstand.adb, cstand.ads, cuintp.c, debug.adb,
40417         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
40418         dec-io.ads, dec.ads, deftarg.c, directio.ads,
40419         einfo.adb, einfo.ads, elists.adb, elists.ads,
40420         elists.h, errno.c, errout.adb, errout.ads,
40421         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
40422         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
40423         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
40424         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
40425         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
40426         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
40427         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
40428         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
40429         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
40430         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
40431         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
40432         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
40433         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
40434         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
40435         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
40436         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
40437         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
40438         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
40439         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
40440         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
40441         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
40442         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
40443         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
40444         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
40445         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
40446         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
40447         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
40448         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
40449         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
40450         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
40451         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
40452         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
40453         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
40454         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
40455         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
40456         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
40457         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
40458         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
40459         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
40460         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
40461         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
40462         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
40463         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
40464         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
40465         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
40466         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
40467         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
40468         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
40469         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
40470         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
40471         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
40472         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
40473         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
40474         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
40475         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
40476         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
40477         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
40478         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
40479         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
40480         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
40481         lib.adb, lib.ads, live.adb, live.ads,
40482         machcode.ads, make.adb, make.ads, makeusg.adb,
40483         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
40484         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
40485         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
40486         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
40487         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
40488         mlib.ads, namet.adb, namet.ads, nlists.adb,
40489         nlists.ads, opt.adb, opt.ads, osint-b.adb,
40490         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
40491         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
40492         osint.ads, output.adb, output.ads, par-ch10.adb,
40493         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
40494         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
40495         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
40496         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
40497         par-tchk.adb, par-util.adb, par.adb, par.ads,
40498         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
40499         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
40500         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
40501         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
40502         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
40503         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
40504         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
40505         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
40506         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
40507         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
40508         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
40509         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
40510         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
40511         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
40512         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
40513         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
40514         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
40515         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
40516         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
40517         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
40518         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
40519         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
40520         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
40521         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
40522         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
40523         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
40524         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
40525         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
40526         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
40527         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
40528         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
40529         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
40530         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
40531         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
40532         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
40533         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
40534         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
40535         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
40536         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
40537         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
40538         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
40539         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
40540         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
40541         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
40542         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
40543         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
40544         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
40545         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
40546         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
40547         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
40548         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
40549         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
40550         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
40551         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
40552         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
40553         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
40554         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
40555         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
40556         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
40557         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
40558         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
40559         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
40560         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
40561         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
40562         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
40563         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
40564         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
40565         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
40566         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
40567         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
40568         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
40569         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
40570         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
40571         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
40572         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
40573         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
40574         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
40575         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
40576         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
40577         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
40578         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
40579         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
40580         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
40581         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
40582         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
40583         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
40584         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
40585         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
40586         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
40587         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
40588         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
40589         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
40590         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
40591         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
40592         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
40593         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
40594         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
40595         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
40596         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
40597         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
40598         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
40599         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
40600         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
40601         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
40602         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
40603         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
40604         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
40605         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
40606         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
40607         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
40608         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
40609         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
40610         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
40611         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
40612         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
40613         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
40614         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
40615         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
40616         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
40617         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
40618         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
40619         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
40620         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
40621         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
40622         snames.ads, sprint.adb, sprint.ads, stand.adb,
40623         stand.ads, stringt.adb, stringt.ads, style.adb,
40624         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
40625         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
40626         switch-m.ads, switch.adb, switch.ads, system.ads,
40627         table.adb, table.ads, targparm.adb, targparm.ads,
40628         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
40629         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
40630         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
40631         ttypef.ads, ttypes.ads, types.adb, types.ads,
40632         uintp.adb, uintp.ads, uname.adb, uname.ads,
40633         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
40634         usage.adb, usage.ads, validsw.adb, validsw.ads,
40635         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
40636         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
40637         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
40638         formatting and other trivial changes from ACT.
40639
40640 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
40641
40642         * gigi.h, utils2.c (build_constructor):
40643         Rename gnat_build_constructor. Use build_constructor.
40644         * decl.c (gnat_to_gnu_entity)
40645         * trans.c (tree_transform, pos_to_constructor, extract_values)
40646         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
40647         (unchecked_convert)
40648         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
40649         (fill_vms_descriptor):
40650         Update to match.
40651
40652 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
40653
40654         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
40655         * misc.c (gnat_tree_size): New function.
40656         (LANG_HOOKS_TREE_SIZE): Override.
40657
40658 2003-04-03  Jason Merrill  <jason@redhat.com>
40659
40660         * misc.c (gnat_adjust_rli): #if 0.
40661
40662 2003-03-31   Geert Bosch  <bosch@gnat.com>
40663
40664         PR ada/10020
40665         * link.c : Fix misspelled "const" keyword
40666
40667 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
40668
40669         PR c++/7086
40670         * utils2.c: Adjust calls to put_var_into_stack.
40671
40672 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
40673
40674         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
40675
40676 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
40677
40678         * misc.c (gnat_init): Update for new prototype.
40679
40680 2003-03-05  Olivier Hainque  <hainque@gnat.com>
40681
40682         ada/9961
40683         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
40684         warning, and fix return type for the IN_RTS && !SJLJ case.
40685
40686 2003-03-04  Tom Tromey  <tromey@redhat.com>
40687
40688         * Make-lang.in (ada.tags): New target.
40689
40690 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
40691
40692         ada/9911
40693         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
40694         wrapper, which name remains constant whatever underlying GCC
40695         scheme.
40696
40697         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
40698         the stable interface needed for a-except.
40699
40700 2003-03-02  Andreas Jaeger  <aj@suse.de>
40701
40702         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40703         gnat_ug_wnt.texi: Regenerate.
40704
40705 2003-03-02  Laurent Guerby  <guerby@acm.org>
40706
40707         * Makefile.in (install-gnatlib): Match previous change there
40708         so it works.
40709
40710 2003-02-28  Andreas Schwab  <schwab@suse.de>
40711
40712         * Make-lang.in (install-gnatlib): Change to ada directory before
40713         running make instead of using ada/Makefile directly.
40714
40715 2003-02-18  Ben Elliston  <bje@redhat.com>
40716
40717         Part of PR ada/9406
40718         * gnat_ug.texi (Binder output file): Grammar fix.
40719
40720 2003-02-18  Ben Elliston  <bje@redhat.com>
40721
40722         PR other/7350
40723         * 5qtaprop.adb (Sleep): Fix typo in comment.
40724
40725 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
40726
40727         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
40728         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40729         gnat_ug_wnt.texi: Regenerate.
40730
40731 2003-02-03  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
40732
40733         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
40734         be created if necessary.
40735         (ada.install-common): Let $(DESTDIR)$(bindir) be created
40736         if necessary.  Remove erroneous and redundant gnatchop
40737         installation commands.  Test for gnatdll before attempting
40738         to install it.
40739         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
40740         and gnatdll from all plausible locations.
40741
40742 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
40743
40744         * utils2.c (build_unary_op): Don't check flag_volatile.
40745         * gnat_ug.texi: Remove -fvolatile from example.
40746         * gnat_ug_vxw.texi: Likewise.
40747
40748 2003-01-29  Laurent Guerby  <guerby@acm.org>
40749
40750         PR ada/8344
40751         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
40752         * Makefile.in: match previous change.
40753         * Make-lang.in: match previous change.
40754
40755 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
40756
40757         * 5rosinte.ads: Add SIGXCPU.
40758         * 5rtpopsp.adb: New file.
40759         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
40760         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
40761         specific file 5rtpopsp.adb.
40762         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
40763         is likely needed for all newlib targets.
40764         * init.c: Add RTEMS specific version of __gnat_initialize().
40765
40766 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
40767
40768         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
40769
40770 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
40771
40772         * init.c (__gnat_error_handler): Make msg const.
40773
40774         * gmem.c (convert_addresses): Move declaration ...
40775         * adaint.h: ... here.
40776         * adaint.c (convert_addresses): Adapt addrs type to match
40777         prototype.
40778
40779         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
40780
40781 2003-01-24  Andreas Schwab  <schwab@suse.de>
40782
40783         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
40784         size_t to avoid warning.
40785
40786 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
40787
40788         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
40789
40790 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
40791
40792         * gnat_rm.texi: Remove RCS version number.
40793
40794         * ada-tree.h (union lang_tree_node): Add chain_next option.
40795
40796 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
40797
40798         * Make-lang.in (ada.install-info, ada.install-common,
40799         ada.uninstall): Prepend $(DESTDIR) to the destination
40800         directory in all (un)installation commands.
40801         * Makefile.in (install-gnatlib, install-rts): Ditto.
40802
40803 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
40804
40805         * gnat_rm.texi, gnat_ug.texi: Use @copying.
40806         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40807         gnat_ug_wnt.texi: Regenerate.
40808
40809 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
40810
40811         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
40812         only.
40813         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
40814         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
40815         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
40816         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
40817         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
40818         $(srcdir)/doc/include/gcc-common.texi.
40819
40820 2002-12-15   Geert Bosch  <bosch@gnat.com>
40821
40822         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
40823
40824 2002-12-14   Geert Bosch  <bosch@gnat.com>
40825
40826         PR ada/5690
40827         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
40828         case of a body created for a Renaming_As_Body, on which
40829         conformance checks are not performed.
40830
40831 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
40832
40833         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
40834         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
40835         not already included.
40836         * Make-lang.in: Update dependencies.
40837
40838 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
40839         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
40840         solution to buffer overflow bug on GNU/Linux.
40841
40842 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
40843
40844         PR ada/5856
40845         PR ada/6919
40846         * bindgen.adb: Remove all references to Public_Version.
40847         * comperr.adb: Remove all references to Public_Version and
40848         GNATPRO_Version; correct bug reporting instructions.
40849         * comperr.ads: Change to match bug box.
40850         * gnatvsn.ads: Remove all references to Public version and
40851         GNATPRO version.
40852
40853 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
40854
40855         PR ada/6919
40856         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
40857         GNU/Linux.
40858
40859         PR ada/6558
40860         * config-lang.in: Remove diff_excludes.
40861
40862 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
40863
40864         PR ada/8358
40865         * trans.c (gnu_pending_elaboration_lists): New GC root.
40866         (build_unit_elab): Use..
40867
40868 2002-10-30   Geert Bosch  <bosch@gnat.com>
40869
40870         PR ada/6558
40871         * misc.c : Include optabs.h
40872
40873         * Make-lang.in (misc.o): Add dependency on optabs.h
40874
40875 2002-10-29   Geert Bosch  <bosch@gnat.com>
40876
40877         PR ada/6558
40878         * Make-lang.in (gnatbind): Depend on CONFIG_H
40879
40880 2002-10-29  Geert bosch  <bosch@gnat.com>
40881
40882         PR ada/6558
40883         * misc.c: Unrevert misc.c (1.13)
40884
40885 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
40886
40887         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
40888         maintainership comments.
40889
40890 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
40891
40892         PR ada/5904
40893         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
40894         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
40895         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
40896         7staprop.adb: Correct statements in comments about
40897         maintainership of GNAT.
40898
40899         PR ada/5904
40900         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
40901         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
40902         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
40903         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
40904         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
40905         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
40906         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
40907         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
40908         comments about maintainership of GNAT.
40909
40910         PR ada/6919 (forward port of patch for PR ada/5904)
40911         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
40912         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
40913         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
40914         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
40915         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
40916         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
40917         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
40918         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
40919         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
40920         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
40921         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
40922         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
40923         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
40924         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
40925         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
40926         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
40927         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
40928         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
40929         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
40930         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
40931         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
40932         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
40933         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
40934         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
40935         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
40936         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
40937         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
40938         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
40939         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
40940         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
40941         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
40942         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
40943         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
40944         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
40945         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
40946         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
40947         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
40948         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
40949         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
40950         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
40951         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
40952         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
40953         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
40954         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
40955         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
40956         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
40957         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
40958         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
40959         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
40960         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
40961         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
40962         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
40963         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
40964         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
40965         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
40966         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
40967         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
40968         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
40969         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
40970         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
40971         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
40972         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
40973         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
40974         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
40975         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
40976         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
40977         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
40978         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
40979         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
40980         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
40981         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
40982         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
40983         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
40984         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
40985         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
40986         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
40987         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
40988         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
40989         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
40990         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
40991         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
40992         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
40993         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
40994         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
40995         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
40996         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
40997         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
40998         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
40999         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
41000         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
41001         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
41002         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
41003         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
41004         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
41005         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
41006         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
41007         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
41008         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
41009         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
41010         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
41011         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
41012         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
41013         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
41014         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
41015         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
41016         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
41017         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
41018         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
41019         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
41020         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
41021         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
41022         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
41023         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
41024         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
41025         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
41026         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
41027         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
41028         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
41029         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
41030         par-endh.adb par-labl.adb par-load.adb par-prag.adb
41031         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
41032         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
41033         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
41034         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
41035         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
41036         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
41037         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
41038         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
41039         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
41040         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
41041         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
41042         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
41043         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
41044         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
41045         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
41046         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
41047         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
41048         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
41049         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
41050         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
41051         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
41052         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
41053         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
41054         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
41055         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
41056         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
41057         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
41058         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
41059         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
41060         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
41061         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
41062         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
41063         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
41064         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
41065         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
41066         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
41067         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
41068         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
41069         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
41070         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
41071         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
41072         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
41073         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
41074         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
41075         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
41076         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
41077         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
41078         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
41079         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
41080         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
41081         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
41082         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
41083         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
41084         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
41085         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
41086         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
41087         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
41088         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
41089         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
41090         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
41091         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
41092         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
41093         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
41094         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
41095         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
41096         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
41097         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
41098         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
41099         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
41100         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
41101         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
41102         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
41103         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
41104         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
41105         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
41106         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
41107         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
41108         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
41109         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
41110         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
41111         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
41112         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
41113         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
41114         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
41115         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
41116         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
41117         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
41118         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
41119         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
41120         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
41121         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
41122         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
41123         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
41124         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
41125         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
41126         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
41127         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
41128         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
41129         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
41130         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
41131         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
41132         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
41133         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
41134         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
41135         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
41136         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
41137         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
41138         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
41139         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
41140         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
41141         stringt.ads stringt.h style.adb style.ads stylesw.adb
41142         stylesw.ads switch.adb switch.ads sysdep.c system.ads
41143         table.adb table.ads targparm.adb targparm.ads targtyps.c
41144         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
41145         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
41146         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
41147         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
41148         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
41149         usage.ads utils.c utils2.c validsw.adb validsw.ads
41150         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
41151         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
41152         xtreeprs.adb: Correct statements in comments about maintainership
41153         of GNAT.
41154
41155 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
41156
41157         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
41158         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
41159         * gnatvsn.ads: Gnat_Version_String is now a function.
41160         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
41161         copy the C version_string into a String and return it.
41162         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
41163         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
41164         Remove pragma Ident (Gnat_Version_String).  If this was the
41165         sole use of package Gnatvsn, remove the with statement too.
41166         * gnat1drv.adb: Tweak -gnatv output.
41167
41168 2002-09-17  Richard Henderson  <rth@redhat.com>
41169
41170         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
41171         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
41172         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
41173         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
41174         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
41175         and real_2expN instead of a loop.
41176         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
41177         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
41178
41179 2002-08-25  Andre Leis  <a.leis@gmx.net>
41180             David Billinghurst  <David.Billinghurst@riotinto.com>
41181
41182         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
41183
41184 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
41185
41186         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
41187         Remove $(CONFIG_H) dependency.
41188
41189 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
41190
41191         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
41192
41193 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
41194
41195         * adadecode.c (ada_demangle): Use xstrdup in lieu of
41196         xmalloc/strcpy.
41197         * misc.c (gnat_decode_option): Likewise.
41198
41199 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
41200
41201         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
41202         function approach did not work well because of a side effect (the
41203         function call could reallocate the table which was being indexed
41204         using its result). Fixes ada/4851. [RESURRECTED]
41205
41206 2002-07-01  Roger Sayle  <roger@eyesopen.com>
41207
41208         * ada/utils.c (builtin_function): Accept an additional parameter.
41209
41210 2002-06-28  Andreas Jaeger  <aj@suse.de>
41211
41212         PR ada/7144
41213         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
41214         <adi@thur.de>.
41215
41216 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
41217
41218         * Makefile.in (SHELL): Set to @SHELL@.
41219
41220 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
41221
41222         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
41223         array size calculation.
41224
41225 2002-06-04  Andreas Jaeger  <aj@suse.de>
41226
41227         * Make-lang.in (gnatbind): Readd rule that has been lost in last
41228         patch.
41229
41230 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
41231
41232         Merge from pch-branch:
41233
41234         * config-lang.in (gtfiles): Add ada-tree.h.
41235         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
41236         (SET_TYPE_MODULUS): New.
41237         (SET_TYPE_INDEX): New.
41238         (SET_TYPE_DIGITS_VALUE): New.
41239         (SET_TYPE_RM_SIZE): New.
41240         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
41241         (SET_TYPE_ADA_SIZE): New.
41242         (SET_TYPE_ACTUAL_BOUNDS): New.
41243         (SET_DECL_CONST_CORRESPONDING_VAR): New.
41244         (SET_DECL_ORIGINAL_FIELD): New.
41245         (TREE_LOOP_ID): Correct typo.
41246         * decl.c: Use new macros.
41247         * utils.c: Include debug.h, use new macros.
41248         * utils2.c: Use new macros.
41249
41250         * ada-tree.h: Update all macros for new tree description.
41251         (struct tree_loop_id): New.
41252         (union lang_tree_node): New.
41253         (struct lang_decl): New.
41254         (struct lang_type): New.
41255         * misc.c (gnat_mark_tree): Delete.
41256         (LANG_HOOKS_MARK_TREE): Delete.
41257         * trans.c (tree_transform): No longer any need to cast
41258         for TREE_LOOP_ID.
41259
41260         * utils.c (struct language_function): New dummy structure.
41261
41262         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
41263         (misc.o): Likewise.
41264         (utils.o): Likewise; also gtype-ada.h.
41265         * Make-lang.in (gnat1): Add dependency on s-gtype.
41266         (gnatbind): Add dependency on $(CONFIG_H).
41267         * utils.c: Correct last #include.
41268         (stuct e_stack): Remove unnecessary 'static'.
41269         (mark_e_stack): Remove unused prototype.
41270
41271         * scn-nlit.adb: Remove whitespace after version number to
41272         keep lines under 80 chars.
41273         * snames.adb: Likewise.
41274         * treepr.ads: Likewise.
41275
41276         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
41277         (misc.o): Likewise.
41278         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
41279         * config-lang.in (gtfiles): New.
41280         * decl.c: Use gengtype for roots.
41281         * gigi.h: Use gengtype for roots.
41282         * trans.c: Use gengtype for roots.
41283         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
41284
41285 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
41286
41287         * misc.c (gnat_init): Adjust setting of internal_error_function.
41288
41289 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
41290
41291         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
41292         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
41293         gnat_ug_wnt.texi: Regenerate.
41294
41295 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
41296
41297         * 5ntaprop.adb (with System.OS_Primitives): Remove.
41298
41299         * cstreams.c (max_path_len): Move from here ...
41300         * adaint.c (__gnat_max_path_len): ... to here.
41301         * adaint.c (__gnat_max_path_len): Declare.
41302         * g-dirope.adb (Max_Path): Adjust.
41303         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
41304         * i-cstrea.ads (max_path_len): Adjust.
41305         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
41306         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
41307
41308         * Makefile.in, Make-lang.in: Documentation is now built in
41309         Make-lang.in.  Store Info and generated Texinfo files in the
41310         source directory.
41311         * gnat_ug.texi: Remove CVS keywords, correct version number.
41312         Set file name correctly.
41313
41314         * gnat_ug_*.texi: Add.
41315         * .cvsignore: Ignore generated Texinfo files.
41316
41317 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
41318
41319         * ada.h: Add MI guard macro.
41320         (SUBTYPE): Define constants with an anonymous enum, not static
41321         const variables.
41322         (IN): Cast constants to appropriate type before use.
41323
41324 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
41325
41326         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
41327         (experimental)".
41328
41329 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
41330
41331         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
41332         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
41333         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
41334         (ALL_ADA_CFLAGS): Likewise.
41335         (ADA_INCLUDES): Likewise.
41336         Adapt for new working dir.
41337         (GNATBIND): Use Makefile.in version.
41338         (.SUFFIXES): Copy from Makefile.in.
41339         (ada-warn): Define.
41340         (.adb.o, .ads.o): Copy from Makefile.in.
41341         Added $(OUTPUT_OPTION).
41342         (GNAT1_C_OBJS): Moved from Makefile.in.
41343         Prefix with ada subdir.
41344         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
41345         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
41346         Adapt for new working dir.
41347         (EXTRA_GNATBIND_OBJS): Likewise.
41348         (ADA_BACKEND): Moved from Makefile.in.
41349         Renamed to avoid conflict with global BACKEND.
41350         Use that one.
41351         (TARGET_ADA_SRCS): Moved from Makefile.in.
41352         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
41353         Use ADA_BACKEND.
41354         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
41355         (ada_extra_files): Moved from Makefile.in.
41356         Prefix with ada subdir.
41357         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
41358         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
41359         (ada/nmake.ads): Likewise.
41360         (update-sources): Moved from Makefile.in.
41361         Prefix with ada subdir.
41362         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
41363         (ADA_TREE_H): Likewise.
41364         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
41365         (ada/memtrack.o): Likewise.
41366         (ada/adadecode.o): Likewise.
41367         Update dependencies.
41368         (ada/adaint.o): New.
41369         (ada/argv.o): Moved from Makefile.in.
41370         Prefix with ada subdir.
41371         Update dependencies.
41372         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
41373         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
41374         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
41375         Prefix with ada subdir.
41376         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
41377         (GNAT DEPENDENCIES): Regenerate.
41378         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
41379         toplevel Makefile.in.
41380         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
41381         (TARGET_ADA_SRCS): Removed.
41382         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
41383         (GNATBIND_OBJS): Likewise.
41384         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
41385         (BACKEND): Removed.
41386         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
41387         (TREE_H): Likewise.
41388         (ada_extra_files): Likewise.
41389         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
41390         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
41391         (update-sources): Likewise.
41392         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
41393         (ADA_TREE_H): Likewise.
41394         (adadecoce.o): Likewise.
41395         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
41396         (GNAT DEPENDENCIES): Likewise.
41397
41398 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
41399
41400         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
41401         * Makefile.in: Likewise.
41402
41403 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
41404
41405         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
41406         Restore $(CONFIG_H) and prefix.o dependencies.
41407         (ada.stage[1-4]): Depend on stage?-start.
41408
41409         * Makefile.in (b_gnatb.c): Depend on interfac.o.
41410
41411 2002-05-02  Jim Wilson  <wilson@redhat.com>
41412
41413         * utils.c (finish_record_type): Change record_size to record_type.
41414
41415 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
41416
41417         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
41418         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
41419         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
41420
41421 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
41422
41423         * misc.c (gnat_parse_file): Update.
41424
41425 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
41426
41427         * misc.c (gnat_init): Don't set lang_attribute_common.
41428
41429 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
41430
41431         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
41432
41433 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
41434
41435         * gnat_ug.texi: New file.
41436
41437         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
41438         instead of gfdl.texi
41439
41440         * xgnatug.adb, ug_words: New files.
41441
41442         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
41443         gnat_rm and gnat-style manuals.
41444
41445 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
41446
41447         * gigi.h (incomplete_type_error): Remove.
41448         * utils.c (incomplete_type_error): Remove.
41449
41450 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
41451
41452         * trans.c (tree_transform): Add has_scope argument to
41453         expand_start_stmt_expr.
41454
41455 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
41456
41457         * gigi.h (truthvalue_conversion): Rename.
41458         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
41459         * trans.c (tree_transform): Update.
41460         * utils2.c (truthvalue_conversion): Rename, update.
41461         (build_binary_op, build_unary_op): Update.
41462
41463 2002-04-04  Laurent Guerby  <guerby@acm.org>
41464
41465         * make.adb: Implement -margs, remove restriction about file name placement.
41466         * makeusg.adb: Documentation update.
41467         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
41468         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
41469
41470 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
41471
41472         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
41473         (builtin_function): Similarly.
41474
41475 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
41476
41477         * decl.c (gnat_to_gnu_entity): Update.
41478         * gigi.h (mark_addressable): Rename.
41479         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
41480         * trans.c (tree_transform): Update.
41481         * utils.c (create_var_decl): Update.
41482         * util2.c (build_binary_op, build_unary_op,
41483         fill_vms_descriptor): Update.
41484         (mark_addressable): Rename, update.
41485
41486 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
41487
41488         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
41489         Rename.
41490         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
41491         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
41492         * trans.c (tree_transform, convert_with_check): Update.
41493         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
41494         Rename.
41495
41496 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
41497
41498         * gigi.h (finish_incomplete_decl): Rename.
41499         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
41500         * utils.c (gnat_init_decl_processing): Don't set hook.
41501         (finish_incomplete_decl): Rename.
41502
41503 2002-03-29  Andreas Schwab  <schwab@suse.de>
41504
41505         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
41506         directory.
41507
41508 2001-03-28  Robert Dewar  <dewar@gnat.com>
41509
41510         * checks.ads:
41511         (Remove_Checks): New procedure
41512
41513         * checks.adb:
41514         (Remove_Checks): New procedure
41515
41516         * exp_util.adb:
41517         Use new Duplicate_Subexpr functions
41518         (Duplicate_Subexpr_No_Checks): New procedure
41519         (Duplicate_Subexpr_No_Checks_Orig): New procedure
41520         (Duplicate_Subexpr): Restore original form (checks duplicated)
41521         (Duplicate_Subexpr): Call Remove_Checks
41522
41523         * exp_util.ads:
41524         (Duplicate_Subexpr_No_Checks): New procedure
41525         (Duplicate_Subexpr_No_Checks_Orig): New procedure
41526         Add 2002 to copyright notice
41527
41528         * sem_util.adb: Use new Duplicate_Subexpr functions
41529
41530         * sem_eval.adb:
41531         (Eval_Indexed_Component): This is the place to call
41532         Constant_Array_Ref and to replace the value. We simply merge
41533         the code of this function in here, since it is now no longer
41534         used elsewhere. This fixes the problem of the back end not
41535         realizing we were clever enough to see that this was
41536         constant.
41537         (Expr_Val): Remove call to Constant_Array_Ref
41538         (Expr_Rep_Val): Remove call to Constant_Array_Ref
41539         Minor reformatting
41540         (Constant_Array_Ref): Deal with string literals (patch
41541         suggested by Zack Weinberg on the gcc list)
41542
41543 2001-03-28  Ed Schonberg  <schonber@gnat.com>
41544
41545         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
41546         Duplicate_Subexpr_Move_Checks.
41547
41548         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
41549         Duplicate_Subexpr_Move_Checks.
41550
41551         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
41552         value of array exists before retrieving it (it may a private
41553         protected component in a function).
41554
41555 2002-03-28   Geert Bosch  <bosch@gnat.com>
41556
41557         * prj-pp.adb : New file.
41558
41559         * prj-pp.ads : New file.
41560
41561 2002-03-28  Andreas Jaeger  <aj@suse.de>
41562
41563         * Makefile.in (stamp-sdefault): Fix path for Makefile.
41564
41565 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
41566
41567         * misc.c (gnat_expand_expr): Move prototype.
41568
41569 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
41570
41571         * misc.c (insert_default_attributes): Remove.
41572
41573 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
41574
41575         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
41576         (gnat_init): Don't set hook.
41577         (gnat_expand_expr): Fix prototype.
41578
41579 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
41580
41581         * misc.c (ggc_p): Remove.
41582
41583 2002-03-27  Geert Bosch  <bosch@gnat.com>
41584
41585         * prj-makr.ads, prj-makr.adb : New files.
41586
41587 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
41588
41589         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
41590         (lang_mark_tree): Make static, rename.
41591
41592 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
41593
41594         * misc.c (maybe_build_cleanup): Remove.
41595
41596 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
41597
41598         * gigi.h (yyparse): Remove.
41599
41600 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
41601
41602         From Ben Brosgol  <brosgol@gnat.com>
41603         * gnat_rm.texi: Sync with ACT version.
41604
41605 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
41606
41607         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
41608         (gnat_init): Remove old hook.
41609
41610 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
41611
41612         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
41613         (yyparse): Rename gnat_parse_file.
41614
41615 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
41616
41617         Delete all lines containing "$Revision:".
41618         * xeinfo.adb: Don't look for revision numbers.
41619         * xnmake.adb: Likewise.
41620         * xsinfo.adb: Likewise.
41621         * xsnames.adb: Likewise.
41622         * xtreeprs.adb: Likewise.
41623
41624 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
41625
41626         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
41627         gnat_tree_code_name): Delete.
41628         (tree_code_type, tree_code_length, tree_code_name): Define.
41629         (gnat_init): Don't try to copy into the various tree_code
41630         arrays.
41631
41632 2002-03-11  Richard Henderson  <rth@redhat.com>
41633
41634         * Makefile.in (.NOTPARALLEL): Add fake tag.
41635
41636 2002-03-07  Geert Bosch  <bosch@gnat.com>
41637
41638         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
41639         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
41640         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
41641         switch-m.adb, switch-m.ads : New files.
41642
41643 2002-03-07  Geert Bosch  <bosch@gnat.com>
41644
41645         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
41646         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
41647         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
41648         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
41649         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
41650         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
41651         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
41652         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
41653         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
41654         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
41655         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
41656         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
41657         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
41658         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
41659         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
41660         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
41661         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
41662         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
41663         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
41664         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
41665         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
41666         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
41667         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
41668         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
41669         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
41670         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
41671         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
41672         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
41673         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
41674         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
41675         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
41676         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
41677         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
41678         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
41679         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
41680         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
41681         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
41682         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
41683         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
41684         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
41685         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
41686         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
41687         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
41688         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
41689         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
41690         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
41691         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
41692         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
41693         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
41694         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
41695         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
41696         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
41697         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
41698         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
41699         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
41700         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
41701         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
41702         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
41703         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
41704         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
41705         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
41706         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
41707         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
41708         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
41709         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
41710         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
41711         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
41712         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
41713         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
41714         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
41715         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
41716         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
41717         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
41718         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
41719         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
41720         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
41721         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
41722         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
41723         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
41724         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
41725         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
41726         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
41727         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
41728         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
41729         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
41730         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
41731         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
41732         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
41733         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
41734         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
41735         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
41736         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
41737         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
41738         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
41739         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
41740         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
41741         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
41742
41743         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
41744         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
41745         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
41746         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
41747
41748         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
41749         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
41750
41751         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
41752         to mdll-fil.ad[bs] and mdll-util.ad[bs]
41753
41754         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
41755         from mdllfile.ad[bs] and mdlltool.ad[bs]
41756
41757 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
41758
41759         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
41760         lieu of explicit sizeof/sizeof.
41761
41762 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
41763
41764         * misc.c (copy_lang_decl): Remove.
41765
41766 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
41767
41768         * misc.c: Delete traditional-mode-related code copied from the
41769         C front end but not used, or used only to permit the compiler
41770         to link.
41771
41772 2002-02-07  Richard Henderson  <rth@redhat.com>
41773
41774         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
41775         * adaint.h (__gnat_to_gm_time): Update prototype.
41776
41777 2002-01-30  Richard Henderson  <rth@redhat.com>
41778
41779         * trans.c (tree_transform) [N_Loop_Statement]: Use
41780         expand_exit_loop_top_cond.
41781
41782 2001-12-23  Richard Henderson  <rth@redhat.com>
41783
41784         * utils.c (end_subprog_body): Push GC context around
41785         rest_of_compilation for nested functions.
41786
41787 2001-12-23  Richard Henderson  <rth@redhat.com>
41788
41789         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
41790
41791 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
41792
41793         * gnat-style.texi (Declarations and Types): Remove ancient style
41794         rule which was mandated by code generation issues.
41795
41796         * gnat-style.texi (header): Add @dircategory, @direntry.
41797         (title page): Remove date.
41798         (general) Add @./@: where approriate, and two spaces after the
41799         full stop at the end of a sentence.  Use @samp markup when
41800         referring concrete lexical entities (keywords, attribute names
41801         etc.), and @syntax for ARM grammar elements. Use @r for English
41802         text in comments.  Use @emph for emphasis.  Change "if-statements"
41803         etc. to "if statements" (without @samp). Break long lines.  Make
41804         casing of section names consistent.
41805         (Identifiers): Use @samp markup for variable names.
41806         (Comments): Use @samp markup for comment characters. Line-end
41807         comments may follow any Ada code, not just statements.  Fix
41808         misspelling of "Integer" as "integer".
41809         (Loop statements): Do not use variable name "I", use "J".
41810         (Subprogram Declarations): Document alignment.
41811         (Subprogram Bodies, Block statements): Document empty line before
41812         "begin".
41813
41814 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
41815
41816         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
41817         function approach did not work well because of a side effect (the
41818         function call could reallocate the table which was being indexed
41819         using its result). Fixes ada/4851.
41820
41821 2001-12-19  Robert Dewar  <dewar@gnat.com>
41822
41823         * bindgen.adb: Minor reformatting
41824
41825         * cstand.adb: Minor reformatting
41826
41827         * fmap.adb: Minor reformatting
41828         Change name from Add for Add_To_File_Map (Add is much too generic)
41829         Change Path_Name_Of to Mapped_Path_Name
41830         Change File_Name_Of to Mapped_File_Name
41831         Fix copyright dates in header
41832
41833         * fmap.ads:
41834         Change name from Add for Add_To_File_Map (Add is much too generic)
41835         Change Path_Name_Of to Mapped_Path_Name
41836         Change File_Name_Of to Mapped_File_Name
41837         Fix copyright dates in header
41838
41839         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
41840         Add use clause for Fmap.
41841
41842         * make.adb: Minor reformatting
41843
41844         * osint.adb: Minor reformatting.  Change of names in Fmap.
41845         Add use clause for Fmap.
41846
41847         * prj-env.adb: Minor reformatting
41848
41849         * prj-env.ads: Minor reformatting
41850
41851         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
41852         error found (there were odd exceptions to this general rule in
41853         -gnatec/-gnatem processing)
41854
41855 2001-12-19  Olivier Hainque  <hainque@gnat.com>
41856
41857         * raise.c (__gnat_eh_personality): Exception handling personality
41858         routine for Ada.  Still in rough state, inspired from the C++ version
41859         and still containing a bunch of debugging artifacts.
41860         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
41861         inspired from the C++ library.
41862
41863         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
41864         exception handling integration.
41865
41866 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
41867
41868         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
41869         (HIE_SOURCES): Add s-secsta.ad{s,b}.
41870         (HIE_OBJS): Add s-fat*.o
41871         (RAVEN_SOURCES): Remove files that are no longer required. Add
41872         interrupt handling files.
41873         (RAVEN_MOD): Removed, no longer needed.
41874
41875 2001-12-19  Robert Dewar  <dewar@gnat.com>
41876
41877         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
41878         Add 2001 to copyright date
41879
41880         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
41881         need to force universal inlining for these cases.
41882
41883 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
41884
41885         * s-taprob.adb: Minor clean ups so that this unit can be used in
41886         Ravenscar HI.
41887
41888         * exp_ch7.adb: Allow use of secondary stack in HI mode.
41889         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
41890
41891 2001-12-19  Vincent Celier  <celier@gnat.com>
41892
41893         * prj-tree.ads (Project_Node_Record): Add comments for components
41894         Pkg_Id and Case_Insensitive.
41895
41896 2001-12-19  Pascal Obry  <obry@gnat.com>
41897
41898         * g-socket.adb: Minor reformatting. Found while reading code.
41899
41900 2001-12-19  Robert Dewar  <dewar@gnat.com>
41901
41902         * prj-tree.ads: Minor reformatting
41903
41904 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
41905
41906         * config-lang.in (diff_excludes): Remove.
41907
41908 2001-12-17  Ed Schonberg  <schonber@gnat.com>
41909
41910         * sem_res.adb (Resolve_Selected_Component): do not generate a
41911         discriminant check if the selected component is a component of
41912         the argument of an initialization procedure.
41913
41914         * trans.c (tree_transform, case of arithmetic operators): If result
41915         type is private, the gnu_type is the base type of the full view,
41916         given that the full view itself may be a subtype.
41917
41918 2001-12-17  Robert Dewar  <dewar@gnat.com>
41919
41920         * sem_res.adb: Minor reformatting
41921
41922         * trans.c (tree_transform, case N_Real_Literal): Add missing third
41923         parameter in call to Machine (unknown horrible effects from this
41924         omission).
41925
41926         * urealp.h: Add definition of Round_Even for call to Machine
41927         Add third parameter for Machine
41928
41929 2001-12-17  Ed Schonberg  <schonber@gnat.com>
41930
41931         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
41932         predefined units in No_Run_Time mode.
41933
41934 2001-12-17  Richard Kenner  <kenner@gnat.com>
41935
41936         * misc.c (insn-codes.h): Now include.
41937
41938 2001-12-17  Olivier Hainque  <hainque@gnat.com>
41939
41940         * a-except.adb: Preparation work for future integration of the GCC 3
41941         exception handling mechanism
41942         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
41943         to factorize previous code sequences and make them externally callable,
41944         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
41945         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
41946         Use the new notification routines.
41947
41948 2001-12-17  Emmanuel Briot  <briot@gnat.com>
41949
41950         * prj-tree.ads (First_Choice_Of): Document the when others case
41951
41952 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
41953
41954         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
41955         HI-E mode, in order to support Ravenscar profile properly.
41956
41957         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
41958         mode on 32 bits targets.
41959
41960 2001-12-17  Vincent Celier  <celier@gnat.com>
41961
41962         * fmap.adb: Initial version.
41963
41964         * fmap.ads: Initial version.
41965
41966         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
41967         If search is successfully done, add to mapping.
41968
41969         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
41970
41971         * make.adb:
41972         (Gnatmake): Add new local variable Mapping_File_Name.
41973          Create mapping file when using project file(s).
41974          Delete mapping file before exiting.
41975
41976         * opt.ads (Mapping_File_Name): New variable
41977
41978         * osint.adb (Find_File): Use path name found in mapping, if any.
41979
41980         * prj-env.adb (Create_Mapping_File): New procedure
41981
41982         * prj-env.ads (Create_Mapping_File): New procedure.
41983
41984         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
41985         (Mapping_File)
41986
41987         * usage.adb: Add entry for new switch -gnatem.
41988
41989         * Makefile.in: Add dependencies for fmap.o.
41990
41991 2001-12-17  Ed Schonberg  <schonber@gnat.com>
41992
41993         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
41994         is a package instantiation rewritten as a package body.
41995         (Install_Withed_Unit): Undo previous change, now redundant.
41996
41997 2001-12-17  Gary Dismuke  <dismukes@gnat.com>
41998
41999         * layout.adb:
42000         (Compute_Length): Move conversion to Unsigned to callers.
42001         (Get_Max_Size): Convert Len expression to Unsigned after calls to
42002         Compute_Length and Determine_Range.
42003         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
42004         Compute_Length and Determine_Range.
42005         Above changes fix problem with length computation for supernull arrays
42006         where Max (Len, 0) wasn't getting applied due to the Unsigned
42007         conversion used by Compute_Length.
42008
42009 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
42010
42011         * rtsfind.ads:
42012         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
42013          System.Secondary_Stack.
42014         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
42015          in HI-E mode.
42016         Remove unused entity RE_Exception_Data.
42017
42018         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
42019
42020         * rident.ads (No_Secondary_Stack): New restriction.
42021
42022 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
42023
42024         * gnat_rm.texi: Fix minor typos. Found while reading the section
42025         regarding "Bit_Order Clauses" that was sent to a customer.
42026         Very interesting documentation!
42027
42028 2001-12-17  Robert Dewar  <dewar@gnat.com>
42029
42030         * sem_case.adb (Choice_Image): Avoid creating improper character
42031         literal names by using the routine Set_Character_Literal_Name. This
42032         fixes bombs in certain error message cases.
42033
42034 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
42035
42036         * a-reatim.adb: Minor reformatting.
42037
42038 2001-12-17  Ed Schonberg  <schonber@gnat.com>
42039
42040         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
42041         case where the formal is an extension of another formal in the current
42042         unit or in a parent generic unit.
42043
42044 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
42045
42046         * s-tposen.adb: Update comments.  Minor reformatting.
42047         Minor code clean up.
42048
42049         * s-tarest.adb: Update comments.  Minor code reorganization.
42050
42051 2001-12-17  Gary Dismukes  <dismukes@gnat.com>
42052
42053         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
42054         when Java_VM.
42055
42056 2001-12-17  Robert Dewa  <dewar@gnat.com>
42057
42058         * exp_attr.adb: Minor reformatting
42059
42060 2001-12-17  Ed Schonberg  <schonber@gnat.com>
42061
42062         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
42063         derivations nested within a child unit: verify that the parent
42064         type is declared in an outer scope.
42065
42066 2001-12-17  Robert Dewar  <dewar@gnat.com>
42067
42068         * sem_ch12.adb: Minor reformatting
42069
42070 2001-12-17  Ed Schonberg  <schonber@gnat.com>
42071
42072         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
42073         warning if current unit is a predefined one, from which bodies may
42074         have been deleted.
42075
42076 2001-12-17  Robert Dewar  <dewar@gnat.com>
42077
42078         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
42079         Fix header format. Add 2001 to copyright date.
42080
42081         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
42082         which caused CE during compilation if checks were enabled.
42083
42084 2001-12-17  Vincent Celier  <celier@gnat.com>
42085
42086         * make.adb:
42087         (Switches_Of): New function
42088         (Test_If_Relative_Path): New procedure
42089         (Add_Switches): Use new function Switches_Of
42090         (Collect_Arguments_And_Compile): Use new function Switches_Of.
42091         When using a project file, test if there are any relative
42092         search path. Fail if there are any.
42093         (Gnatmake): Only add switches for the primary directory when not using
42094         a project file. When using a project file, change directory to the
42095         object directory of the main project file. When using a project file,
42096         test if there are any relative search path. Fail if there are any.
42097         When using a project file, fail if specified executable is relative
42098         path with directory information, and prepend executable, if not
42099         specified as an absolute path, with the exec directory.  Make sure
42100         that only one -o switch is transmitted to the linker.
42101
42102         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
42103
42104         * prj-nmsc.adb:
42105         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
42106         when using a non standard naming scheme.
42107         (Check_Ada_Naming_Scheme): Make sure that error messages
42108         do not raise exceptions.
42109         (Is_Illegal_Append): Return True if there is no dot in the suffix.
42110         (Language_Independent_Check): Check the exec directory.
42111
42112         * prj.adb (Project_Empty): Add new component Exec_Directory
42113
42114         * prj.ads:
42115         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
42116         (Project_Data): Add component Exec_Directory
42117
42118         * snames.adb: Updated to match snames.ads revision 1.215
42119
42120         * snames.ads: Added Exec_Dir
42121
42122 2001-12-17  Robert Dewar  <dewar@gnat.com>
42123
42124         * make.adb: Minor reformatting
42125
42126         * prj-nmsc.adb: Minor reformatting
42127
42128         * snames.adb: Updated to match snames.ads
42129
42130         * snames.ads: Alphebetize entries for project file
42131
42132 2001-12-17  Ed Schonberg  <schonber@gnat.com>
42133
42134         * trans.c (process_freeze_entity): Do nothing if the entity is a
42135         subprogram that was already elaborated.
42136
42137 2001-12-17  Richard Kenner  <kenner@gnat.com>
42138
42139         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
42140         and Esize if object is referenced via pointer.
42141
42142 2001-12-17  Ed Schonberg  <schonber@gnat.com>
42143
42144         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
42145         is discrete before analyzing choices.
42146
42147 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
42148
42149         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
42150         containing the name of the Ada Main Program. This string is mainly
42151         intended for the debugger.
42152         (Gen_Output_File_C): Do the equivalent change when generating a C file.
42153
42154 2001-12-17  Robert Dewar  <dewar@gnat.com>
42155
42156         * ali.adb: Set new Dummy_Entry field in dependency entry
42157
42158         * ali.ads: Add Dummy_Entry field to source dependency table
42159
42160         * bcheck.adb (Check_Consistency): Ignore dummy D lines
42161
42162         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
42163
42164         * lib-writ.ads: Document dummy D lines for missing files.
42165
42166         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
42167
42168 2001-12-17  Robert Dewar  <dewar@gnat.com>
42169
42170         * ali.adb: Type reference does not reset current file.
42171
42172         * ali.adb: Recognize and scan renaming reference
42173
42174         * ali.ads: Add spec for storing renaming references.
42175
42176         * lib-xref.ads: Add documentation for handling of renaming references
42177
42178         * lib-xref.adb: Implement output of renaming reference.
42179
42180         * checks.adb:
42181         (Determine_Range): Document local variables
42182         (Determine_Range): Make sure Hbound is initialized. It looks as though
42183          there could be a real problem here with an uninitialized reference
42184          to Hbound, but no actual example of failure has been found.
42185
42186 2001-12-17  Laurent Pautet  <pautet@gnat.com>
42187
42188         * g-socket.ads:
42189         Fix comment of Shutdown_Socket and Close_Socket. These functions
42190         should not fail silently because if they are called twice, this
42191         probably means that there is a race condition in the user program.
42192         Anyway, this behaviour is consistent with the rest of this unit.
42193         When an error occurs, an exception is raised with the error message
42194         as exception message.
42195
42196 2001-12-17  Robert Dewar  <dewar@gnat.com>
42197
42198         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
42199         that it happens before modification of Sloc values for -gnatD.
42200
42201         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
42202         so that it happens before modification of Sloc values for -gnatD.
42203
42204         * switch.adb: Minor reformatting
42205
42206 2001-12-15  Richard Henderson  <rth@redhat.com>
42207
42208         * sem_ch7.adb: Wrap comment.
42209
42210 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
42211
42212         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
42213         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
42214         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
42215         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
42216         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
42217         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
42218         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
42219         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
42220         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
42221         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
42222         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
42223         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
42224         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
42225         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
42226         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
42227         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
42228         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
42229         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
42230         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
42231         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
42232         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
42233         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
42234         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
42235         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
42236         spelling errors.
42237
42238 2001-12-14  Vincent Celier  <celier@gnat.com>
42239
42240         * osint.adb(Create_Debug_File): When an object file is specified,
42241         put the .dg file in the same directory as the object file.
42242
42243 2001-12-14  Robert Dewar  <dewar@gnat.com>
42244
42245         * osint.adb: Minor reformatting
42246
42247         * lib-xref.adb (Output_Instantiation): New procedure to generate
42248         instantiation references.
42249
42250         * lib-xref.ads: Add documentation of handling of generic references.
42251
42252         * ali.adb (Read_Instantiation_Ref): New procedure to read
42253         instantiation references
42254
42255         * ali.ads: Add spec for storing instantiation references
42256
42257         * bindusg.adb: Minor reformatting
42258
42259         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42260
42261         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42262
42263         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42264
42265         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42266
42267         * csets.ads:
42268         Fix header format
42269         Add 2001 to copyright date
42270         Add entry for Latin-5 (Cyrillic ISO-8859-5)
42271
42272 2001-12-14  Matt Gingell  <gingell@gnat.com>
42273
42274         * adaint.c: mktemp is a macro on Lynx and can not be used as an
42275         expression.
42276
42277 2001-12-14  Richard Kenner  <kenner@gnat.com>
42278
42279         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
42280         if operand is CONSTRUCTOR.
42281
42282 2001-12-14  Ed Schonberg  <schonber@gnat.com>
42283
42284         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
42285         before emiting check on right-hand side, so that exception information
42286         is correct.
42287
42288 2001-12-14  Richard Kenner  <kenner@gnat.com>
42289
42290         * utils.c (create_var_decl): Throw away initializing expression
42291         if just annotating types and non-constant.
42292
42293 2001-12-14  Vincent Celier  <celier@gnat.com>
42294
42295         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
42296         Default_Ada_...
42297
42298         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
42299         Remove functions.
42300         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
42301
42302         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
42303         Remove functions.
42304         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
42305
42306 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
42307
42308         * ChangeLog: Remove piece of diff output.
42309
42310 2001-12-14  Geert Bosch  <bosch@gnat.com>
42311
42312         * config-lang.in: Update copyright notice
42313
42314         * layout.adb: Remove commented out code.
42315
42316         * mdllfile.ads: Update copyright notice. Fix header format.
42317
42318         * sem_case.ads: Likewise.
42319
42320         * sem_ch3.adb: Minor reformatting.
42321
42322 2001-12-12  Geert Bosch  <bosch@gnat.com>
42323
42324         * freeze.ads: Update copyright date.
42325
42326         * g-comlin.ads: Minor reformatting.
42327
42328         * gnat-style.texi: Fix typo.
42329
42330 2001-12-12  Geert Bosch  <bosch@gnat.com>
42331
42332         *  einfo.h: Regenerate.
42333
42334 2001-12-12  Ed Schonberg  <schonber@gnat.com>
42335
42336         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
42337         on known node types, rather than untyped fields. Further cleanups.
42338
42339 2001-12-12  Robert Dewar  <dewar@gnat.com>
42340
42341         * sem_ch12.adb:
42342         (Save_Entity_Descendant): Minor comment update.
42343         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
42344          of an N_Attribute_Reference node. As per note below, this does not
42345         eliminate need for Associated_Node in attribute ref nodes.
42346         (Associated_Node): Documentation explicitly mentions attribute
42347         reference nodes, since this field is used in such nodes.
42348
42349         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
42350
42351 2001-12-12  Robert Dewar  <dewar@gnat.com>
42352
42353         * s-stalib.adb: Add more comments on with statements being needed
42354
42355         * par-ch12.adb: Minor reformatting
42356
42357         * prj-dect.ads: Fix copyright header
42358
42359         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
42360         inputs fit in 32 bits, but the result still overflows.
42361
42362         * s-fatgen.ads: Minor comment improvement
42363
42364 2001-12-12  Ed Schonberg  <schonber@gnat.com>
42365
42366         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
42367         formal derived type, look for an inherited component from the full
42368         view of the parent, if any.
42369
42370 2001-12-12  Robert Dewar  <dewar@gnat.com>
42371
42372         * checks.ads (Apply_Alignment_Check): New procedure.
42373
42374         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
42375         ensure that the alignment of objects with address clauses is
42376         appropriate, and raise PE if not.
42377
42378         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
42379         Exp_Pakd.Known_Aligned_Enough
42380
42381         * mdllfile.ads: Minor reformatting
42382
42383         * mlib-fil.ads: Minor reformatting
42384
42385 2001-12-12  Ed Schonberg  <schonber@gnat.com>
42386
42387         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
42388         fix to any component reference if enclosing record has non-standard
42389         representation.
42390
42391 2001-12-12  Vincent Celier  <celier@gnat.com>
42392
42393         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
42394         Iteration
42395
42396 2001-12-12  Ed Schonberg  <schonber@gnat.com>
42397
42398         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
42399         sem_attr.
42400
42401 2001-12-12  Robert Dewar  <dewar@gnat.com>
42402
42403         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
42404
42405 2001-12-12  Emmanuel Briot  <briot@gnat.com>
42406
42407         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
42408         and it adds dependencies to system.io.
42409
42410 2001-12-12  Pascal Obry  <obry@gnat.com>
42411
42412         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
42413         variable name.
42414
42415 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42416
42417         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
42418         that is the parent of other generics, the instance body replaces the
42419         instance node.  Retrieve the instance of the spec, which is the one
42420         that is visible in clients and within the body.
42421
42422 2001-12-11  Vincent Celier  <celier@gnat.com>
42423
42424         * gnatmain.adb: Initial version.
42425
42426         * gnatmain.ads: Initial version.
42427
42428         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
42429
42430         * snames.adb: Updated to match snames.ads.
42431
42432         * snames.ads: Added Gnatstub.
42433
42434 2001-12-11  Vincent Celier  <celier@gnat.com>
42435
42436         * prj-attr.adb (Initialization_Data): Change name from
42437         Initialisation_Data.
42438
42439 2001-12-11  Emmanuel Briot  <briot@gnat.com>
42440
42441         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
42442         + and * applied to backslashed expressions like \r.
42443
42444 2001-12-11  Vasiliy Fofanov  <fofanov@gnat.com>
42445
42446         * g-os_lib.ads: String_List type added, Argument_List type is now
42447         subtype of String_List.
42448
42449 2001-12-11  Robert Dewar  <dewar@gnat.com>
42450
42451         * g-os_lib.ads: Change copyright to FSF
42452         Add comments for String_List type
42453
42454 2001-12-11  Vincent Celier  <celier@gnat.com>
42455
42456         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
42457         string to the buffer).
42458
42459 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42460
42461         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
42462         sem_attr.
42463
42464         * sem_attr.adb: Simplify previous fix for Address.
42465         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
42466         to avoid anomalies where the bound of the type appears to raise
42467         constraint error.
42468
42469 2001-12-11  Robert Dewar  <dewar@gnat.com>
42470
42471         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
42472         handled.
42473
42474 2001-12-11  Ed Schonber   <schonber@gnat.com>
42475
42476         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
42477         renamed unit before checking for recursive instantiations.
42478
42479 2001-12-11  Emmanuel Briot  <briot@gnat.com>
42480
42481         * prj.ads: Add comments for some of the fields.
42482
42483 2001-12-11  Robert Dewar  <dewar@gnat.com>
42484
42485         * lib-xref.adb (Output_Refs): Don't output type references outside
42486         the main unit if they are not otherwise referenced.
42487
42488 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42489
42490         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
42491         code and diagnose additional illegal uses
42492
42493         * sem_util.adb (Is_Object_Reference): An indexed component is an
42494         object only if the prefix is.
42495
42496 2001-12-11  Vincent Celier  <celier@gnat.com>
42497
42498         * g-diopit.adb: Initial version.
42499
42500         * g-diopit.ads: Initial version.
42501
42502         * g-dirope.adb:
42503         (Expand_Path): Avoid use of Unbounded_String
42504         (Find, Wildcard_Iterator): Moved to child package Iteration
42505
42506         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
42507
42508 2001-12-11  Robert Dewar  <dewar@gnat.com>
42509
42510         * sem_attr.adb: Minor reformatting
42511
42512 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42513
42514         * sem_ch3.adb: Clarify some ???.
42515
42516 2001-12-11  Robert Dewar  <dewar@gnat.com>
42517
42518         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
42519         Exp_Pakd.Known_Aligned_Enough
42520
42521         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
42522         version is moved to Exp_Ch13.
42523
42524 2001-12-11  Robert Dewar  <dewar@gnat.com>
42525
42526         * einfo.ads: Minor reformatting
42527
42528         * exp_ch5.adb: Add comment for previous.change
42529
42530         * ali.adb: New interface for extended typeref stuff.
42531
42532         * ali.ads: New interface for typeref stuff.
42533
42534         * checks.adb (Apply_Alignment_Check): New procedure.
42535
42536         * debug.adb: Add -gnatdM for modified ALI output
42537
42538         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
42539
42540         * lib-xref.adb: Extend generation of <..> notation to cover
42541         subtype/object types. Note that this is a complete rewrite,
42542         getting rid of the very nasty quadratic algorithm previously
42543         used for derived type output.
42544
42545         * lib-xref.ads: Extend description of <..> notation to cover
42546         subtype/object types. Uses {..} for these other cases.
42547         Also use (..) for pointer types.
42548
42549         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
42550
42551         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
42552         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
42553
42554 2001-12-11  Vincent Celier  <celier@gnat.com>
42555
42556         * gnatcmd.adb:
42557         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
42558         Changed /BIND_ONLY to /ACTIONS=BIND
42559         Changed /LINK_ONLY to /ACTIONS=LINK
42560
42561 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42562
42563         * sem_ch8.adb (Find_Selected_Component): improved search for a
42564         candidate package in case of error.
42565
42566         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
42567         chain back on scope stack before reinstalling use clauses.
42568
42569         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
42570         is enabled, do not kill the code for the condition, to preserve
42571         warning.
42572
42573 2001-12-11  Robert Dewar  <dewar@gnat.com>
42574
42575         * checks.adb (Insert_Valid_Check): Apply validity check to expression
42576         of conversion, not to result of conversion.
42577
42578 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42579
42580         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
42581         before freezing parent. If the declarations are mutually recursive,
42582         an access to the current record type may be frozen before the
42583         derivation is complete.
42584
42585 2001-12-05  Vincent Celier  <celier@gnat.com>
42586
42587         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
42588         -c /COMPILE_ONLY, -l /LINK_ONLY
42589
42590         * opt.ads:
42591         (Bind_Only): New Flag
42592         (Link_Only): New flag
42593
42594         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
42595         and -l (Link_Only)
42596
42597         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
42598
42599         * make.adb:
42600         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
42601         (Gnatmake): Set the step flags. Only perform a step if the
42602         corresponding step flag is True.
42603         (Scan_Make_Arg): Reset the bind and link step flags when -u
42604         or -gnatc has been specified.
42605
42606 2001-12-05  Ed Schonberg  <schonber@gnat.com>
42607
42608         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
42609         get bounds from right operand.
42610
42611         * sem_eval.adb: Minor reformatting
42612
42613         * exp_util.adb (Make_Literal_Range): use bound of literal rather
42614         than Index'First, its lower bound may be different from 1.
42615
42616         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
42617         and C48009J
42618
42619 2001-12-05  Vincent Celier  <celier@gnat.com>
42620
42621         * prj-nmsc.adb Minor reformatting
42622
42623         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
42624         set and libraries are not supported.
42625
42626 2001-12-05  Ed Schonberg  <schonber@gnat.com>
42627
42628         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
42629         private view explicitly, so the back-end can treat as a global
42630         when appropriate.
42631
42632 2001-12-05  Ed Schonberg  <schonber@gnat.com>
42633
42634         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
42635          unit, always replace instance node with new body, for ASIS use.
42636
42637 2001-12-05  Vincent Celier  <celier@gnat.com>
42638
42639         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
42640         libraries are not supported and both attributes Library_Name and
42641         Library_Dir are specified.
42642
42643         * prj-proc.adb (Expression): Set location of Result to location of
42644         first term.
42645
42646         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
42647         (prj-nmsc is now importing MLib.Tgt)
42648
42649         * prj-proc.adb: Put the change indicated above that was forgotten.
42650
42651 2001-12-05  Robert Dewar  <dewar@gnat.com>
42652
42653         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
42654
42655 2001-12-05  Ed Schonberg  <schonber@gnat.com>
42656
42657         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
42658         constraint, introduce explicit subtype declaration and derive from it.
42659
42660         * sem_ch3.adb: Minor reformatting
42661
42662 2001-12-05  Robert Dewar  <dewar@gnat.com>
42663
42664         * checks.adb (Determine_Range): Increase cache size for checks.
42665         Minor reformatting
42666
42667         * exp_ch6.adb: Minor reformatting
42668         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
42669         a parameter whose root type is System.Address, since treating such
42670         subprograms as pure in the code generator is almost surely a mistake
42671         that will lead to unexpected results.
42672
42673         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
42674         change handling of conversions.
42675
42676         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
42677
42678 2001-12-05  Ed Schonberg  <schonber@gnat.com>
42679
42680         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
42681         aggregate with static wrong size, attach generated Raise node to
42682         declaration.
42683
42684 2001-12-05  Robert Dewar  <dewar@gnat.com>
42685
42686         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
42687         Fixes compilation abandoned bomb in B24009B.
42688
42689 2001-12-05  Ed Schonberg  <schonber@gnat.com>
42690
42691         * sem_ch12.adb:
42692         Document use of Associated_Node on Selected_Components.
42693         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
42694         to clarify use of untyped descendant fields.
42695
42696 2001-12-05  Robert Dewar  <dewar@gnat.com>
42697
42698         * prj-dect.ads: Add ??? comment
42699         Add 2001 to copyright notice (was not done in after all)
42700
42701         * prj-part.adb: Minor reformatting. Reword one awkward error message.
42702
42703         * prj.ads: Minor reformatting throughout, and add some ??? comments
42704
42705         * snames.ads: Minor reformatting
42706
42707 2001-12-05  Geert Bosch  <bosch@gnat.com>
42708
42709         * snames.adb: Autoupdate
42710
42711 2001-12-05  Vincent Celier  <celier@gnat.com>
42712
42713         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
42714
42715         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
42716
42717         * prj-env.adb: Minor comment changes (modifying -> extends).
42718
42719         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
42720
42721         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
42722         Tok_Extends.
42723
42724         * prj.adb (Initialize): Change Modifying to Extends.
42725
42726         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
42727
42728         * prj.ads: Minor comment change (Modifying -> extending).
42729
42730         * snames.ads: Change modifying to extends.
42731
42732 2001-12-05  Robert Dewar  <dewar@gnat.com>
42733
42734         * sem_warn.adb: Remove stuff for conditionals, we are not going to
42735         do this after all.
42736
42737         * sem_warn.ads: Remove stuff for conditionals, we are not going to
42738         do this after all.  Add 2001 to copyright notice
42739
42740 2001-12-04  Geert Bosch  <bosch@gnat.com>
42741
42742         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
42743
42744 2001-12-04  Robert Dewar  <dewar@gnat.com>
42745
42746         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
42747         location if we already have errors. Stops some cases of cascaded
42748         errors.
42749
42750         * errout.adb: Improve comment.
42751
42752 2001-12-04  Robert Dewar  <dewar@gnat.com>
42753
42754         * sem_ch12.adb:
42755         (Analyze_Formal_Type_Definition): Defend against Error.
42756         (Analyze_Formal_Subprogram): Defend against Error.
42757
42758         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
42759         remove following semicolon if present. Removes cascaded error.
42760
42761 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
42762
42763         * bindgen.adb:
42764         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
42765          exceptions equals 0.
42766         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
42767         Fixes PIWG E tests (which have to be run with -gnatL).
42768
42769 2001-12-04  Robert Dewar  <dewar@gnat.com>
42770
42771         * einfo.ads: Minor reformatting
42772
42773 2001-12-04  Ed Schonberg  <schonber@gnat.com>
42774
42775         * einfo.ads: Block_Node points to the identifier of the block, not to
42776         the block node itself, to preserve the link when the block is
42777         rewritten, e.g. within an if-statement with a static condition.
42778
42779         * inline.adb (Cleanup_Scopes): recover block statement from block
42780         entity using new meaning of Block_Node.
42781
42782         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
42783         identifier of block node, rather than to node itself.
42784
42785 2001-12-04  Gary Dismukes  <dismukes@gnat.com>
42786
42787         * layout.adb:
42788         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
42789         (Discrimify): Go back to setting the Etypes of the selected component
42790         because the Vname component does not exist at this point and will
42791         fail name resolution. Also set Analyzed.
42792         Remove with and use of Sem_Res.
42793
42794 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
42795
42796         * Makefile.in: (HIE_SOURCES): add s-fat*.
42797
42798 2001-12-04  Robert Dewar  <dewar@gnat.com>
42799
42800         * sem_attr.adb:
42801         (Compile_Time_Known_Attribute): New procedure.
42802         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
42803          proper range check.
42804
42805 2001-12-04  Ed Schonberg  <schonber@gnat.com>
42806
42807         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
42808         processing discriminants to diagnose illegal default values.
42809
42810 2001-12-04  Ed Schonberg  <schonber@gnat.com>
42811
42812         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
42813         access discriminant within a type extension that constrains its
42814         parent discriminants.
42815
42816 2001-12-04  Ed Schonberg  <schonber@gnat.com>
42817
42818         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
42819         is malformed, use instance of Any_Id to allow analysis to proceed.
42820
42821         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
42822         type definition is illegal.
42823         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
42824         misplaced.
42825
42826 2001-12-04  Ed Schonberg  <schonber@gnat.com>
42827
42828         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
42829         constants.
42830
42831 2001-12-04  Robert Dewar  <dewar@gnat.com>
42832
42833         * errout.adb: Minor reformatting
42834
42835 2001-12-04  Robert Dewar  <dewar@gnat.com>
42836
42837         * exp_util.adb: Minor reformatting from last change
42838
42839         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
42840         which is a rewriting of an expression, traverse the original
42841         expression to remove warnings that may have been posted on it.
42842
42843 2001-12-04  Ed Schonberg  <schonber@gnat.com>
42844
42845         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
42846         record that has other packed components.
42847
42848 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
42849
42850         * adaint.c: Minor cleanups.
42851
42852 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
42853
42854         * adaint.c: Do not use utime.h on vxworks.
42855
42856 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
42857
42858         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
42859         more confusion than it solves.
42860
42861 2001-12-04  Geert bosch  <bosch@gnat.com>
42862
42863         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
42864
42865 2001-12-04  Geert Bosch  <bosch@gnat.com>
42866
42867         * Makefile.in (update-sources): New target.
42868         For use by gcc_release script.
42869
42870 2001-12-04  Ed Schonberg  <schonber@gnat.com>
42871
42872         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
42873         a configuration pragma, it is now legal wherever a pragma can appear.
42874
42875 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
42876
42877         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
42878         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
42879         is now @CROSS@ -DIN_GCC; update comment.
42880
42881 2001-12-04  Robert Dewar  <dewar@gnat.com>
42882
42883         * einfo.adb (Has_Pragma_Pure_Function): New flag.
42884         Fix problem that stopped ceinfo from working
42885
42886         * einfo.ads (Has_Pragma_Pure_Function): New flag.
42887
42888         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
42889
42890 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
42891
42892         * gnatchop.adb:
42893         (File_Time_Stamp): New procedure.
42894         (Preserve_Mode): New boolean.
42895         (Write_Unit): Pass time stamp.
42896         Implement -p switch (preserve time stamps).
42897
42898         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
42899
42900         * gnatchop.adb: Do usage info for -p switch
42901
42902         * adaint.h (__gnat_set_file_time_name): New function
42903
42904         * adaint.c (__gnat_set_file_time_name): Implement
42905
42906         * adaint.h: Fix typo
42907
42908 2001-12-03  Robert Dewar  <dewar@gnat.com>
42909
42910         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
42911         have Associated_Node.
42912
42913 2001-12-03  Robert Dewar  <dewar@gnat.com>
42914
42915         * prj-proc.adb: Minor reformatting
42916
42917         * make.adb: Minor reformatting
42918
42919 2001-12-03  Geert Bosch  <bosch@gnat.com>
42920
42921         * make.adb: Minor reformatting.
42922
42923 2001-12-03 Robert Dewar  <dewar@gnat.com>
42924
42925         * sem_ch12.adb: Minor reformatting
42926
42927 2001-12-03  Ed Schonberg  <schonber@gnat.com>
42928
42929         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
42930         push Standard on the stack before analyzing the instance body,
42931         in order to have a clean visibility environment.
42932
42933         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
42934
42935 2001-12-03  Ed Schonberg  <schonber@gnat.com>
42936
42937         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
42938         instantiation of a body that contains an inlined body.
42939
42940 2001-12-03  Ed Schonberg  <schonber@gnat.com>
42941
42942         * sem_ch12.adb:
42943         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
42944         to prevent freezing within formal packages.
42945         (Freeze_Subprogram_Body): If body comes from another instance that
42946         appeared before its own body, place freeze node at end of current
42947         declarative part, to prevent a back-end crash.
42948         (Inline_Instance_Body): Handle properly a package instance within
42949         a subprogram instance that is a child unit.
42950
42951 2001-12-01  Graham Stott  <grahams@redhat.com>
42952
42953         * Makefile.in (misc.o): Add missing $(srcdir) prefix
42954         and add optabs.h dependency.
42955
42956         * misc.c: Include optabs.h
42957         (gnat_tree_code_type): Make static and const.
42958         (gnat_tree_code_length): Likewise.
42959         (gnat_tree_code_name): Likewise.
42960         (update_setjmp_buf): Obtain operands mode from insn_data.
42961
42962 2001-11-29  Richard Henderson  <rth@redhat.com>
42963
42964         * init.c: Remove obsolete dwarf2 frame.h section.
42965
42966 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
42967
42968         * Make-lang.in (ada.generated-manpages): New dummy target.
42969
42970 2001-11-29  Ed Schonberg  <schonber@gnat.com>
42971
42972         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
42973         into Command, an array conversion is illegal here. Uncovered by
42974         ACATS B460005.
42975
42976 2001-11-28  Geert Bosch  <bosch@gnat.com>
42977
42978         * init.c: Minor whitespace changes.
42979
42980 2001-11-28  Doug Rupp  <rupp@gnat.com>
42981
42982         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
42983         signal stack.
42984
42985 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
42986
42987         * misc.c (gnat_expand_constant): Move declaration above
42988         definition of lang_hooks.
42989         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
42990         (gnat_init): lang_expand_constant no longer exists.
42991
42992         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
42993         always have vprintf.
42994         (gnat_init): Always call set_internal_error_function.
42995
42996 2001-11-27  Andreas Jaeger  <aj@suse.de>
42997
42998         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
42999
43000 2001-11-27  Laurent Guerby  <guerby@acm.org>
43001
43002         * Makefile.in: Regenerate Ada dependencies.
43003
43004 2001-11-26  Richard Henderson  <rth@redhat.com>
43005
43006         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
43007         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
43008         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
43009
43010 2001-11-25  Laurent Guerby  <guerby@acm.org>
43011
43012         * sysdep.c (rts_get_*): Fix style.
43013
43014 2001-11-19  Laurent Guerby  <guerby@acm.org>
43015
43016         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
43017         since it is of no apparent use and cause warnings.
43018
43019 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
43020
43021         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
43022         static too.
43023         (gnat_init): Don't return NULL.
43024         (finish_parse): Remove.
43025
43026 2001-11-17  Laurent Guerby  <guerby@acm.org>
43027
43028         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
43029         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
43030         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
43031         * lang-spec.h: Add missing struct field to silence warnings.
43032         * sysdep.c (rts_get_*): Provide K&R prototype.
43033         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
43034         * traceback.c (Unlock_Task, Lock_Task): Likewise.
43035         * tracebak.c (__gnat_backtrace): Remove unused variable.
43036         * utils.c (end_subprog_body): Move to K&R style.
43037
43038 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
43039
43040         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
43041
43042 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
43043
43044         * misc.c (gnat_init): Change prototype.  Include the
43045         functionality of the old init_parse and init_decl_processing.
43046         (gnat_init_decl_processing): New prototype.
43047         (init_parse): Remove.
43048         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
43049
43050 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
43051
43052         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
43053         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
43054         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
43055         set_yydebug): Remove.
43056
43057 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
43058
43059         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
43060         (struct lang_hooks): Constify.
43061         (language_string, lang_identify): Remove.
43062         * utils.c (init_decl_processing): Update.
43063
43064 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
43065
43066         * misc.c: Include langhooks-def.h.
43067         * Makefile.in: Update.
43068
43069 2001-10-30  Robert Dewar  <dewar@gnat.com>
43070
43071         * style.adb:
43072         (Check_Identifier): Rewrite circuit to be compatible with use of letters
43073         in the upper half of ASCII.
43074         (Check_Identifier): Minor reformatting
43075
43076 2001-10-30  Geert Bosch  <bosch@gnat.com>
43077
43078         * (Associated_Node, Set_Associated_Node): Do not check for
43079         Freeze_Entity.
43080
43081 2001-10-30  Robert Dewar  <dewar@gnat.com>
43082
43083         * a-reatim.ads: Minor reformatting
43084
43085 2001-10-30  Robert Dewar  <dewar@gnat.com>
43086
43087         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
43088         undocumented declarations.
43089
43090 2001-10-30  Pascal Obry  <obry@gnat.com>
43091
43092         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
43093         to the binder and linker.
43094         Minor style fix.
43095
43096         * mdll.ads: Fix layout.  Update copyright notice.
43097
43098         * mdll.adb: Fix layout.  Update copyright notice.
43099
43100 2001-10-30  Robert Dewar  <dewar@gnat.com>
43101
43102         * usage.adb: Minor fix to output for -gnaty.
43103
43104 2001-10-30  Ed Schonberg  <schonber@gnat.com>
43105
43106         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
43107         to accommodate all its possible values.
43108
43109         * a-reatim.adb (Split): Special-case handling of Time_Span_First
43110         and of small absolute values of T.
43111
43112 2001-10-30  Richard Kenner  <kenner@gnat.com>
43113
43114         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
43115         set_mem_attributes since not needed and wrong if RESULT if a REG;
43116         fixes ACATS failures.
43117
43118 2001-10-30  Geert Bosch  <bosch@gnat.com>
43119
43120         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
43121         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
43122
43123 2001-10-30  Robert Dewar  <dewar@gnat.com>
43124
43125         * bindusg.adb: Undocument -f switch.
43126
43127         * gnatcmd.adb: Remove /FULL_ELABORATION.
43128
43129         * opt.ads (Force_RM_Elaboration_Order): Document that this is
43130         obsolescent.
43131
43132         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
43133
43134         * gnatbind.adb: Minor update of warning msg.
43135
43136 2001-10-30  Vincent Celier  <celier@gnat.com>
43137
43138         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
43139         for project file switches (-P (/PROJECT_FILE=),
43140          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
43141         or MEDIUM or HIGH)
43142
43143 2001-10-30  Geert Bosch  <bosch@gnat.com>
43144
43145         * decl.c: Minor whitespace fixes.
43146
43147 2001-10-30  Richard Kenner  <kenner@gnat.com>
43148
43149         * utils2.c (build_allocator): Test for SIZE overflow in array case too
43150
43151 2001-10-30  Geert Bosch  <bosch@gnat.com>
43152
43153         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
43154         Found due to GCC 3.0 warning of using uninitialized value.
43155
43156         * layout.adb:
43157         (Get_Max_Size): Use variant record for tracking value/expression.
43158          Makes logic clearer and prevents warnings for uninitialized variables.
43159         (Layout_Array_Type): Use variant record for tracking value/expression.
43160          Makes logic clearer and prevents warnings for uninitialized variables.
43161
43162 2001-10-30  Robert Dewar  <dewar@gnat.com>
43163
43164         * lib.adb: Minor reformatting
43165
43166         * s-taprop.ads: Minor reformatting
43167
43168 2001-10-29  Laurent Guerby  <guerby@acm.org>
43169
43170         * init.c:
43171         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
43172         const.
43173         (_gnat_error_handler): Make MSG const.
43174
43175 2001-10-29  Richard Kenner  <kenner@gnat.com>
43176
43177         * sysdep.c: Fix localtime_r problem on LynxOS.
43178         Also remove #elif to avoid warnings.
43179
43180         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
43181         used by this.
43182
43183         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
43184
43185 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
43186
43187         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
43188         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
43189         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
43190         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
43191         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
43192         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
43193         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
43194         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
43195         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
43196         types.ads, urealp.adb: Fix spelling errors.
43197
43198 2001-10-27  Laurent Guerby  <guerby@acm.org>
43199
43200         * trans.c (gigi): Fix non determinism leading to bootstrap
43201         comparison failures for debugging information.
43202
43203 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
43204
43205         * gnat_rm.texi: Use @./@: where appropriate.
43206
43207 2001-10-26  Robert Dewar  <dewar@gnat.com>
43208
43209         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
43210
43211 2001-10-26  Richard Kenner  <kenner@gnat.com>
43212
43213         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
43214
43215 2001-10-26  Richard Kenner  <kenner@gnat.com>
43216
43217         * decl.c (validate_size): Modify message for bad size to avoid
43218         implication that compiler is modifying the size.
43219
43220 2001-10-26  Robert Dewar  <dewar@gnat.com>
43221
43222         * prj-util.adb: Minor reformatting. Fix bad header format.
43223
43224 2001-10-26  Robert Dewar  <dewar@gnat.com>
43225
43226         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
43227
43228         * sinfo.ads: Clarify use of Associated_Node (documentation only).
43229
43230         * sem_ch12.adb: Change Node4 to Associated_Node. Change
43231         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
43232         much more narrowly in places where needed. These are cleanups.
43233
43234 2001-10-26  Joel Brobecker  <brobecke@gnat.com>
43235
43236         * 5zosinte.ads (null_pthread): new constant.
43237
43238         * 5ztaprop.adb:
43239         (Initialize_TCB): Initialize thread ID to null, to be able to verify
43240          later that this field has been set.
43241         (Finalize_TCB): ditto.
43242         (Suspend_Task): Verify that the thread ID is not null before using it.
43243         (Resume_Task): ditto.
43244
43245         * s-tasdeb.adb:
43246         (Resume_All_Tasks): Lock the tasks list before using it.
43247         (Suspend_All_Tasks): ditto.
43248
43249 2001-10-26  Richard Kenner  <kenner@gnat.com>
43250
43251         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
43252         Make constant variant of designated type for Is_Access_Constant.
43253         Call update_pointer_to with main variant.
43254
43255         * trans.c (process_freeze_entity, process_type):
43256         Call update_pointer_to on main variant.
43257
43258         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
43259         If main variant, update all other variants.
43260
43261         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
43262         TREE_STATIC.
43263
43264 2001-10-26  Robert Dewar  <dewar@gnat.com>
43265
43266         * prj-util.adb: Minor reformatting
43267
43268 2001-10-26  Robert Dewar  <dewar@gnat.com>
43269
43270         * prj-util.adb: Minor reformatting
43271
43272 2001-10-26  Robert Dewar  <dewar@gnat.com>
43273
43274         * prj-attr.adb: Minor reformatting throughout
43275
43276 2001-10-26  Robert Dewar  <dewar@gnat.com>
43277
43278         * prj-attr.ads: Minor reformatting
43279         Add ??? comment (this whole spec has almost no comments)
43280
43281 2001-10-26  Vincent Celier  <celier@gnat.com>
43282
43283         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
43284         ("//") that precede the drive letter on Interix.
43285
43286 2001-10-26  Geert Bosch  <bosch@gnat.com>
43287
43288         * gnat_rm.texi: Add GNAT Reference Manual.
43289
43290 2001-10-25  Robert Dewar  <dewar@gnat.com>
43291
43292         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
43293         is Error. Similar change for other renaming cases.
43294
43295 2001-10-25  Robert Dewar  <dewar@gnat.com>
43296
43297         * s-atacco.ads: Add pragma Inline_Always for functions.
43298         Fix header format. Add copyright 2001
43299
43300 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43301
43302         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
43303         return Error rather than Empty so that analysis can proceed.
43304
43305 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43306
43307         * sem_util.adb (Enter_Name): better handling of cascaded error
43308         messages when a unit appears in its own context.
43309
43310 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43311
43312         * sem_util.adb (Defining_Entity): in case of error, attach created
43313         entity to specification, so that semantic analysis can proceed.
43314
43315 2001-10-25  Robert Dewar  <dewar@gnat.com>
43316
43317         * sem_util.adb
43318         (Defining_Entity): Deal with Error.
43319         (Process_End_Label): Deal with bad end label for.
43320
43321 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43322
43323         * sem_elab.adb (Check_A_Call): refine message when call is in an
43324         instance but callee is not declared in the generic unit.
43325
43326 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43327
43328         * sem_elab.adb (Check_A_Call): check for renaming before finding the
43329         enclosing unit, which may already be different from the calling unit.
43330
43331 2001-10-25  Geert Bosch  <bosch@gnat.com>
43332
43333         * 4gintnam.ads: fix header format.
43334
43335 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43336
43337         * sem_res.adb (Resolve_Call): if the call is actually an indexing
43338         operation on the result of a parameterless call, perform elaboration
43339         check after the node has been properly rewritten.
43340
43341         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
43342         inlined within the generic tree, the defining identifier is not a
43343         compilation_unit.
43344
43345 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43346
43347         * sem_res.adb (Resolve): special-case resolution of Null in an
43348          instance or an inlined body to avoid view conflicts.
43349
43350         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
43351          compatibility by retrieving the access type of the generic copy.
43352
43353 2001-10-25  Robert Dewar  <dewar@gnat.com>
43354
43355         * sem_ch3.adb:
43356         (Analyze_Number_Declaration): Handle error expression.
43357         (Signed_Integer_Type_Declaration): Handle error bound.
43358         (Analyze_Subtype_Indication): Handle error range.
43359
43360         * sem_util.adb (Get_Index_Bounds): Check for Error.
43361
43362 2001-10-25  Robert Dewar  <dewar@gnat.com>
43363
43364         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
43365         in no run time mode.
43366
43367 2001-10-25  Pascal Obry  <obry@gnat.com>
43368
43369         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
43370         mode case for ALLOC case.
43371
43372         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
43373         all platforms. Improvement of last change.
43374
43375 2001-10-25  Robert Dewar  <dewar@gnat.com>
43376
43377         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
43378
43379 2001-10-25  Geert Bosch  <bosch@gnat.com>
43380
43381         * osint.adb (Is_Relative): Remove duplicate.
43382
43383 2001-10-25  Pascal Obry  <obry@gnat.com>
43384
43385         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
43386         pathnames in UNIX and DOS style with drive letter.
43387         (Is_Relative): new routine.
43388
43389         * osint.adb: Minor reformatting
43390
43391         * osint.adb (Is_Relative): implementation using
43392         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
43393
43394 2001-10-25  Pascal Obry  <obry@gnat.com>
43395
43396         * g-dirope.adb (Basename): correctly compute offset between the
43397         original Path and the translated one.
43398
43399         * g-dirope.adb: (Base_Name): add some comments.
43400
43401 2001-10-25  Robert Dewar  <dewar@gnat.com>
43402
43403         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
43404         in HIE mode, avoids compilation abandoned message
43405
43406         * exp_imgv.adb: Correct typo in previous change
43407
43408         * exp_imgv.adb: Correct typo in previous change (not my day!)
43409
43410 2001-10-25  Robert Dewar  <dewar@gnat.com>
43411
43412         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
43413
43414 2001-10-25  Pascal Obry  <obry@gnat.com>
43415
43416         * g-awk.ads: Move all pragma inlines next to the routine
43417          declarations. This is more uniform with other GNAT spec.
43418
43419 2001-10-22  Geert Bosch  <bosch@gnat.com>
43420
43421         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
43422
43423 2001-10-19  Geert Bosch  <bosch@gnat.com>
43424
43425         * Makefile.in (tools, gnattools): Remove gnatmem.
43426
43427 2001-10-17  Richard Henderson  <rth@redhat.com>
43428
43429         * Makefile.in (misc.o): Depend on langhooks.h.
43430         * misc.c: Include it.
43431         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
43432         (LANG_HOOKS_DECODE_OPTION): New.
43433         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
43434
43435 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
43436
43437         * trans.c (tree_transform): Adjust to recent change in
43438         expand_asm_operands to implement named asm operands.
43439
43440 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43441
43442         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
43443         renaming of discriminant for mutable record type.
43444
43445 2001-10-11  Robert Dewar  <dewar@gnat.com>
43446
43447         * validsw.adb: Properly save -gnatVn status.
43448
43449 2001-10-11  Robert Dewar  <dewar@gnat.com>
43450
43451         * usage.adb: Add lines for V switch.
43452
43453         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
43454         (/VALIDITY_CHECKING).
43455
43456 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43457
43458         * sem_type.adb (Add_One_Interp): an operator for a type declared in
43459         an extension of System is known to be visible.
43460
43461 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43462
43463         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
43464         properly. Fixes regression on ACATS C34005G.
43465
43466 2001-10-11  Robert Dewar  <dewar@gnat.com>
43467
43468         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
43469         loop in generic instance, since this is likely not very useful.
43470
43471 2001-10-11  Robert Dewar  <dewar@gnat.com>
43472
43473         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
43474         the error message for high integrity mode.
43475
43476         * rtsfind.adb (RTE): Give message if we try to find an entity that
43477         is not available in high integrity mode.
43478
43479         * rtsfind.ads:
43480         (OK_To_Use_In_HIE_Mode): New array.
43481         (RTE): May return Empty in high integrity mode.
43482
43483         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
43484         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
43485
43486         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
43487         unit if not inlined always and in no runtime mode. Fixes problem
43488         caused by new Rtsfind changes.
43489
43490         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
43491         body is deleted.
43492
43493         * rtsfind.adb (RTE): Make sure we do not try to load unit after
43494         giving message for entity not available in high integrity mode.
43495
43496 2001-10-11  Pascal Obry  <obry@gnat.com>
43497
43498         * impunit.adb: Add GNAT.CRC32.
43499
43500 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43501
43502         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
43503         properly the case where one universal operand in a non-static
43504         exponentiation of a real literal.
43505
43506 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43507
43508         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
43509         clause, return the gobal finalization list, for lack of anthing else.
43510
43511 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43512
43513         * exp_ch7.adb (Make_Transient_Block): if statement is within
43514         exception handler, always use new transient scope to place Clean
43515         procedure.
43516
43517 2001-10-11  Pascal Obry  <obry@gnat.com>
43518
43519         * Makefile.in:
43520         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
43521         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
43522         (GNATLS_RTL_OBJS): add g-crc32.o
43523         (GNATMAKE_RTL_OBJS): add g-crc32.o
43524
43525         * ali-util.adb:
43526         (CRC_Match): new function.
43527         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
43528         instead of the previous simple checksum algorithm.
43529         (Time_Stamp_Mismatch): use CRC_Match for comparison.
43530         (Set_Source_Table): idem.
43531
43532         * ali-util.ads:
43533         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
43534         instead of simple checksum.
43535         (CRC_Match): new function.
43536         (CRC_Error): new constant.
43537
43538         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
43539         a CRC now and not a simple checksum. A CRC uses lower-case hex
43540         letters, fixes ambiguity in parsing.
43541
43542         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
43543         is what this variable will store.
43544
43545         * bcheck.adb: Change reference to chechsum in comments by CRC.
43546         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
43547         rename All_Checksum_Match to All_CRC_Match. Change due to API
43548         renaming since now GNAT does not use a simple checksum but a
43549         CRC using GNAT.CRC32.
43550
43551         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
43552         now and not anymore a simple checksum.
43553
43554         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
43555         places.
43556
43557         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
43558
43559         * scans.adb:
43560         (Restore_Scan_State): rename Checksum to CRC.
43561         (Save_Scan_State): idem.
43562
43563         * scans.ads:
43564         With GNAT.CRC32.
43565         (Checksum): rename to CRC.
43566         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
43567
43568         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
43569         GNAT.CRC32).  Update copyright notice.
43570
43571         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
43572         GNAT.CRC32).  Update copyright notice.
43573
43574         * scn.adb:
43575         (Accumulate_Checksum): removed.
43576         (Update): new procedure. Add a wide-character into the CRC.
43577
43578         * sinput-l.adb:
43579         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
43580         (Load_File): fix initialization of S (change Source_Checksum to
43581         Source_CRC)
43582
43583         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
43584         Source_CRC in S initialization.
43585
43586         * sinput.adb (Source_Checksum): renamed to Source_CRC.
43587
43588         * sinput.ads (Source_Checksum): renamed to Source_CRC.
43589         Update comments for the CRC.
43590
43591         * types.adb (Hex): Use lowercase for the letter part.
43592
43593         * types.ads (Get_Hex_String): Returns the hexadecimal representation
43594         for a word. This is currently used only for CRC. In previous version,
43595         the checksum was using a representation with all letter being
43596         upper-case. With the new implementation (using CRC) we do not remove
43597         the 32th bit of the CRC, so we can have an upper-case starting letter
43598         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
43599         It is ambigous since the CRC was optional and could be followed by
43600         options like EB, EE. So now this routines uses lower-case letter for
43601         the hexadecimal representation. Strange enough only lower case letters
43602         where checked in Scan_ALI (even if this was not a possible case).
43603
43604         * gnatvsn.ads (Library_Version): changed to 3.15a.
43605
43606         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
43607         for the compiler.
43608
43609         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
43610         for the compiler.
43611
43612         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
43613         Add 2001 to copyright notice
43614         (Accumulate_Checksum): Modify to use System.CRC32.
43615
43616         * ali-util.ads: Redo changes of previous revision to continue to use
43617         the word Checksum. Add 2001 to copyright notice.
43618
43619         * ali.adb: Undo some of previous changes, not needed.
43620         Keep the change for lower case letters in the checksum.
43621
43622         * ali.ads: Undo previous change not needed.
43623
43624         * bcheck.adb: Undo most of previous change, not needed.
43625         But do use Checksums_Match for checksum comparison.
43626
43627         * gnatls.adb: Undo most of previous change, not needed.
43628         But do use Checksums_Match for comparing checksums.
43629
43630         * lib-load.adb: Undo previous change, not needed.
43631
43632         * lib-writ.adb: Undo previous change, not needed.
43633
43634         * lib-writ.ads: Document that checksums use lower case,
43635         not upper case letters.
43636
43637         * scans.adb: Undo previous change, not needed
43638
43639         * scans.ads: Undo previous change, not needed.
43640
43641         * scn-nlit.adb: Undo previous changes, not needed.
43642
43643         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
43644
43645         * scn.adb:
43646         (Accumulate_Checksum): Use System.CRC32.
43647         (Initialize_Checksum): New procedure.
43648         Remove other changes of previous revision.
43649
43650         * sinput-p.adb: Undo previous change, not needed.
43651
43652         * sinput.adb: Undo previous change, not needed.
43653
43654         * sinput-l.adb: Undo previous change, not needed.
43655
43656         * sinput.ads: Undo previous change, not needed.  Keep only comment
43657         on new checksum algorithm
43658
43659         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
43660         Also remove a-tags and a-stream from GNAT sources.
43661
43662         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
43663
43664         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
43665
43666 2001-10-11  Geert Bosch  <bosch@gnat.com>
43667
43668         * einfo.h: Regenerate.
43669
43670         * nmake.ads: Regenerate.
43671
43672         * nmake.adb: Regenerate.
43673
43674         * sinfo.h: Regenerate.
43675
43676         * treeprs.adb: Regenerate.
43677
43678 2001-10-10  Geert Bosch  <bosch@gnat.com>
43679
43680         * gnat-style.texi: New file describing coding guidelines for Ada.
43681
43682 2001-10-10  Ed Schonberg  <schonber@gnat.com>
43683
43684         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
43685         is Flag174.
43686
43687 2001-10-10  Geert Bosch  <bosch@gnat.com>
43688
43689         * snames.ads: Add new names for project facility.
43690
43691         * snames.adb: Update to reflect snames.ads changes.
43692
43693         * snames.h: Update to reflect snames.ads changes.
43694
43695 2001-10-10  Vincent Celier  <celier@gnat.com>
43696
43697         * make.adb:
43698         (Add_Switches): reflect the changes for the switches attributes
43699         Default_Switches indexed by the programming language,
43700         Switches indexed by the file name.
43701         (Collect_Arguments_And_Compile): Idem.
43702         Reflect the attribute name changes.
43703
43704         * prj-attr.adb:
43705         (Initialisation_Data): Change the names of some packages and
43706         attributes.
43707         (Initialize): process case insensitive associative arrays.
43708
43709         * prj-attr.ads:
43710         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
43711
43712         * prj-dect.adb:
43713         (Parse_Attribute_Declaration): For case insensitive associative
43714          arrays, set the index string to lower case.
43715
43716         * prj-env.adb:
43717         Reflect the changes of the project attributes.
43718
43719         * prj-nmsc.adb:
43720         Replace Check_Naming_Scheme by Ada_Check and
43721         Language_Independent_Check.
43722
43723         * prj-nmsc.ads:
43724         Replaced Check_Naming_Scheme by 2 procedures:
43725         Ada_Check and Language_Independent_Check.
43726
43727         * prj-proc.adb:
43728         (Process_Declarative_Items): For case-insensitive associative
43729         arrays, set the index string to lower case.
43730         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
43731         Prj.Nmsc.Check_Naming_Scheme.
43732
43733         * prj-tree.adb:
43734         (Case_Insensitive): New function
43735         (Set_Case_Insensitive): New procedure
43736
43737         * prj-tree.ads:
43738         (Case_Insensitive): New function
43739         (Set_Case_Insensitive): New procedure
43740         (Project_Node_Record): New flag Case_Insensitive.
43741
43742         * prj-util.adb:
43743         (Value_Of): new function to get the string value of a single
43744         string variable or attribute.
43745
43746         * prj-util.ads:
43747         (Value_Of): new function to get the string value of a single
43748         string variable or attribute.
43749
43750         * prj.adb:
43751         (Ada_Default_Spec_Suffix): New function
43752         (Ada_Default_Impl_Suffix): New function
43753         Change definitions of several constants to reflect
43754         new components of record types.
43755
43756         * prj.ads:
43757         (Naming_Data): Change several components to reflect new
43758         elements of naming schemes.
43759         (Project_Data): New flags Sources_Present and
43760         Language_Independent_Checked.
43761         (Ada_Default_Spec_Suffix): New function.
43762         (Ada_Default_Impl_Suffix): New function.
43763
43764         * snames.ads:
43765         Modification of predefined names for project manager: added
43766         Implementation, Specification_Exceptions, Implementation_Exceptions,
43767         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
43768         Default_Switches, _Languages, Builder, Cross_Reference,
43769         Finder. Removed Body_Part, Specification_Append, Body_Append,
43770         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
43771         Gnatlink.
43772
43773         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
43774         Add comments.
43775
43776         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
43777         not that it is Nil_Variable_Value.
43778
43779         * prj.ads: Add ??? for uncommented declarations
43780
43781 2001-10-10  Ed Schonberg  <schonber@gnat.com>
43782
43783         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
43784         constant, do not indicate possible modification, so that gigi can
43785         treat it as a bona fide constant.
43786
43787 2001-10-10  Robert Dewar  <dewar@gnat.com>
43788
43789         * sem_prag.adb: Add processing for pragma External.
43790
43791         * snames.ads: Add entry for pragma External.
43792
43793         * par-prag.adb: Add pragma External.
43794
43795         * snames.adb: Updated to match snames.ads.
43796
43797 2001-10-10  Ed Schonberg  <schonber@gnat.com>
43798
43799         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
43800         a dynamic task if the allocator appears in an indexed assignment
43801         or selected component assignment.
43802
43803         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
43804         For a dynamic task in an assignment statement, use target of
43805         assignment to generate meaningful name.
43806
43807 2001-10-10  Ed Schonberg  <schonber@gnat.com>
43808
43809         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
43810         a generic package.
43811
43812         * einfo.ads: Body_Entity is also defined for generic package.
43813         Documentation change only
43814
43815         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
43816         others_choice for a discriminated component initialization,
43817         convert discriminant references into the corresponding discriminals.
43818
43819         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
43820         only if original type is private and expression has to be wrapped
43821         in a conversion.
43822
43823         * checks.adb:
43824         (Apply_Constraint_Check): Do not perform length check
43825         if expression is an aggregate with only an others_choice.
43826         (Length_N_Cond): two references to the same in_parameter
43827         (typically the discriminal in an init_proc) denote the same value.
43828         Two useful optimization uncovered by bugfixes above.
43829
43830 2001-10-10  Robert Dewar  <dewar@gnat.com>
43831
43832         * xeinfo.adb: Change int to char in translation of enumeration types.
43833         This fixes a problem in the C representation of component alignment.
43834         Add 2001 to copyright notice
43835
43836 2001-10-10  Richard Kenner  <kenner@gnat.com>
43837
43838         * decl.c: (validate_size): Do check size of object of integral type
43839         if it is a packed array type.
43840
43841 2001-10-10  Richard Kenner  <kenner@gnat.com>
43842
43843         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
43844         VAR_DECL for constant if not Is_Public but -O0.
43845
43846 2001-10-10  Richard Kenner  <kenner@gnat.com>
43847
43848         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
43849
43850 2001-10-10  Geert Bosch  <bosch@gnat.com>
43851
43852         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
43853         use '/' as switch character, allowing for absolute file names.
43854
43855 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
43856
43857         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
43858         FSF address.
43859
43860 2001-10-08  Geert Bosch  <bosch@gnat.com>
43861
43862         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
43863         Automatically build utilities when files need to be regenerated.
43864
43865 2001-10-08  Geert Bosch  <bosch@gnat.com>
43866
43867         * xsnames.adb: New utility for updating snames.ads and snames.adb
43868
43869 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
43870
43871         * Make-lang.in (ADAFLAGS): Add -W -Wall.
43872         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
43873         (gnat1): Also depend on attribs.o.
43874         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
43875         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
43876         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
43877         (ADAFLAGS): Add -W -Wall.
43878         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
43879         take out CFLAGS.
43880
43881         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
43882         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
43883         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
43884         Use $(ADAC), not $(CC), as compilation command.
43885
43886         (gnattools): Depend directly on tools to build, don't use
43887         recursive make.
43888         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
43889
43890         * einfo.h, sinfo.h: New files (autogenerated).
43891
43892 2001-10-08  Richard Henderson  <rth@redhat.com>
43893
43894         * comperr.adb (Abort_In_Progress): New.
43895         (Compiler_Abort): Use it to prevent recursion.
43896
43897 2001-10-08  Robert Dewar  <dewar@gnat.com>
43898
43899         * atree.adb: Set Error_Posted in Error node, helps error recovery.
43900
43901         * par-endh.adb (Output_End_Expected): We should also not test
43902         Error_Posted on the Error node, since now it is always set.
43903
43904         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
43905         to help error recovery. Part of general work on 9407-004.
43906
43907         * par.adb: Add ??? for misuse of error
43908
43909         * sem_res.adb:
43910         (Resolve): Defend against Error, fixes 9407-003.
43911         (Resolve_Discrete_Subtype_Indication): Defend against Error.
43912
43913         * sinfo.ads (N_Error): Now has Etype field (which will be set
43914         to Any_Type to help error recovery).
43915
43916 2001-10-08  Richard Kenner  <kenner@gnat.com>
43917
43918         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
43919         Consistently set MEM attributes from expression; fixes
43920         bootstrap failure on x86.
43921
43922 2001-10-08  Geert Bosch  <bosch@gnat.com>
43923
43924         * 5oosinte.adb: Add 2001 to copyright notice.
43925
43926 2001-10-08  Geert Bosch  <bosch@gnat.com>
43927
43928         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
43929
43930         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
43931
43932 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
43933
43934         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
43935
43936 2001-10-05  Geert Bosch  <bosch@gnat.com>
43937
43938         * adaint.h: Small formatting fix.
43939
43940 2001-10-04  Geert Bosch  <bosch@gnat.com>
43941
43942         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
43943         Arg is int, not FILE *, in dummy version of functions.
43944
43945         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
43946         Arg is int, not FILE *.
43947
43948 2001-10-04  Geert Bosch  <bosch@gnat.com>
43949
43950         * 3lsoccon.ads: Added file, missed with initial check ins.
43951
43952         * 4lintnam.ads: Fix header format.
43953         Change Linux to GNU/Linux.
43954
43955         * 5iosinte.adb: Change Linux to GNU/Linux.
43956
43957         * 5iosinte.ads: Change Linux to GNU/Linux.
43958
43959         * 5itaprop.adb: Change Linux to GNU/Linux.
43960
43961         * 5itaspri.ads: Change Linux to GNU/Linux.
43962         Update copyright notice.
43963
43964         * 5lintman.adb: Change Linux to GNU/Linux.
43965
43966         * 5lml-tgt.adb: Change Linux to GNU/Linux.
43967
43968         * 5losinte.ads: Change Linux to GNU/Linux.
43969
43970         * 5lsystem.ads: Change Linux to GNU/Linux.
43971
43972         * 5qosinte.adb: Change Linux to GNU/Linux.
43973
43974         * 5qosinte.ads: Change Linux to GNU/Linux.
43975
43976         * 5qparame.ads: Change Linux to GNU/Linux.
43977
43978         * 5qtaprop.adb: Change Linux to GNU/Linux.
43979
43980         * 5qtaspri.ads: Change Linux to GNU/Linux.
43981         Add 2001 to copyright notice.
43982
43983         * 5vintman.ads: Change Linux to GNU/Linux.
43984         Fix header format.  Add 2001 to copyright notice.
43985
43986         * g-soccon.ads: Change Linux to GNU/Linux.
43987
43988         * g-trasym.ads: Change Linux to GNU/Linux.
43989         Add 2001 to copyright notice.
43990
43991         * memtrack.adb: Change Linux to GNU/Linux.
43992
43993         * s-intman.ads: Change Linux to GNU/Linux.
43994         Add 2001 to copyright notice.  Fix header format.
43995
43996         * s-stache.adb: Change Linux to GNU/Linux.
43997
43998         * adaint.c: Change Linux to GNU/Linux.
43999
44000         * cio.c: Change Linux to GNU/Linux.
44001
44002         * cstreams.c: Change Linux to GNU/Linux.
44003
44004         * init.c: Change Linux to GNU/Linux.
44005
44006         * gmem.c: Change Linux to GNU/Linux.
44007
44008         * tracebak.c: Change Linux to GNU/Linux.
44009
44010
44011 2001-10-02  Geert Bosch  <bosch@gnat.com>
44012
44013         * misc.c (insert_default_attributes): Add dummy version.