OSDN Git Service

* gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
2
3         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
4         Set TYPE_NONALIASED_COMPONENT on the array type only if appropriate.
5         (copy_alias_set): Assert that arrays have the same aliasing settings.
6         (substitute_in_type) <ARRAY_TYPE>: Copy TYPE_NONALIASED_COMPONENT.
7
8 2009-02-08  Eric Botcazou  <ebotcazou@adacore.com>
9
10         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
11         Set TYPE_NONALIASED_COMPONENT on the array type.
12
13 2009-01-31  Laurent GUERBY  <laurent@guerby.net>
14
15         * gcc-interface/Makefile.in: Fix mipsel linux handling.
16         
17 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
18
19         * gcc-interface/Makefile.in: Fix multilib handling for
20         powerpc64-linux.
21
22 2009-01-12  Eric Botcazou  <ebotcazou@adacore.com>
23
24         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Really strip
25         only useless conversions around renamed objects.
26
27 2009-01-11  Eric Botcazou  <ebotcazou@adacore.com>
28
29         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Put
30         the _Tag field before any discriminants in the field list.
31         (components_to_record): Remove obsolete comment.
32
33 2008-12-09  Jakub Jelinek  <jakub@redhat.com>
34
35         PR ada/38450
36         * gcc-interface/utils.c (finish_record_type): Use SET_TYPE_MODE.
37         * gcc-interface/decl.c (gnat_to_gnu_entity, make_aligning_type):
38         Likewise.
39
40 2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
41
42         PR bootstrap/38262
43         * gcc-interface/Make-lang.in (gnat1): Add BACKENDLIBS, remove GMPLIBS.
44
45 2008-11-29  Eric Botcazou  <ebotcazou@adacore.com>
46
47         PR ada/30827
48         * g-comver.adb (Ver_Len_Max): Fix inconsistency.
49
50 2008-11-27  Eric Botcazou  <ebotcazou@adacore.com>
51
52         * gcc-interface/decl.c: Fix various nits.
53
54 2008-11-20  Eric Botcazou  <ebotcazou@adacore.com>
55
56         * gcc-interface/utils.c (init_gigi_decls): Fix type mismatch.
57
58 2008-11-16  Eric Botcazou  <ebotcazou@adacore.com>
59
60         PR ada/38127
61         * gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Do not
62         special-case boolean types.  Propagate  the name.
63         * gcc-interface/targtyps.c: Tweak comment.
64
65 2008-11-15  Geert Bosch  <bosch@adacore.com>
66
67         * gcc-interface/trans.c (emit_check): Put back a final save_expr
68         to prevent exponential expansion during gimplification.
69
70 2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>
71
72         * gcc-interface/lang-specs.h: Expand -coverage and reorder switches.
73
74 2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>
75
76         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Force constants
77         initialized to a static constant to be statically allocated even if
78         they are of a padding type, provided the original type also has
79         constant size.
80
81 2008-11-15  Laurent Guerby  <laurent@guerby.net>
82
83         PR ada/37993
84         * gcc-interface/Makefile.in: Add multilib handling for x86_64
85         on darwin.
86         * system-darwin-x86_64.ads: New file.
87
88 2008-11-13  Olivier Hainque  <hainque@adacore.com>
89
90         * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>:
91         Turn Ada Pure on subprograms back into GCC CONST when eh constructs
92         are explicit to the middle-end.  Tidy.
93
94 2008-11-09  Eric Botcazou  <ebotcazou@adacore.com>
95
96         * gcc-interface/ada-tree.def (PLUS_NOMOD_EXPR): New tree code.
97         (MINUS_NOMOD_EXPR): Likewise.
98         * gcc-interface/utils2.c (build_binary_op) <PREINCREMENT_EXPR>: Make
99         unreachable.
100         <PLUS_NOMOD_EXPR>: New case.
101         <MINUS_NOMOD_EXPR>: Likewise.
102         * gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and-
103         assignment statement instead of using an increment operator.
104
105 2008-11-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
106
107         * system-irix-n64.ads: New file.
108         * gcc-interface/Makefile.in (mips-sgi-irix6*): Support O32 and N64
109         multilibs.
110
111 2008-11-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
112
113         PR ada/37681
114         * system-solaris-x86_64.ads: New file.
115         * gcc-interface/Makefile.in (*86-solaris2*): Support x86_64 multilib.
116
117 2008-11-07  Bechir Zalila  <bechir.zalila@gmail.com>
118             Eric Botcazou  <ebotcazou@adacore.com>
119
120         PR ada/34289
121         * lib.ads: (Enable_Switch_Storing): Declare.
122         * lib.adb: (Enable_Switch_Storing): New procedure.
123         * switch-c.adb (Scan_Front_End_Switches): Add support for -gnatea.
124         * make.adb: (Compile_Sources.Compile): Add -gnatea as first option.
125         (Display): Never display -gnatea
126         * gcc-interface/lang-specs.h: If -gnatea is present, pass -gnatez.
127
128 2008-11-07  Thomas Quinot  <quinot@adacore.com>
129
130         * gcc-interface/trans.c (Attribute_to_gnu, case Attr_Length): Check
131         for empty range in original base type, not converted result type.
132
133 2008-11-07  Geert Bosch  <bosch@adacore.com>
134
135         * gcc-interface/trans.c (build_binary_op_trapv): Convert arguments
136         and result for call to __gnat_mulv64.
137
138 2008-11-07  Eric Botcazou  <ebotcazou@adacore.com>
139
140         * gcc-interface/trans.c: Fix formatting nits.
141
142 2008-11-07  Geert Bosch  <bosch@adacore.com>
143
144         * gcc-interface/trans.c (build_binary_op_trapv): Avoid emitting
145         overflow check for constant result.
146
147 2008-11-07  Geert Bosch  <bosch@adacore.com>
148
149         * gcc-interface/trans.c (build_binary_op_trapv): Use more efficient
150         overflow check for addition/subtraction if neither operand is constant.
151
152 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
153
154         * gcc-interface/Makefile.in (SPARC/Solaris): Use a common set of
155         files for the target-dependent part of the runtime.
156         (SPARC/Linux): Likewise.
157
158 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
159
160         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Out_Parameter>: If not
161         optimizing, create a PARM_DECL pointing to the VAR_DECL for debugging
162         purposes.
163
164 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
165
166         * gcc-interface/misc.c (gnat_printable_name): Always return a copy
167         in GC memory.
168
169 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
170
171         PR ada/19419
172         * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>:
173         Generate a call to memmove for an assignment between overlapping
174         array slices.
175
176 2008-11-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
177
178         PR target/37977
179         * gcc-interface/Makefile.in: Add multilib handling for
180         s390-linux and s390x-linux.
181
182 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
183
184         * gcc-interface/Make-lang.in (check-ada-subtargets): Depend on
185         check-acats-subtargets and check-gnat-subtargets.
186         (check_acats_targets): New variable.
187         (check-acats-subtargets, check-acats%): New targets.
188         (check-acats): If -j is used and CHAPTERS is empty, run the testing
189         in multiple make goals, possibly parallel, and afterwards run
190         dg-extract-results.sh to merge the sum and log files.
191
192 2008-10-17  Geert Bosch  <bosch@adacore.com>
193
194         * gcc-interface/trans.c (gnat_to_gnu) <N_Slice>: Simplify expansion
195         to use only a single check instead of three, and avoid unnecessary
196         COMPOUND_EXPR.
197         (emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes
198         creating more opportunities for optimizations.
199
200 2008-10-13  Jakub Jelinek  <jakub@redhat.com>
201
202         PR middle-end/37601
203         * gcc-interface/utils.c (gnat_types_compatible_p): Handle
204         NULL TYPE_DOMAIN.
205
206 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
207
208         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Move code
209         dealing with volatileness to after code dealing with renaming.
210
211 2008-10-06  Eric Botcazou  <ebotcazou@adacore.com>
212
213         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Minor tweaks.
214         * gcc-interface/trans.c (Pragma_to_gnu): Likewise.
215
216 2008-10-06  Eric Botcazou  <ebotcazou@adacore.com>
217
218         * gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate.
219         (unchecked_convert): Use it to disable problematic folding with
220         VIEW_CONVERT_EXPR in the general case.  Always disable it for the
221         special VIEW_CONVERT_EXPR built for integral types and cope with
222         its addressability issues by preserving the first conversion.
223
224 2008-10-01  Andreas Schwab  <schwab@suse.de>
225
226         * system-linux-ppc64.ads: New file.
227         * gcc-interface/Makefile.in: Add multilib handling for
228         powerpc-linux.
229
230 2008-09-26  Eric Botcazou  <ebotcazou@adacore.com>
231
232         * decl.c (gnat_to_gnu_entity) <object>: Cap the alignment promotion
233         to that of ptr_mode instead of word_mode.
234
235 2008-09-26  Eric Botcazou  <ebotcazou@adacore.com>
236
237         PR ada/5911
238         * gcc-interface/Makefile.in (SPARC/Solaris): Add multilib support.
239
240 2008-09-25  Samuel Tardieu  <sam@rfc1149.net>
241
242         PR ada/37641
243         * adaint.c (__gnat_set_non_writable): Use FILE_WRITE_EA
244         instead of deprecated FILE_WRITE_PROPERTIES.
245
246 2008-09-22  Olivier Hainque  <hainque@adacore.com>
247
248         * gcc-interface/decl.c (gnat_to_gnu_entity): Even when they
249         are never assigned, volatile entities are not constant for code
250         generation purposes.
251
252 2008-09-21  Laurent Guerby  <laurent@guerby.net>
253
254         PR ada/5911
255         * gcc-interface/Makefile.in: Add multilib handling for x86_64
256         and sparc.
257         * system-linux-sparcv9.ads: New file.
258
259 2008-09-20  Eric Botcazou  <ebotcazou@adacore.com>
260
261         * exp_dbug.ads: Document new convention for the XVZ variable.
262         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Generate
263         debug info if necessary for the type padding the component type.
264         <E_Array_Subtype>: Likewise.
265         (maybe_pad_type): Emit the XVZ variable in units.
266         * gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits.
267         (Subprogram_Body_to_gnu): Set the source line of the subprogram's node
268         on statements generated to initialize the parameter attributes cache.
269         Set the source line of the end label of the body on the special return
270         statement built for a procedure with copy-in copy-out parameters.
271
272 2008-09-20  Eric Botcazou  <ebotcazou@adacore.com>
273
274         PR ada/37585
275         * gcc-interface/utils.c (create_subprog_decl): Disable inlining for
276         inlined external functions if they contain a nested function not
277         declared inline.
278
279 2008-09-18  Jan Hubicka  <jh@suse.cz>
280
281         * gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P.
282         (end_subprog_body): Do not set DECL_INLINE.
283
284 2008-09-17  Pascal Rigaux  <pixel@mandriva.com>
285
286         PR ada/21327
287         * gnat_ugn.texi: Use proper format in direntry.
288
289 2008-09-15  Eric Botcazou  <ebotcazou@adacore.com>
290
291         * gcc-interface/trans.c (gigi): Declare the name of the compilation
292         unit as the first global name.
293
294 2008-09-14  Jan Hubicka  <jh@suse.cz>
295
296         * gcc-interface/Make-lang.in (gnat1): Add CFLAGS.
297
298 2008-09-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
299
300         * a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads,
301         bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb,
302         exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
303         exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb,
304         exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads,
305         g-diopit.adb, g-socket.ads, gcc-interface/decl.c,
306         gcc-interface/gigi.h, gcc-interface/trans.c,
307         lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads,
308         opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads,
309         s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads,
310         s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb,
311         sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
312         sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
313         sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads,
314         sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in
315         comments.
316         * gnathtml.pl: Fix typos.
317
318 2008-09-10  Joel Sherrill <joel.sherrill@oarcorp.com>
319
320         * gcc-interface/Makefile.in: Switch RTEMS to s-interr-hwint.adb.
321         * s-osinte-rtems.ads: Add shared hardware interrupt adapter
322         layer. RTEMS binds to OS provided adapter routines so there are
323         no modifications to s-osinte-rtems.adb.
324
325 2008-09-09  Arnaud Charlet  <charlet@adacore.com>
326             Joel Sherrill  <joel.sherrill@oarcorp.com>
327
328        * gcc-interface/Makefile.in: Switch VxWorks to s-interr-hwint.adb.
329
330        * s-interr-vxworks.adb: Renamed to s-interr-hwint.adb
331
332        * s-interr-hwint.adb: New file.
333
334         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: Add new functions
335         needed by s-interr-hwint.adb.
336
337         * s-osinte-vxworks-kernel.adb: New file.
338
339 2008-09-05  Joel Sherrill <joel.sherrill@oarcorp.com>
340
341         * s-stchop-rtems.adb: Add file missed in early commit.  Already
342         referenced in gcc-interface/Makefile.in.
343
344 2008-08-30  Thomas Quinot  <quinot@adacore.com>
345
346         * gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to
347         be built even without a separate libada directory.
348
349 2008-08-22  Arnaud Charlet  <charlet@adacore.com>
350
351         * lib-xref.ads: Fix typo in subprogram reference definition.
352
353 2008-08-22  Robert Dewar  <dewar@adacore.com>
354
355         * s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-strops.adb: Minor code fix
356         to avoid warning.
357
358         * g-trasym.adb: Ditto
359
360         * s-utf_32.adb (Get_Category): Fix obvious typo
361
362         * s-wwdcha.adb: Minor code reorganization
363         Remove dead code
364
365 2008-08-22  Robert Dewar  <dewar@adacore.com>
366
367         * checks.adb (Determine_Range): Deal with values that might be invalid
368
369         * opt.adb, opt.ads (Assume_No_Invalid_Values[_Config]): New
370         configuration switches.
371
372         * par-prag.adb: Dummy entry for pragma Assume_No_Invalid_Values
373
374         * sem_prag.adb: Implement pragma Assume_No_Default_Values
375
376         * snames.adb, snames.ads, snames.h:
377         Add entries for pragma Assume_No_Invalid_Values
378
379         * switch-c.adb: Add processing for -gnatB switch
380
381         * usage.adb: Add entry for flag -gnatB (no bad invalid values)
382
383 2008-08-22  Javier Miranda  <miranda@adacore.com>
384
385         * exp_ch3.adb (Build_Init_Statements): Transfer to the body of the
386         init procedure all the expanded code associated with the spec of
387         task types and protected types.
388
389 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
390
391         * exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the
392         component expression copies rather than directly setting Etype and
393         Is_Static_Expression.
394
395 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
396
397         * sem_util.adb (Has_Preelaborable_Initialization): Revise checking of
398         private types to allow for types derived from a private type with
399         preelaborable initialization, but return False for a private extension
400         (unless it has the pragma).
401
402 2008-08-22  Robert Dewar  <dewar@adacore.com>
403
404         * opt.ads: Minor code reorganization (put entries in alpha order)
405
406 2008-08-22  Pascal Obry  <obry@adacore.com>
407
408         * initialize.c, adaint.c: Use Lock_Task and Unlock_Task for non-blocking
409         spawn.
410
411 2008-08-22  Geert Bosch  <bosch@adacore.com>
412
413         * gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN
414         (convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0
415
416 2008-08-22  Doug Rupp  <rupp@adacore.com>
417
418         * bindgen.adb [VMS] (Gen_Adainit_Ada, Gen_Adainit_C): Import and call
419         __gnat_set_features.
420
421         * init.c
422         (__gnat_set_features): New function.
423         (__gnat_features_set): New tracking variable.
424         (__gl_no_malloc_64): New feature global variable
425
426 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
427
428         * sem_ch8.adb (Use_One_Type): Do not emit warning message about redundant
429         use_type_clause in an instance.
430
431 2008-08-22  Bob Duff  <duff@adacore.com>
432
433         * exp_ch6.ads: Remove pragma Precondition, since it breaks some builds.
434
435 2008-08-22  Robert Dewar  <dewar@adacore.com>
436
437         * exp_ch6.adb: Minor reformatting
438
439         * exp_ch7.adb: Minor reformatting
440
441         * exp_ch7.ads: Put routines in proper alpha order
442
443         * exp_dist.adb: Minor reformatting
444
445 2008-08-22  Vincent Celier  <celier@adacore.com>
446
447         * prj.ads: Minor comment update
448
449 2008-08-22  Robert Dewar  <dewar@adacore.com>
450
451         * sem_ch5.adb (One_Bound): Fix latent bug involving secondary stack
452
453 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
454
455         * exp_tss.adb:
456         (Base_Init_Proc): For a protected subtype, use the base type of the
457         corresponding record to locate the propoer initialization procedure.
458
459 2008-08-22  Robert Dewar  <dewar@adacore.com>
460
461         * checks.adb:
462         (In_Subrange_Of): New calling sequence
463         (Determine_Range): Prepare for new processing using base type
464
465         * exp_ch4.adb:
466         (Compile_Time_Compare): Use new calling sequence
467
468         * exp_ch5.adb:
469         (Compile_Time_Compare): Use new calling sequence
470
471         * sem_eval.adb:
472         (Compile_Time_Compare): New calling sequence allows dealing with
473         invalid values.
474         (In_Subrange_Of): Ditto
475
476         * sem_eval.ads:
477         (Compile_Time_Compare): New calling sequence allows dealing with
478         invalid values.
479         (In_Subrange_Of): Ditto
480
481 2008-08-22  Pascal Obry  <obry@adacore.com>
482
483         * adaint.c: Fix possible race condition on win32_wait().
484
485 2008-08-22  Bob Duff  <duff@adacore.com>
486
487         * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb, freeze.adb,
488         exp_ch4.adb, exp_ch6.ads, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
489         exp_intr.adb, exp_ch3.adb: Rename:
490         Exp_Ch7.Controlled_Type => Needs_Finalization
491         Exp_Ch7.CW_Or_Controlled_Type => CW_Or_Has_Controlled_Part
492         Exp_Ch5.Expand_N_Extended_Return_Statement.Controlled_Type =>
493          Has_Controlled_Parts
494         (Has_Some_Controlled_Component): Fix bug in array case.
495
496 2008-08-22  Robert Dewar  <dewar@adacore.com>
497
498         * sem_ch8.adb: Minor reformatting
499
500 2008-08-22  Kevin Pouget  <pouget@adacore.com>
501
502         * s-shasto.ads, s-shasto.adb: Move Shared_Var_ROpen, Shared_Var_WOpen and
503         Shared_Var_Close procedure specifications from package spec to package body.
504
505         * rtsfind.ads: Remove RE_Shared_Var_Close, RE_Shared_Var_ROpen,
506         RE_Shared_Var_WOpen entries.
507
508         * exp_dist.adb: Update RE_Any_Content_Ptr to RE_Any_Container_Ptr in
509         Build_To_Any_Call, Build_TypeCode_Call and Build_From_Any_Call procedures.
510
511 2008-08-22  Eric Botcazou  <ebotcazou@adacore.com>
512
513         * init.c: adjust EH support code on Alpha/Tru64 as well.
514
515         * raise-gcc.c: Add back a couple of comments.
516
517 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
518
519         * exp_ch5.adb (Expand_Simple_Function_Return): If secondary stack is
520         involved and the return type is class-wide, use the type of the expression
521         for the generated access type. Suppress useless discriminant checks on the
522         allocator.
523
524 2008-08-22  Bob Duff  <duff@adacore.com>
525
526         * exp_ch7.adb: Minor comment fix
527
528         * exp_ch6.ads: Minor comment fix
529
530 2008-08-22  Thomas Quinot  <quinot@adacore.com>
531
532         * sem_ch8.adb: Minor reformatting
533         Minor code reorganization (introduce subprogram to factor duplicated
534         code).
535
536 2008-08-22  Sergey Rybin  <rybin@adacore.com>
537
538         * gnat_ugn.texi: Change the description of gnatcheck default rule
539         settings.
540
541 2008-08-22  Eric Botcazou  <ebotcazou@adacore.com>
542
543         * init.c (__gnat_adjust_context_for_raise): Delete for AIX, HP-UX,
544         Solaris, FreeBSD, VxWorks and PowerPC/Linux.  For x86{-64}/Linux,
545         do not adjust the PC anymore.
546         (__gnat_error_handler): Do not call __gnat_adjust_context_for_raise
547         on AIX, HP-UX, Solaris, FreeBSD and VxWorks.
548
549         * raise-gcc.c (get_call_site_action_for): Use _Unwind_GetIPInfo
550         instead of _Unwind_GetIP.
551
552 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
553
554         * exp_aggr.adb (Static_Array_Aggregate): When a static array aggregate
555         with a range is transformed into a positional aggregate, any copied
556         component literals should be marked Is_Static_Expression.
557
558         * sem_eval.adb (Compile_Time_Known_Value): Don't treat null literals as
559         not being known at at compile time when Configurable_Run_Time_Mode is
560         true.
561
562 2008-08-22  Robert Dewar  <dewar@adacore.com>
563
564         * exp_attr.adb:
565         (Expand_N_Attribute_Reference): No validity checking on OUT parameter of
566         Read or Input attribute.
567
568 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
569
570         * sem_ch8.adb (Use_One_Type): when checking which of two use_type
571         clauses in related units is redundant, if one of the units is a package
572         instantiation, use its instance_spec to determine which unit is the
573         ancestor of the other.
574
575 2008-08-22  Javier Miranda  <miranda@adacore.com>
576
577         * exp_attr.adb (Expand_N_Attribute_Reference): In case of access
578         attributes add missing support to handle designated types that come
579         from the limited view.
580
581         * exp_disp.adb (Expand_Interface_Conversion): Remove wrong assertion.
582
583 2008-08-22  Sergey Rybin  <rybin@adacore.com>
584
585         * vms_data.ads: Add entry for new gnatcheck -mNNN option
586
587         * gnat_ugn.texi: Add description for gnatcheck option '-m'
588
589 2008-08-22  Sergey Rybin  <rybin@adacore.com>
590
591         * gnat_ugn.texi: Update the gnatcheck subsection for metric rules
592         acoording to the latest changes in the metric rule interface
593
594 2008-08-22  Vincent Celier  <celier@adacore.com>
595
596         * make.adb (Check.File_Not_A_Source_Of): New Boolean function
597         (Check): Check if the file names registered in the ALI file for the
598         spec, the body and each of the subunits are the ones expected.
599
600 2008-08-22  Robert Dewar  <dewar@adacore.com>
601
602         * g-catiio.adb: Code cleanup.
603
604 2008-08-20  Vincent Celier  <celier@adacore.com>
605
606         * make.adb (Gnatmake): Remove extra space in version line
607
608         * ali.adb:
609         (Scan_ALI): Use Name_Find, not Name_Enter to get the name of a subunit,
610         as the name may already have been entered in the table by the Project
611         Manager.
612
613 2008-08-20  Jose Ruiz  <ruiz@adacore.com>
614
615         * errno.c (__get_errno, __set_errno for MaRTE): Transform then into
616         weak symbols so we use the version provided by MaRTE when available.
617
618 2008-08-20  Emmanuel Briot  <briot@adacore.com>
619
620         * g-catiio.ads, g-catiio.adb:
621         (Value): Avoid an unnecessary system call to Clock in most cases.
622         This call is only needed when only the time is provided in the string,
623         and ignored in all other cases. This is more efficient.
624
625 2008-08-20  Eric Botcazou  <ebotcazou@adacore.com>
626
627         * raise-gcc.c: Fix formatting nits.
628
629 2008-08-20  Robert Dewar  <dewar@adacore.com>
630
631         * sem_ch13.adb:
632         (Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for
633         non-existing component clause.
634
635         * exp_ch5.adb: Minor reformatting
636
637         * g-comlin.adb: Minor reformatting
638
639         * make.adb: Minor reformatting
640
641         * prj-proc.adb: Minor reformatting
642
643         * stylesw.ads: Minor reformatting
644
645 2008-08-20  Vincent Celier  <celier@adacore.com>
646
647         * make.adb (Gnatmake_Switch_Found): New Boolean global variable
648         (Switch_May_Be_Passed_To_The_Compiler): New Boolean global variable
649         (Add_Switches): New Boolean parameter Unknown_Switches_To_The_Compiler
650          defaulted to True. Fail when Unknown_Switches_To_The_Compiler is False
651         and a switch is not recognized by gnatmake.
652         (Gnatmake): Implement new scheme for gnatmake switches and global
653         compilation switches.
654         (Switches_Of): Try successively Switches (<file name>),
655         Switches ("Ada"), Switches (others) and Default_Switches ("Ada").
656
657 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
658
659         * styleg-c.ads, styleg-c.adb (Missing_Overriding): new procedure to
660         implement style check that overriding operations are explicitly marked
661         at such.
662
663         * style.ads (Missing_Overriding): new procedure that provides interface
664         to previous one.
665
666         * stylesw.ads, stylesw.adb: New style switch -gnatyO, to enable check
667         that the declaration or body of overriding operations carries an
668         explicit overriding indicator.
669
670         * sem_ch8.adb
671         (Analyze_Subprogram_Renaming): if operation is overriding, check whether
672         explicit indicator should be present.
673
674         * sem_ch6.adb (Verify_Overriding_Indicator,
675         Check_Overriding_Indicator): If operation is overriding, check whether
676         declaration and/or body of subprogram should be present
677
678 2008-08-20  Vincent Celier  <celier@adacore.com>
679
680         * prj-nmsc.adb (Check_Naming_Schemes): Accept source file names for
681         gprbuild when casing is MixedCase, whatever the casing of the letters
682         in the file name.
683
684 2008-08-20  Gary Dismukes  <dismukes@adacore.com>
685
686         * exp_ch3.adb (Build_Array_Init_Proc): Clarify comment related to
687         creating dummy init proc.
688         (Requires_Init_Proc): Return False in the case No_Default_Initialization
689         is in force and the type does not have associated default
690         initialization. Move test of Is_Public (with tests of restrictions
691         No_Initialize_Scalars and No_Default_Initialization) to end, past tests
692         for default initialization.
693
694 2008-08-20  Jerome Lambourg  <lambourg@adacore.com>
695
696         * g-comlin.adb (For_Each_Simple_Switch): Take care of switches not part
697         of any alias or prefix but having attached parameters (as \"-O2\").
698
699 2008-08-20  Robert Dewar  <dewar@adacore.com>
700
701         * s-fileio.adb: Minor reformatting
702
703 2008-08-20  Thomas Quinot  <quinot@adacore.com>
704
705         * exp_strm.adb (Build_Elementary_Input_Call,
706         Build_Elementary_Write_Call): Fix incorrect condition in circuitry that
707         selects the stream attribute routines for long float types.
708
709 2008-08-20  Vincent Celier  <celier@adacore.com>
710
711         * prj-proc.adb (Process_Declarative_Items): Add Location for Array_Data
712
713         * prj.ads (Array_Data): Add a component Location
714
715 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
716
717         * sem_prag.adb:
718         (Analyze_Pragma, case Obsolescent): Add entity information on the pragma
719         argument for ASIS and navigation use.
720
721 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
722
723         * einfo.ads: Add comment.
724
725 2008-08-20  Bob Duff  <duff@adacore.com>
726
727         * sem_eval.ads: Minor comment fix.
728
729 2008-08-20  Bob Duff  <duff@adacore.com>
730
731         * exp_ch4.adb (Expand_N_And_Then, Expand_N_Or_Else): Improve constant
732         folding. We were folding things like "False and then ...", but not
733         "X and then ..." where X is a constant whose value is known at compile
734         time.
735
736 2008-08-20  Hristian Kirtchev  <kirtchev@adacore.com>
737
738         * exp_ch5.adb (Controlled_Type): New routine.
739         (Expand_N_Extended_Return_Statement): When generating a move of the
740         final list in extended return statements, check the type of the
741         function and in the case of double expanded return statements, the type
742         of the returned object.
743         (Expand_Simple_Function_Return): Perform an interface conversion when
744         the type of the returned object is an interface and the context is an
745         extended return statement.
746
747 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
748
749         * sem_util.adb (Set_Debug_Info_Needed): If the entity is a private type
750         and the full view is visible, set flag on full view as well.
751
752 2008-08-20  Thomas Quinot  <quinot@adacore.com>
753
754         * g-comlin.adb: Minor reformatting
755         Minor code reorganization.
756
757         * freeze.adb: Minor reformatting
758
759 2008-08-20  Vincent Celier  <celier@adacore.com>
760
761         * prj-nmsc.adb (Check_File): An excluded Ada source file may be a
762         source of another project.
763
764 2008-08-20  Pascal Obry  <obry@adacore.com>
765
766         * s-os_lib.ads: Minor reformatting.
767
768 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
769
770         * gnatvsn.ads: Minor reformatting.
771
772 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
773
774         * a-crbtgk.adb, repinfo.adb, g-traceb.ads, repinfo.ads,
775         system-linux-s390x.ads, s-fatflt.ads, s-parame-ae653.ads, g-spipat.adb,
776         g-spipat.ads, g-tasloc.adb, g-debpoo.adb, g-except.ads, g-debpoo.ads,
777         mdll-utl.adb, g-string.adb, g-soliop-solaris.ads, par-sync.adb,
778         exp_ch6.ads, a-cihama.ads, g-curexc.ads, system-linux-sh4.ads,
779         g-utf_32.adb, g-hesorg.adb, s-proinf-irix-athread.ads, s-parint.adb,
780         s-parint.ads, exp_ch7.ads, system-linux-alpha.ads, g-dirope.adb,
781         sinfo-cn.adb, par-labl.adb, a-ciorse.adb, g-calend.adb,
782         s-parame-vms-alpha.ads, nlists.h, exp_imgv.adb, exp_fixd.ads,
783         g-calend.ads, gnatcmd.ads, g-table.adb, s-memory-mingw.adb,
784         g-alveop.ads, g-memdum.ads, g-altive.ads, initialize.c, g-regpat.adb,
785         g-busorg.ads, g-regpat.ads, g-encstr.ads, g-regexp.adb, g-regexp.ads,
786         live.ads, g-dyntab.adb, prj-nmsc.ads, par-ch12.adb, 9drpc.adb,
787         g-alvevi.ads, s-memory.adb, math_lib.adb, s-parame.ads, s-memory.ads,
788         s-regexp.adb, a-exexda.adb, i-cstrea-vms.adb, a-exexpr.adb,
789         g-soliop-mingw.ads, s-imgrea.adb, namet.adb, system-vms.ads,
790         s-inmaop-dummy.adb, s-finroo.ads, a-ngcefu.adb, s-hibaen.ads,
791         g-soliop.ads, s-auxdec.adb, g-locfil.ads, gnatxref.adb, memroot.adb,
792         osint-b.ads, memroot.ads, s-parame-hpux.ads, errutil.adb,
793         system-linux-s390.ads, par-util.adb, osint-c.ads, exp_pakd.ads,
794         i-pacdec.ads, par-endh.adb, mlib-tgt.ads, prj-strt.ads,
795         s-osprim-vms.adb, s-proinf.ads, output.ads, g-moreex.ads,
796         a-finali.ads, s-fatlfl.ads, namet.h, mdll.ads, g-dynhta.ads,
797         s-imgenu.ads, par-tchk.adb, g-excact.ads, memtrack.adb, s-fatgen.adb,
798         a-exexpr-gcc.adb, g-arrspl.adb, par-ch4.adb, g-cgideb.adb, freeze.ads,
799         g-altcon.adb, s-fatllf.ads, gnatfind.adb, s-osinte-lynxos-3.adb,
800         a-exextr.adb, g-htable.ads, a-calfor.adb, s-imgcha.adb, argv.c,
801         a-chahan.ads, g-hesora.adb, system-vms_64.ads, par-ch5.adb, g-md5.adb,
802         lib-xref.ads, g-md5.ads, g-casuti.ads, s-fatsfl.ads, exp_dbug.ads,
803         s-htable.ads, a-ngcoar.adb, s-arit64.ads, a-ngelfu.adb, a-filico.ads,
804         par-ch6.adb, s-inmaop.ads, s-parame-vxworks.ads, s-casuti.ads,
805         a-numaux-darwin.adb, a-cohama.ads, system-linux-sparc.ads, g-os_lib.adb,
806         system-vms-ia64.ads, s-parame-vms-restrict.ads, a-clrefi.ads,
807         s-parame-vms-ia64.ads, a-strfix.adb, a-coorse.adb, a-comlin.ads,
808         a-chtgke.adb, s-imgint.adb, g-expect.ads, exp_ch4.ads, s-finimp.adb,
809         mingw32.h, g-heasor.adb, g-alleve.adb, a-ngrear.adb, s-mastop-irix.adb,
810         s-poosiz.adb, link.c: Fix copyright notice.
811
812 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
813
814         * g-comlin.ads: Update comments.
815
816 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
817
818         * sem_ch8.adb (Analyze_Subprogram_Renaming): Inherit Is_Imported flag.
819
820 2008-08-20  Gary Dismukes  <dismukes@adacore.com>
821
822         * exp_ch11.adb:
823         (Expand_Exception_Handlers): Call Make_Exception_Handler instead of
824         Make_Implicit_Exception_Handler when rewriting an exception handler with
825         a choice parameter, and pass the handler's Sloc instead of that of the
826         handled sequence of statements. Make_Implicit_Exception_Handler sets the
827         Sloc to No_Location (unless debugging generated code), which we don't
828         want for the case of a user handler.
829
830 2008-08-20  Robert Dewar  <dewar@adacore.com>
831
832         * freeze.adb (Freeze_Record_Type): Improve msg for non-contiguous field
833
834         * sem_ch13.adb:
835         (Adjust_Record_For_Reverse_Bit_Order): Messages about layout are
836         now labeled as info msgs, not warnings.
837
838         * tbuild.ads: Clarify documentation of Make_Implicit_Exception_Handler
839
840         * usage.adb: Minor change to avoid overlong line for -gnatwz/Z
841
842         * a-textio.adb: Remove redundant test.
843
844         * a-witeio.adb: Minor code reorganization
845         Remove redundant test found working on another issue
846
847         * a-ztexio.adb: Minor code reorganization
848         Remove redundant test found working on another issue
849
850 2008-08-20  Thomas Quinot  <quinot@adacore.com>
851
852         * s-fileio.adb (Open) Use C helper function to determine whether a
853         given errno value corresponds to a "file not found" error.
854
855         * sysdep.c (__gnat_is_file_not_found_error): New C helper function.
856
857 2008-08-20  Jose Ruiz  <ruiz@adacore.com>
858
859         * errno.c (__get_errno for MaRTE): Use the MaRTE function pthread_errno
860         to get access to the per-task errno variable.
861         (__set_errno for MaRTE): Do not redefine this function here since it is
862         already defined in MaRTE.
863
864 2008-08-20  Tristan Gingold  <gingold@adacore.com>
865
866         * gnat_ugn.texi: Gcov is not supported on static library on AIX.
867
868 2008-08-20  Robert Dewar  <dewar@adacore.com>
869
870         * freeze.adb: Minor reformatting
871
872         * g-comlin.adb: Minor reformatting
873
874         * g-socket.adb: Minor reformatting
875
876         * g-socthi-mingw.adb: Minor reformatting
877
878         * g-stheme.adb: Minor reformatting
879
880 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
881
882         * sem_aggr.adb, sem_type.adb, exp_ch9.ads, einfo.ads,
883         exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve
884         confusion between partial and full views of an ancestor of the context
885         type when the parent is a private extension declared in a parent unit,
886         and full views are available for the context type.
887
888 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
889             Robert Dewar  <dewar@adacore.com>
890
891         PR ada/30827
892         * bindgen.adb (Gen_Output_File_Ada): Zero-terminate the
893         version string.
894         Move comment in the right place.
895         * g-comver.adb (Version): Look for a zero-termination in
896         addition to a closing parenthesis.
897
898 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
899
900         * exp_ch13.adb, exp_disp.adb, sem_cat.adb, sem_ch10.adb,
901         * sem_ch12.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
902         * sem_prag.adb, sem_util.adb, sem_warn.adb: Use
903         Is_Package_Or_Generic_Package instead of hand-crafted tests.
904
905 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
906
907         PR ada/15808
908         * sem_ch6.adb (Check_Private_Overriding): Check for generic packages
909         as well.
910
911 2008-08-17  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
912
913         * adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement.
914
915 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
916
917         * gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call
918         for back-copy statements in lieu of that of the actual.
919
920 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
921
922         PR ada/20548
923         * gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the
924         setjmp test consistently.  Adjust for new behavior of flag_stack_check.
925         * gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant
926         test of flag_stack_check.  Adjust for new behavior of flag_stack_check.
927
928 2008-08-13  Samuel Tardieu  <sam@rfc1149.net>
929
930         PR ada/36777
931         * sem_util.ads, sem_util.adb (Is_Protected_Self_Reference): New.
932         * sem_attr.adb (Check_Type): The current instance of a protected
933         object is not a type name.
934         (Analyze_Access_Attribute): Accept instances of protected objects.
935         (Analyze_Attribute, Attribute_Address clause): Ditto.
936         * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite
937         the prefix as being the current instance if needed.
938
939 2008-08-12  Danny Smith  <danyssmith@users.sourceforge.net>
940
941         * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]:
942         Remove duplicate s-win32.o. Add s-winext.o.
943
944 2008-08-12  Danny Smith  <danyssmith@users.sourceforge.net>
945
946         * g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM
947         with SOSC.SOCK__STREAM.
948         * g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with
949         SOSC.MSG_OOB.
950
951 2008-08-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
952
953         * s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it.
954         * gsocket.h, socket.c: Update to support RTEMS.
955         * gcc-interface/Make-lang.in: Include CFLAGS_FOR_TARGET when cross.
956
957 2008-08-10  Samuel Tardieu  <sam@rfc1149.net>
958             Robert Dewar <dewar@adacore.com>
959
960         * exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of
961         left argument even when right argument is 0.
962         (Expand_N_Op_Mod): Ditto when right argument is 1.
963         (Expand_N_Op_Multiply): Ditto when any argument is 0.
964         (Expand_N_Op_Rem): Ditto when right argument is 1.
965
966 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
967
968         * gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused
969         by warn_unused.
970
971 2008-08-08  Ed Schonberg  <schonberg@adacore.com>
972
973         * freeze.adb (Generate_Prim_Op_References): New procedure, abstracted
974         from Freeze_Entity. Used to generate cross-reference information for
975         types declared in generic packages.
976
977 2008-08-08  Thomas Quinot  <quinot@adacore.com>
978
979         * gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a
980         compatibility shim.
981
982 2008-08-08  Thomas Quinot  <quinot@adacore.com>
983
984         * gsocket.h:
985         On Windows, include <errno.h> and redefine only selected errno values
986         from their <winsock2.h> definitions.
987
988         * s-osinte-freebsd.ads: Minor reformatting
989
990         * s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting
991
992         * g-soccon.ads: New file.
993
994         * g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb,
995         g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb,
996         g-stsifd-sockets.adb, g-socket.adb, g-socket.ads,
997         g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child
998         unit, to allow building software that depends on this internal unit
999         with both older and newer compilers.
1000
1001 2008-08-08  Robert Dewar  <dewar@adacore.com>
1002
1003         * s-strxdr.adb: Minor reformatting
1004
1005 2008-08-08  Bob Duff  <duff@adacore.com>
1006
1007         * gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow
1008         checking for integer operations (including division by zero)", which
1009         is wrong -- divide by zero is not part of overflow checking.
1010         Also added misc clarification about what check-suppression means.
1011
1012         * gnat_rm.texi: Clarify the meaning of pragma Suppress.
1013
1014 2008-08-08  Jerome Lambourg  <lambourg@adacore.com>
1015
1016         * g-comlin.adb (Add_Switch): Handle addition of switches at the
1017         begining of the command line.
1018         (Append, Add): Renaming of Append to Add as this now allows addition
1019         at the begining of the list.
1020
1021         * g-comlin.ads (Add_Switch): Handle addition of switches at the
1022         begining of the command line.
1023
1024 2008-08-08  Thomas Quinot  <quinot@adacore.com>
1025
1026         * g-sercom.ads:
1027         (Name): Document application scope (only legacy PC serial ports on
1028         Linux and Windows).
1029
1030 2008-08-08  Thomas Quinot  <quinot@adacore.com>
1031
1032         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert
1033         previous change, not needed after all.
1034
1035 2008-08-08  Ed Schonberg  <schonberg@adacore.com>
1036
1037         * exp_ch4.adb (Expand_Allocator_Expression): add check if null
1038         exclusion indicator is present
1039
1040 2008-08-08  Robert Dewar  <dewar@adacore.com>
1041
1042         * g-comlin.adb: Minor code reorganization
1043         Minor reformatting
1044
1045         * g-comlin.ads: Minor reformatting
1046
1047         * s-fileio.adb: Minor reformatting
1048
1049         * sem_attr.adb: Minor code reorganization (use Nkind_In)
1050         Minor reformatting
1051
1052 2008-08-06  Samuel Tardieu  <sam@rfc1149.net>
1053
1054         * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing
1055         with s-oscons-tmplt.i.
1056
1057 2008-08-06  Samuel Tardieu  <sam@rfc1149.net>
1058
1059         * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove.
1060
1061 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1062
1063         * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
1064         of incomplete type.
1065
1066         * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
1067         of a formal parameter of an incomplete type. Improve error message for
1068         other improper uses of incomplete types.
1069
1070 2008-08-06  Robert Dewar  <dewar@adacore.com>
1071
1072         * gnat_ugn.texi: Clarify -gnato documentation
1073
1074 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1075
1076         * gcc-interface/Makefile.in,
1077         g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb,
1078         g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads,
1079         g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads,
1080         g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads,
1081         g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads,
1082         g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads,
1083         g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads,
1084         g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads,
1085         g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads:
1086         Remove GNAT.Sockets.Constants. This internal package is replaced by
1087         System.OS_Constants.
1088
1089 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1090
1091         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in:
1092         Remove obsolete targets referencing gen-soccon
1093         When generating s-oscons.ads, use a file name that includes the
1094         THREAD_KIND, to ensure that the (potentially different) version from a
1095         previous build with a different threads flavour does not get reused.
1096
1097 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1098
1099         * sem_res.adb: Minor reformatting
1100
1101         * s-fileio.adb (Open): When file open operation fails, raise Name_Error
1102         only when the operating system reports a non-existing file or directory
1103         (ENOENT), otherwise raise Name_Error.
1104
1105         * exp_ch11.adb: Minor reformatting
1106
1107 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1108
1109         * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is
1110         incomplete, add the access_to_subprogram type to the list of private
1111         dependents only if the incomplete type will be completed in the current
1112         scope.
1113         (Build_Discriminant_Constraints): If the type of the discriminant is
1114         access_to_variable, reject a constraint that is access_to_constant.
1115
1116 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1117
1118         * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb,
1119         g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads,
1120         g-sttsne-dummy.ads: New files.
1121
1122         * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources
1123         with pragma Unimplemented_Unit for sockets packages on Nucleus.
1124
1125 2008-08-06  Pascal Obry  <obry@adacore.com>
1126
1127         * adaint.c: Another fix for ACL support on Windows.
1128
1129 2008-08-06  Javier Miranda  <miranda@adacore.com>
1130
1131         * exp_disp (Expand_Interface_Actuals): Adds missing support for
1132         expansion of calls to subprograms using selected components.
1133
1134 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1135
1136         * sem_res.adb (Resolve_Call): Use base type to determine whether a
1137         dereference is needed because a subtype of an access_to_subprogram is
1138         simply an access-subtype
1139
1140 2008-08-06  Jerome Lambourg  <lambourg@adacore.com>
1141
1142         * g-comlin.adb (Set_Command_Line): Now that aliases can contain
1143         parameters, always specify the expected separator.
1144
1145 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1146
1147         * xnmake.adb: Use new XUtil package for platform independent text
1148         output.
1149
1150 2008-08-06  Vincent Celier  <celier@adacore.com>
1151
1152         * gnat_ugn.texi: Document compiler switch -gnateG
1153
1154 2008-08-06  Quentin Ochem  <ochem@adacore.com>
1155
1156         * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark
1157         in the case of an empty pattern size.
1158         (Compute_Result): Do not do any computation in the case of an empty
1159         pattern size.
1160         (Report_Result): Fixed computation of the overflow guard.
1161
1162 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1163
1164         * g-awk.adb (Finalize): Do not use directly objects of the type in the
1165         finalization routine to prevent elaboration order anomalies in new
1166         finalization scheme.
1167
1168 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1169
1170         * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete
1171         declaration for the same type.
1172
1173 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1174
1175         * sem.adb: Minor rewording (comment)
1176
1177 2008-08-06  Jerome Lambourg  <lambourg@adacore.com>
1178
1179         * g-comlin.adb (Define_Switch, Get_Switches): New.
1180         (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when
1181         ungrouping switches.
1182         (For_Each_Simple_Switch): Allow more control over parameters handling.
1183         This generic method now allows ungrouping of switches with parameters
1184         and switches with more than one letter after the prefix.
1185         (Set_Command_Line): Take care of switches that are prefixed with a
1186         switch handling parameters without delimiter (-gnatya and -gnaty3 for
1187         example).
1188         (Add_Switch, Remove_Switch): Handle parameters possibly present inside
1189         a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of
1190         the operation.
1191         (Start, Alias_Switches, Group_Switches): Take care of parameters
1192         possibly present inside a group.
1193
1194         * g-comlin.ads (Define_Switch): New method used to define a list of
1195         expected switches, that are necessary for correctly ungrouping switches
1196         with more that one character after the prefix.
1197         (Get_Switches): Method that builds a getopt string from the list of
1198         switches as set previously by Define_Switch.
1199         (Add_Switch, Remove_Switch): New versions of the methods, reporting the
1200         status of the operation. Also allow the removal of switches with
1201         parameters only.
1202         (Command_Line_Configuration_Record): Maintain a list of expected
1203         switches.
1204
1205 2008-08-06  Doug Rupp  <rupp@adacore.com>
1206
1207         * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if
1208         TARGET_MALLOC64 clear.
1209
1210         * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc
1211         if TARGET_MALLOC64 clear.
1212
1213         * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c
1214         (TARGET_MALLC64): New macro. Default to clear.
1215
1216 2008-08-06  Doug Rupp  <rupp@adacore.com>
1217
1218         * gcc-interface/utils2.c (snames.h) Include
1219         (TARGET_ABI_OPEN_VMS): Initialize.
1220         (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap
1221         for Convention C.
1222
1223 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1224
1225         * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper
1226         null exclusion in a discriminant declaration
1227
1228         * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion
1229         indicators when type is not an access type.
1230
1231         * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion
1232         indicators when type is not an access type.
1233
1234 2008-08-06  Javier Miranda  <miranda@adacore.com>
1235
1236         * exp_disp (Expand_Interface_Conversion): Freeze the entity associated
1237         with the target interface before expanding the code of the interface
1238         conversion.
1239
1240 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1241
1242         * freeze.adb:
1243         (Freeze_Entity): A deferred constant does not violate the restriction
1244         No_Default_Initialization,
1245
1246         * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that
1247         can carry a null exclusion indicator, and on which an error may be
1248         posted if the indicator is redundant.
1249
1250         * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion
1251         does not apply to a subtype mark that already excludes null.
1252
1253         * sem_ch12.adb (Formal_Object_Declaration): Verify that a null
1254         exclusion does not apply to a subtype mark that already excludes null.
1255
1256 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1257
1258         * Makefile.rtl: Compile s-oscons.ads as part of the runtime library.
1259
1260 2008-08-05  Doug Rupp  <rupp@adacore.com>
1261
1262         * vms_data.ads: Translation for /POINTER_SIZE qualifier.
1263
1264 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1265
1266         * gsocket.h: Make this file includable in a Nucleus environment, which
1267         does not support sockets.
1268
1269         * socket.c: Remove Nucleus-specific hack.
1270
1271 2008-08-05  Pascal Obry  <obry@adacore.com>
1272
1273         * adaint.c: Remove support for readable attribute on vxworks and nucleus
1274
1275 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1276
1277         * sem_attr.adb:
1278         (Analyze_Attribute, case 'Result): handle properly the case where some
1279         operand of the expression in a post-condition generates a transient
1280         block.
1281
1282         * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to
1283         right-hand side when it is an anonymous access_to_subprogram, to force
1284         static accessibility check when needed.
1285
1286 2008-08-05  Sergey Rybin  <rybin@adacore.com>
1287
1288         * gnat_ugn.texi: Changing the description of the gnatcheck metrics
1289         rule according to the change in the rule option.
1290         Add documentation for -gnatw.b/-gnatw.B
1291
1292 2008-08-05  Robert Dewar  <dewar@adacore.com>
1293
1294         * ug_words: Add entries for -gnatw.b/-gnatw.B
1295
1296         * vms_data.ads: Add entries for -gnatw.b/-gnatw.B
1297
1298 2008-08-05  Vincent Celier  <celier@adacore.com>
1299
1300         * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put
1301         (File).
1302
1303         * a-ztdeio.adb: Ditto.
1304
1305 2008-08-05  Pascal Obry  <obry@adacore.com>
1306
1307         * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the
1308         readable attribute.
1309
1310 2008-08-05  Vincent Celier  <celier@adacore.com>
1311
1312         * s-wchwts.adb:
1313         (Wide_String_To_String): Returns a String with the same 'First as its
1314         parameter S.
1315         (Wide_Wide_String_To_String): Ditto
1316
1317         * s-wchwts.ads:
1318         (Wide_String_To_String): Document that the lowest index of the returned
1319         String is equal to S'First.
1320
1321 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1322
1323         * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files.
1324
1325         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate
1326         s-oscons.ads
1327
1328 2008-08-05  Robert Dewar  <dewar@adacore.com>
1329
1330         * opt.ads (Warn_On_Biased_Representation): New flag
1331
1332         * sem_ch13.adb:
1333         (Analyze_Attribute_Definition_Clause): Issue warning when biased
1334         representation is required.
1335         (Minimum_Size): Don't allow biasing if enum rep clause case
1336
1337         * sem_warn.adb:
1338         (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches
1339         (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws
1340
1341         * usage.adb: Add lines for -gnatw.b/B switches
1342
1343 2008-08-05  Pascal Obry  <obry@adacore.com>
1344
1345         * a-coinve.adb: Reorder the code to avoid uninitialized warning.
1346
1347         * adaint.c: In UNIX cases do not call __gnat_stat but stat directly.
1348
1349 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1350
1351         * socket.c: Minor reformatting.
1352
1353 2008-08-05  Robert Dewar  <dewar@adacore.com>
1354
1355         * sem_ch3.adb: Minor reformatting
1356
1357         * prj-nmsc.adb: Minor reformatting
1358
1359 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1360
1361         * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
1362         visibility check on the component type if the simple test fails.
1363
1364 2008-08-05  Jose Ruiz  <ruiz@adacore.com>
1365
1366         * init.c (__gnat_install_handler for linux): If we are building the
1367         Xenomai run time then we need to do two additional things: avoid
1368         memory swapping and transform the Linux environment task into a native
1369         Xenomai task.
1370
1371         * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run
1372         time): Use interface to Xenomai native skin and avoid linux-specific
1373         way of setting CPU affinity.
1374         (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism.
1375
1376 2008-08-05  Bob Duff  <duff@adacore.com>
1377
1378         * checks.ads: Minor comment fix
1379
1380 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1381
1382         * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb,
1383         g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and
1384         CS8.
1385
1386 2008-08-05  Robert Dewar  <dewar@adacore.com>
1387
1388         * mlib.adb: Minor code reorganization
1389         Minor reformatting
1390
1391         * make.adb: Minor reformatting
1392
1393         * prj-attr.ads: Minor reformatting
1394
1395         * s-os_lib.adb: Minor reformatting
1396
1397         * s-fileio.adb: Minor code reorganization
1398         Minor reformatting
1399
1400         * prj.ads: Minor reformatting
1401
1402 2008-08-05  Bob Duff  <duff@adacore.com>
1403
1404         * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in
1405         unresolved initial value of "null", because it causes implicitly
1406         generated "=" operators to be ambiguous, and because this type should
1407         not be passed to gigi.
1408
1409 2008-08-05  Vincent Celier  <celier@adacore.com>
1410
1411         * mlib.adb: Update comments.
1412
1413         * make.adb (Switches_Of): Check for Switches (others), before checking
1414         for Default_Switches ("Ada").
1415         (Gnatmake): Use Builder'Switches (others) in preference to
1416         Builder'Default_Switches ("Ada") if there are several mains.
1417
1418         * prj-attr-pm.adb:
1419         (Add_Attribute): Add component Others_Allowed in Attribute_Record
1420         aggregate.
1421
1422         * prj-attr.adb:
1423         Add markers to indicates that attributes Switches allow others as index
1424         (Others_Allowed_For): New Boolean function, returning True for
1425         attributes with the mark.
1426         (Initialize): Recognize optional letter 'O' as the marker for
1427         associative array attributes where others is allowed as the index.
1428
1429         * prj-attr.ads:
1430         (Others_Allowed_For): New Boolean function
1431         (Attribute_Record): New Boolean component Others_Allowed
1432
1433         * prj-dect.adb:
1434         (Parse_Attribute_Declaration): For associative array attribute where
1435         others is allowed as the index, allow others as an index.
1436
1437         * prj-nmsc.adb:
1438         (Process_Binder): Skip associative array attributes with index others
1439         (Process_Compiler): Ditto
1440
1441         * prj-util.adb:
1442         (Value_Of (Index, In_Array)): Make no attempt to put in lower case when
1443         index is All_Other_Names.
1444
1445         * prj.ads:
1446         (All_Other_Names): New constant
1447
1448         * prj-proc.adb:
1449         (Process_Declarative_Items): Skip associative array attribute when index
1450         is reserved word "others".
1451
1452 2008-08-05  Vasiliy Fofanov  <fofanov@adacore.com>
1453
1454         * gen-oscons.c: Adapt for VMS where termios.h is not available.
1455
1456 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1457
1458         * a-rttiev.adb: Minor reformatting (comments)
1459
1460         * gen-soccon.c: Rename to gen-oscons.c
1461
1462         * gen-oscons.c: New file. Now generate System.OS_Constants instead of
1463         GNAT.Sockets.Constants.
1464         Add new constants for GNAT.Serial_Communications and System.File_IO.
1465
1466 2008-08-05  Javier Miranda  <miranda@adacore.com>
1467
1468         * sem_util.adb (Collect_Interfaces_Info): Minor reformating.
1469         * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the
1470         implementation of this routine has been simplified.
1471
1472 2008-08-05  Pascal Obry  <obry@adacore.com>
1473
1474         * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the
1475         Set_Read_Only Win32 implementation.
1476
1477 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1478
1479         * exp_strm.adb: Minor reformatting (comments)
1480
1481         * sem_ch12.adb: Minor reformatting.
1482
1483 2008-08-05  Robert Dewar  <dewar@adacore.com>
1484
1485         * sem_ch3.adb: Minor reformatting
1486
1487         * checks.adb: Minor reformatting
1488
1489 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1490
1491         * tbuild.ads (New_External_Name): Update spec to reflect relaxed
1492         restriction on Prefix.
1493
1494 2008-08-05  Jerome Lambourg  <lambourg@adacore.com>
1495
1496         * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal
1497         methods needed to handle switch sections when building a command line.
1498         (Define_Section, Add_Switch, Remove_Switch, Is_New_Section,
1499         Current_Section): New public methods or methods modified to handle
1500         building command lines with sections.
1501         (Set_Command_Line): Take into account sections when analysing a switch
1502         string.
1503         (Start): Sort the switches by sections before iterating the command line
1504         elements.
1505
1506         * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch,
1507         Is_New_Section, Current_Section): New methods or methods modified to
1508         handle building command lines with sections.
1509
1510 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1511
1512         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access
1513         discriminants, indicate that the corresponding object declaration has
1514         no initialization, to prevent spurious warnings when the access type is
1515         null-excluding.
1516
1517 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1518
1519         * sem_res.adb (Resolve_Call): If this is a call to the predefined
1520         Abort_Task, warn if the call appears within a protected operation.
1521
1522 2008-08-04  Robert Dewar  <dewar@adacore.com>
1523
1524         * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances
1525
1526 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1527
1528         * sem_ch3.adb:
1529         (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an
1530         anonymous access to protected subprogram that is the return type of the
1531         specification of a subprogram body.
1532
1533         * sem_ch6.adb:
1534         (Analyze_Subprogram_Body): if the return type is an anonymous access to
1535         subprogram, freeze it now to prevent access anomalies in the back-end.
1536
1537         * exp_ch9.adb: Minor code cleanup.
1538         Make sure that new declarations are inserted into the tree before
1539         analysis (from code reading).
1540
1541 2008-08-04  Robert Dewar  <dewar@adacore.com>
1542
1543         * exp_ch5.adb:
1544         (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction
1545         at point of return.
1546
1547 2008-08-04  Thomas Quinot  <quinot@adacore.com>
1548
1549         * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting
1550
1551 2008-08-04  Vasiliy Fofanov  <fofanov@adacore.com>
1552
1553         * g-soccon-mingw.ads: Fix value for MSG_WAITALL
1554
1555 2008-08-04  Javier Miranda  <miranda@adacore.com>
1556
1557         * sem_prag.adb (Process_Convention): Add missing support for
1558          N_Private_Extension_Declaration nodes.
1559
1560 2008-08-04  Robert Dewar  <dewar@adacore.com>
1561
1562         * exp_ch4.adb: Minor reformatting
1563
1564 2008-08-04  Pascal Obry  <obry@adacore.com>
1565
1566         * adaint.h: Add missing prototype.
1567
1568         * adaint.c: Refine support for Windows file attributes.
1569
1570 2008-08-04  Robert Dewar  <dewar@adacore.com>
1571
1572         * sem_res.adb:
1573         (Valid_Conversion): Catch case of designated types having different
1574         sizes, even though they statically match.
1575
1576 2008-08-04  Javier Miranda  <miranda@adacore.com>
1577
1578         * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch
1579         added in previous patch to handle access to subprograms.
1580
1581 2008-08-04  Robert Dewar  <dewar@adacore.com>
1582
1583         * freeze.adb:
1584         (Freeze_Entity): Only check No_Default_Initialization restriction for
1585         constructs that come from source
1586
1587 2008-08-04  Thomas Quinot  <quinot@adacore.com>
1588
1589         * exp_ch6.adb: Minor comment fix.
1590
1591         * sem_ch4.adb: Minor reformatting.
1592
1593 2008-08-04  Robert Dewar  <dewar@adacore.com>
1594
1595         * sem_res.adb: (Large_Storage_Type): Improve previous change.
1596
1597 2008-08-04  Pascal Obry  <obry@adacore.com>
1598
1599         * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with
1600         file attributes.
1601
1602 2008-08-04  Javier Miranda  <miranda@adacore.com>
1603
1604         * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support
1605         for N_Formal_Object_Declaration nodes. Adding kludge required by
1606         First_Formal to provide its functionality with access to functions.
1607         (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support
1608         for anonymous access types returned by functions.
1609
1610         * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate
1611         conversion of null-excluding access types (required only once to force
1612         the generation of the required runtime check).
1613
1614         * sem_type.adb (Covers): minor reformating
1615
1616         * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors
1617         with internally generated nodes. Avoid generating the error inside init
1618         procs.
1619
1620         * sem_res.adb (Resolve_Membership_Test): Minor reformating.
1621         (Resolve_Null): Generate the null-excluding check in case of assignment
1622         to a null-excluding object.
1623         (Valid_Conversion): Add missing support for anonymous access to
1624         subprograms.
1625
1626         * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for
1627         anonymous access types whose designated type is an itype. This case
1628         occurs with anonymous access to protected subprograms types.
1629         (Analyze_Return_Type):  Add missing support for anonymous access to
1630         protected subprogram.
1631
1632         * sem_eval.adb (Subtypes_Statically_Match): In case of access to
1633         subprograms addition of missing check on matching convention. Required
1634         to properly handle access to protected subprogram types.
1635
1636         * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on
1637         null excluding access types.
1638
1639 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1640
1641         * sem_ch12.adb: Add comments
1642
1643         * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null
1644         access type and the allocator is not initialized, warn rather than
1645         reporting an error.
1646
1647 2008-08-04  Robert Dewar  <dewar@adacore.com>
1648
1649         * exp_ch4.adb: Minor reformatting
1650
1651         * exp_dist.adb: Minor reformatting
1652
1653         * g-comlin.adb: Minor reformatting
1654
1655 2008-08-04  Gary Dismukes  <dismukes@adacore.com>
1656
1657         * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
1658         target to the type of the aggregate in the case where the target object
1659         is class-wide.
1660
1661         * exp_ch5.adb (Expand_Simple_Function_Return): When the function's
1662         result type is class-wide and inherently limited, and the expression
1663         has a specific type, create a return object of the specific type, for
1664         more efficient handling of returns of build-in-place aggregates (avoids
1665         conversions of the class-wide return object to the specific type on
1666         component assignments).
1667
1668         * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
1669         about a type mismatch for a class-wide function with a return object
1670         having a specific type when the object declaration doesn't come from
1671         source. Such an object can result from the expansion of a simple return.
1672
1673 2008-08-04  Vasiliy Fofanov  <fofanov@adacore.com>
1674
1675         * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files.
1676
1677         * gcc-interface/Makefile.in: Use 64bit-specific system files when
1678         compiling for 64bit windows.
1679
1680 2008-08-04  Jerome Lambourg  <lambourg@adacore.com>
1681
1682         * g-comlin.adb (Group_Switches): Preserve the switch order when
1683         grouping and allow switch grouping of switches with more than one
1684         character extension (e.g. gnatw.x).
1685         (Args_From_Expanded): Remove this now obsolete method.
1686
1687 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1688
1689         * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for
1690         chain at once, to ensure that type is properly decorated for back-end,
1691         when allocator appears within a loop.
1692
1693 2008-08-04  Kevin Pouget  <pouget@adacore.com>
1694
1695         * snames.h, snames.adb, snames.ads:
1696         Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines.
1697
1698         * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call,
1699         Build_To_Any_Call and Build_TypeCode_Call procedures.
1700
1701         * exp_attr.adb, sem_attr.adb: Add corresponding cases.
1702
1703         * rtsfind.ads: Add corresponding names.
1704
1705         * tbuild.adb: Update prefix restrictions to allow '_' character.
1706
1707 2008-08-04  Doug Rupp  <rupp@adacore.com>
1708
1709         * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
1710         * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
1711         * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
1712         use it.  Calculate pointer range overflow using 64bit types.
1713
1714 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1715
1716         * sem_ch3.adb (Access_Definition): A formal object declaration is a
1717         legal context for an anonymous access to subprogram.
1718
1719         * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
1720         indirect call, report success to the caller to include possible
1721         interpretation.
1722
1723         * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
1724         check when the type
1725         of the extended return is an anonymous access_to_subprogram type.
1726
1727         * sem_res.adb:
1728         (Resolve_Call): Insert a dereference if the type of the subprogram is an
1729         access_to_subprogram and the context requires its return type, and a
1730         dereference has not been introduced previously.
1731
1732 2008-08-04  Arnaud Charlet  <charlet@adacore.com>
1733
1734         * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve
1735         gnatcheck support in GPS.
1736
1737 2008-08-04  Vincent Celier  <celier@adacore.com>
1738
1739         * mlib.adb (Create_Sym_Links): Create relative symbolic links when
1740         requested
1741
1742 2008-08-04  Vincent Celier  <celier@adacore.com>
1743
1744         * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
1745         variable, but don't check the resulting value as it has no impact on
1746         the processing.
1747
1748         * opt.ads:
1749         (Generate_Processed_File): New Boolean flag, set to True in the compiler
1750         when switch -gnateG is used.
1751
1752         * prep.adb:
1753         (Preprocess): new Boolean out parameter Source_Modified. Set it to True
1754         when the source is modified by the preprocessor and there is no
1755         preprocessing errors.
1756
1757         * prep.ads (Preprocess): new Boolean out parameter Source_Modified
1758
1759         * sinput-l.adb:
1760         (Load_File): Output the result of preprocessing if the source text was
1761         modified.
1762
1763         * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG
1764
1765         * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG
1766
1767         * ug_words: Add VMS equivalent for -gnateG
1768
1769         * vms_data.ads:
1770         Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG
1771
1772 2008-08-04  Doug Rupp  <rupp@adacore.com>
1773
1774         * gcc-interface/utils2.c:
1775         (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer
1776         in 32bit descriptor.
1777
1778 2008-08-04  Robert Dewar  <dewar@adacore.com>
1779
1780         * par-ch10.adb: Minor reformatting
1781
1782         * i-cobol.adb: Minor reformatting.
1783
1784 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1785
1786         * sem_ch3.adb (Access_Definition): Create an itype reference for an
1787         anonymous access return type of a regular function that is not a
1788         compilation unit.
1789
1790 2008-08-04  Vincent Celier  <celier@adacore.com>
1791
1792         * prj-attr.adb: New Builder attribute Global_Compilation_Switches
1793
1794         * snames.adb: New standard name Global_Compilation_Switches
1795
1796         * snames.ads: New standard name Global_Compilation_Switches
1797
1798         * make.adb: Correct spelling error in comment
1799
1800 2008-08-04  Arnaud Charlet  <charlet@adacore.com>
1801
1802         * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI
1803         target.
1804
1805 2008-08-04  Thomas Quinot  <quinot@adacore.com>
1806
1807         * sem_ch10.adb: Minor comment fix.
1808
1809 2008-08-04  Robert Dewar  <dewar@adacore.com>
1810
1811         * restrict.adb: Improved messages for restriction warnings
1812
1813         * restrict.ads: Improved messages for restriction messages
1814
1815         * s-rident.ads (Profile_Name): Add No_Profile
1816
1817 2008-08-04  Robert Dewar  <dewar@adacore.com>
1818
1819         * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus
1820
1821 2008-08-04  Robert Dewar  <dewar@adacore.com>
1822
1823         * freeze.adb (Freeze_Entity): Check for size clause for boolean warning
1824
1825 2008-08-04  Vincent Celier  <celier@adacore.com>
1826
1827         * prj-proc.adb:
1828         (Copy_Package_Declarations): When inheriting package Naming from a
1829         project being extended, do not inherit source exception names.
1830
1831 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1832
1833         * sem_prag.adb (Check_Precondition_Postcondition): When scanning the
1834         list of declaration to find previous subprogram, do not go to the
1835         original node of a generic unit.
1836
1837 2008-08-02  Eric Botcazou  <ebotcazou@adacore.com>
1838
1839         * gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>:
1840         New case.  Convert BOOLEAN_TYPE operation to the default integer type.
1841
1842 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>
1843
1844         * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
1845         * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
1846         and adjust for above renaming.
1847         * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
1848         gnu_expr_alt_type parameter.  Convert the expression to it instead
1849         of changing its type in place.
1850         (build_function_stub): Adjust call to above function.
1851
1852 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>
1853
1854         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
1855         code.  Do not get full definition of deferred constants with address
1856         clause for a use.  Do not ignore deferred constant definitions with
1857         address clause.  Ignore constant definitions already marked with the
1858         error node.
1859         <object>: Remove obsolete comment.  For a deferred constant with
1860         address clause, get the initializer from the full view.
1861         * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
1862         Rework and remove obsolete comment.
1863         <N_Object_Declaration>: For a deferred constant with address clause,
1864         mark the full view with the error node.
1865         * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
1866         formatting nits.
1867
1868 2008-08-01  Hristian Kirtchev  <kirtchev@adacore.com>
1869
1870         * rtsfind.ads: Add block IO versions of stream routines for Strings.
1871
1872         * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads,
1873         sem_prag.adb, snames.adb, snames.ads, snames.h,
1874         par-prag.adb: Undo previous stream related changes.
1875
1876         * s-rident.ads: Add new restriction No_Stream_Optimizations.
1877
1878         * s-ststop.ads, s-ststop.adb: Comment reformatting.
1879         Define enumeration type to designate different IO mechanisms.
1880         Enchance generic package Stream_Ops_Internal to include an
1881         implementation of Input and Output.
1882
1883         * exp_attr.adb (Find_Stream_Subprogram): If restriction
1884         No_Stream_Optimization is active, choose the default byte IO
1885         implementations of stream attributes for Strings.
1886         Otherwise use the corresponding block IO version.
1887
1888 2008-08-01  Olivier Hainque  <hainque@adacore.com>
1889
1890         * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: Do not
1891         turn Ada Pure into GCC const, now implicitely implying nothrow as well.
1892
1893 2008-08-01  Robert Dewar  <dewar@adacore.com>
1894
1895         * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to
1896         convert plain identifier into defining identifier.
1897
1898 2008-08-01  Robert Dewar  <dewar@adacore.com>
1899
1900         * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve
1901         warnings
1902
1903         * lib-xref.adb: Add error defense.
1904
1905 2008-08-01  Bob Duff  <duff@adacore.com>
1906
1907         * ioexcept.ads, sequenio.ads, directio.ads: Correct comment.
1908
1909 2008-08-01  Gary Dismukes  <dismukes@adacore.com>
1910
1911         * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
1912         correct accessibility levels. In the "when others" case, retrieve the
1913         access level of the Etype of Prev rather than Prev_Orig, because the
1914         original exression has not always been analyzed.
1915
1916 2008-08-01  Robert Dewar  <dewar@adacore.com>
1917
1918         * prj-nmsc.adb: Minor reformatting
1919
1920         * sem_ch4.adb: Minor reformatting
1921         Minor code reorganization
1922
1923         * prj.ads: Minor reformatting
1924
1925         * s-os_lib.adb: Minor reformatting
1926
1927         * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper
1928         half encodings
1929
1930         * scans.ads: Minor reformatting.
1931
1932         * sem_prag.adb (Analyze_Pragma): Put entries in alpha order
1933         (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma
1934
1935         * sem_res.adb:
1936         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
1937
1938         * sem_ch12.adb: Minor comment reformatting
1939
1940         * par-ch3.adb (P_Type_Declaration): Properly handle missing type
1941         keyword
1942
1943 2008-08-01  Robert Dewar  <dewar@adacore.com>
1944
1945         * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not
1946         generating code
1947
1948 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
1949
1950         * checks.adb (Apply_Float_Conversion_Check): If the expression to be
1951         converted is a real literal and the target type has static bounds,
1952         perform the conversion exactly to prevent floating-point anomalies on
1953         some targets.
1954
1955 2008-08-01  Vincent Celier  <celier@adacore.com>
1956
1957         * prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>)
1958
1959         * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax
1960
1961         * prj.adb (Object_Exist_For): Use Object_Generated, not
1962         Objects_Generated that is removed and was never modified anyway.
1963
1964         * prj.ads:
1965         (Path_Syntax_Kind): New enumeration type
1966         (Language_Config): New component Path_Syntax, defaulted to Host.
1967         Components PIC_Option and Objects_Generated removed, as they are not
1968         used.
1969
1970         * snames.adb: New standard name Path_Syntax
1971
1972         * snames.ads: New standard name Path_Syntax
1973
1974 2008-08-01  Vincent Celier  <celier@adacore.com>
1975
1976         * mlib-utl.adb:
1977         (Adalib_Path): New variable to store the path of the adalib directory
1978         when procedure Specify_Adalib_Dir is called.
1979         (Lib_Directory): If Adalib_Path is not null, return its value
1980         (Specify_Adalib_Dir): New procedure
1981
1982         * mlib-utl.ads (Specify_Adalib_Dir): New procedure
1983
1984 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
1985
1986         * sem_prag.adb:
1987         (Check_Precondition_Postcondition): If not generating code, analyze the
1988         expression in a postcondition that appears in a subprogram body, so that
1989         it is properly decorated for ASIS use.
1990
1991 2008-08-01  Gary Dismukes  <dismukes@adacore.com>
1992
1993         * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
1994         Orig_Prev to Prev in the case where the actual is N_Function_Call or
1995         N_Identifier. This was interfering with other cases that are rewritten
1996         as N_Identifier, such as allocators, resulting in passing of the wrong
1997         accessibility level, and based on testing this code is apparently no
1998         longer needed at all.
1999
2000 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
2001
2002         * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
2003         procedure call whose prefix
2004         is a parameterless function call that returns an access_to_procedure.
2005
2006 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
2007
2008         * adaint.c (__gnat_tmp_name): Refine the generation of temporary names
2009         for RTX. Adding a suffix that is incremented at each iteration.
2010
2011 2008-08-01  Robert Dewar  <dewar@adacore.com>
2012
2013         * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
2014         Raise_Exception
2015
2016 2008-08-01  Jerome Lambourg  <lambourg@adacore.com>
2017
2018         * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
2019         paths, which are authorized by Windows but can lead to errors when used
2020         elsewhere.
2021
2022 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
2023
2024         * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
2025         a pending instantiation for the body of a subprogram that is to be
2026         inlined.
2027
2028         * sem_ch12.adb:
2029         (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.
2030
2031         * sem_prag.adb (Make_Inline): If the pragma applies to an instance,
2032         create a pending instance for its body, so that calls to the subprogram
2033         can be inlined by the back-end.
2034
2035 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
2036
2037         * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and
2038         rts-rtx-w32).
2039
2040 2008-08-01  Robert Dewar  <dewar@adacore.com>
2041
2042         * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer
2043
2044 2008-08-01  Doug Rupp  <rupp@adacore.com>
2045
2046         * gnat_rm.texi: Document new mechanism Short_Descriptor.
2047
2048         * types.ads (Mechanism_Type): Modify range for new Short_Descriptor
2049         mechanism values.
2050
2051         * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
2052         mechanism and Short_Descriptor mechanism values.
2053
2054         * snames.adb (preset_names): Add short_descriptor entry.
2055
2056         * snames.ads: Add Name_Short_Descriptor.
2057
2058         * types.h: Add new By_Short_Descriptor mechanism values.
2059
2060         * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
2061         mechanism and Short_Descriptor mechanism values.
2062
2063         * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
2064         values.
2065         (Descriptor_Codes): Modify range for new mechanism values.
2066
2067         * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
2068         mechanism values.
2069
2070         * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
2071         (gnat_to_gnu_param): Handle By_Short_Descriptor.
2072
2073         * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
2074         (build_vms_descriptor32): New prototype.
2075         (fill_vms_descriptor): Remove unneeded gnat_actual parameter.
2076
2077         * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
2078         argument in call fill_vms_descriptor.
2079
2080         * gcc-interface/utils.c (build_vms_descriptor32): Renamed from
2081         build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
2082         (build_vms_descriptor): Renamed from build_vms_descriptor64.
2083         (convert_vms_descriptor32): New function.
2084         (convert_vms_descriptor64): New function.
2085         (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
2086         descriptors.
2087
2088         * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
2089         no longer needed.
2090
2091 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
2092
2093         * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
2094         nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
2095         name.
2096
2097 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
2098
2099         * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
2100         current directory so only fully qualified names are allowed.
2101
2102 2008-08-01  Robert Dewar  <dewar@adacore.com>
2103
2104         * gnat_ugn.texi:
2105         Minor editing, remove uncomfortable use of semicolon
2106
2107         * s-ststop.adb: Add some ??? comments
2108
2109         * sem_ch10.adb: Minor reformatting
2110
2111         * snames.ads:
2112         Minor comment fixes, some pragmas were not properly
2113         categorized in the comments, documentation change only
2114
2115         * xref_lib.adb: Minor reformatting
2116
2117         * sinput.adb: Minor reformatting
2118
2119         * gnatchop.adb: Minor reformatting
2120
2121         * sem_util.ads: Minor reformatting.
2122
2123         * opt.ads: Minor documentation fix
2124
2125         * scng.adb: Minor reformatting
2126
2127         * prj-part.adb: Update comments
2128
2129 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
2130
2131         * exp_disp.adb (Expand_Interface_Conversion): If the target type is a
2132         tagged synchronized type, use corresponding record type.
2133
2134 2008-08-01  Doug Rupp  <rupp@adacore.com>
2135
2136         * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
2137         dummy transfer address for debugging.
2138
2139         * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.
2140
2141         * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING
2142
2143 2008-07-31  Eric Botcazou  <ebotcazou@adacore.com>
2144
2145         * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
2146         * gcc-interface/utils.c (create_field_decl): Avoid superfluous work.
2147
2148 2008-07-31  Pascal Obry  <obry@adacore.com>
2149
2150         * prj-nmsc.adb: Keep Object and Exec directory casing.
2151
2152 2008-07-31  Jose Ruiz  <ruiz@adacore.com>
2153
2154         * system-rtx-rtss.ads
2155         Change the default stack size. It is important to set the commit part.
2156
2157         * s-taprop-rtx.adb
2158         (Initialize): Get the clock resolution.
2159         (RT_Resolution): Return the clock resolution that is indicated by the
2160         system.
2161
2162         * s-parame-vxworks.adb
2163         Document that this body is used for RTX in RTSS (kernel) mode.
2164
2165         * gcc-interface/Makefile.in
2166         (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
2167         s-parame-vxworks.adb body in order to have reasonable stack sizes in
2168         RTX RTSS kernel mode. Virtual memory is not used in that case, so we
2169         cannot ask for too big values.
2170
2171 2008-07-31  Robert Dewar  <dewar@adacore.com>
2172
2173         * exp_aggr.adb: Minor reformatting
2174
2175         * makeutl.adb: Minor reformatting
2176
2177         * prj-env.adb: Minor reformatting
2178
2179 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2180
2181         * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
2182         tagged type is completed by a concurrent type.
2183
2184 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
2185
2186         * sem_aggr.adb:
2187         (Resolve_Record_Aggregate): Bypass error that a type without
2188         components must have a "null record" aggregate when compiling for Ada
2189         2005, since it's legal to give an aggregate of form (others => <>)
2190         for such a type.
2191
2192 2008-07-31  Javier Miranda  <miranda@adacore.com>
2193
2194         * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
2195         handle synchronized types. Required to handle well the object.operation
2196         notation applied to synchronized types.
2197
2198 2008-07-31  Quentin Ochem  <ochem@adacore.com>
2199
2200         * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
2201         anymore - just used internally.
2202         Added handling of very small tasks - when the theoretical size is
2203         already full at the point of the call.
2204         (Report_Result): Fixed result computation, Stack_Used_When_Filling does
2205         not need to be added to the result.
2206
2207 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2208
2209         * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
2210         corresponding spec is a primitive wrapper. Update comment.
2211
2212 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2213
2214         * bindgen.adb Comment reformatting. Update the list of run-time globals.
2215         (Gen_Adainit_Ada): Add the declaration, import and value set for
2216         configuration flag Canonical_Streams.
2217         (Gen_Adainit_C): Add the declaration and initial value of external
2218         symbol __gl_canonical_streams.
2219
2220         * init.c: Update the list of global values computed by the binder.
2221
2222         * opt.ads: Add flag Canonical_Streams.
2223
2224         * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
2225         semantically handled pragmas.
2226
2227         * sem_prag.adb: Add an entry into enumeration type Sig_Flags.
2228         (Analyze_Pragma): Add case for pragma Canonical_Streams.
2229
2230         * snames.adb: Add character value for name Canonical_Streams.
2231
2232         * snames.ads:
2233         Add Name_Canonical_Streams to the list of configuration pragmas.
2234         Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
2235
2236         * snames.h: Add a definition for Pragma_Canonical_Streams.
2237
2238         * s-ststop.adb:
2239         Add a flag and import to seize the value of external symbol
2240         __gl_canonical_streams. Update comment and initial value of constant
2241         Use_Block_IO.
2242
2243         * gnat_rm.texi: Add section of pragma Canonical_Streams.
2244
2245         * gnat_ugn.texi:
2246         Add pragma Canonical_Streams to the list of configuration pragmas.
2247
2248 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2249
2250         * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
2251         has the form A.B.C and B is a unit renaming, analyze its compilation
2252         unit and add a with_clause on A.b to the context.
2253
2254 2008-07-31  Vincent Celier  <celier@adacore.com>
2255
2256         * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
2257         return the empty string, instead of raising Constraint_Error.
2258
2259 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
2260
2261         * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node.
2262
2263         * checks.adb (Apply_Accessibility_Check): Insert the check on
2264         Insert_Node.
2265
2266         * exp_attr.adb:
2267         (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
2268         to new parameter Insert_Node on call to Apply_Accessibility_Check.
2269         Necessary to distinguish the insertion node because the dereferenced
2270         formal may come from a rename, but the check must be inserted in
2271         front of the attribute.
2272
2273         * exp_ch4.adb:
2274         (Expand_N_Allocator): Pass actual for new Insert_Node parameter on
2275         call to Apply_Accessibility_Check.
2276         (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
2277         on call to Apply_Accessibility_Check.
2278         Minor reformatting
2279
2280 2008-07-31  Javier Miranda  <miranda@adacore.com>
2281
2282         * sem_type.adb (Has_Compatible_Type): Complete support for synchronized
2283         types when the candidate type is a synchronized type.
2284
2285         * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
2286         types, and complete management of synchronized types adding missing
2287         code to handle formal that is a synchronized type.
2288
2289         * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
2290         are not available and cause the compiler to blowup. Found compiling
2291         test with switch -gnatc
2292
2293         * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
2294         Has_Correct_Formal_Mode plus code cleanup.
2295
2296 2008-07-31  Bob Duff  <duff@adacore.com>
2297
2298         * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
2299         recognized as two end-of-lines, but it should be just one.
2300
2301 2008-07-31  Thomas Quinot  <quinot@adacore.com>
2302
2303         * exp_ch9.adb: Minor reformatting
2304
2305         * tbuild.ads: Fix several occurrences of incorrectly referring to
2306         Name_Find as Find_Name.
2307
2308 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2309
2310         * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
2311         and the context is an object declaration with non-static bounds, treat
2312         the aggregate as non-static.
2313
2314 2008-07-31  Vincent Celier  <celier@adacore.com>
2315
2316         * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb:
2317         Move back spec of Parse_Single_Project to body, as it is not called
2318         outside of package Prj.Part.
2319         (Project_Data): Remove components Linker_Name, Linker_Path and
2320         Minimum_Linker_Options as they are no longer set.
2321         Remove function There_Are_Ada_Sources from package Prj and move code
2322         in the only place it was used, in Prj.Env.Set_Ada_Paths.
2323
2324 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
2325
2326         * mlib-utl.ads: Fix typo.
2327
2328 2008-07-31  Robert Dewar  <dewar@adacore.com>
2329
2330         * sem_ch12.adb: Minor reformatting
2331
2332 2008-07-31  Sergey Rybin  <rybin@adacore.com>
2333
2334         * gnat_ugn.texi: Change the description of the
2335         Overly_Nested_Control_Structures: now the rule always requires a
2336         positive parameter for '+R' option
2337
2338 2008-07-31  Thomas Quinot  <quinot@adacore.com>
2339
2340         * g-pehage.adb: Minor reformatting
2341
2342 2008-07-31  Pascal Obry  <obry@adacore.com>
2343
2344         * s-finimp.ads: Minor reformatting.
2345
2346 2008-07-31  Vincent Celier  <celier@adacore.com>
2347
2348         * s-regexp.ads: Minor comment fix
2349
2350 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
2351
2352         * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
2353         so that we can compile this file successfully with -gnatc.
2354
2355 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2356
2357         * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
2358         of the type when looking for stream subprograms for type String,
2359         Wide_String and Wide_Wide_String.
2360
2361         * s-ststop.adb: Change the initialization expression of constant
2362         Use_Block_IO.
2363
2364 2008-07-31  Geert Bosch  <bosch@adacore.com>
2365
2366         * arit64.c:
2367         New file implementing __gnat_mulv64 signed integer multiplication with
2368         overflow checking
2369
2370         * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
2371
2372         * gcc-interface/gigi.h:
2373         (standard_types): Add ADT_mulv64_decl
2374         (mulv64_decl): Define subprogram declaration for __gnat_mulv64
2375
2376         * gcc-interface/utils.c:
2377         (init_gigi_decls): Add initialization of mulv64_decl
2378
2379         * gcc-interface/trans.c:
2380         (build_unary_op_trapv): New function
2381         (build_binary_op_trapv): New function
2382         (gnat_to_gnu): Use the above functions instead of
2383         build_{unary,binary}_op
2384
2385         * gcc-interface/Makefile.in
2386         (LIBGNAT_SRCS): Add arit64.c
2387         (LIBGNAT_OBJS): Add arit64.o
2388
2389 2008-07-31  Vincent Celier  <celier@adacore.com>
2390
2391         * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
2392         Linker'Default_Switches are declared. Warn if they are declared.
2393
2394 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2395
2396         * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
2397         Insert_Actions to place the pointer declaration in the code, rather
2398         than Insert_Before_And_Analyze, so that insertions of temporaries are
2399         kept in the proper order when transient scopes are present.
2400
2401
2402 2008-07-31  Robert Dewar  <dewar@adacore.com>
2403
2404         * einfo.adb (Spec_PPC): Now defined for generic subprograms
2405
2406         * einfo.ads (Spec_PPC): Now defined for generic subprograms
2407
2408         * sem_prag.adb (Check_Precondition_Postcondition): Handle generic
2409         subprogram case
2410
2411 2008-07-31  Vincent Celier  <celier@adacore.com>
2412
2413         * s-os_lib.adb: Minor comment fix
2414
2415 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2416
2417         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
2418         transfer pre/postconditions from generic copy to original tree, so that
2419         they will appear in each instance.
2420         (Process_PPCs): Do not transform postconditions into a procedure in a
2421         generic context, to prevent double expansion of check pragmas.
2422
2423         * sem_attr.adb: In an instance, the prefix of the 'result attribute
2424         can be the renaming of the
2425         current instance, so check validity of the name accordingly.
2426
2427 2008-07-31  Robert Dewar  <dewar@adacore.com>
2428
2429         * mlib-utl.ads: Minor reformatting
2430
2431 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2432
2433         sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
2434         from context. This attribute must be usable in Ada95 mode.
2435         The attribute can appear in the body of a function marked
2436         Inline_Always, but in this case the postocondition is not enforced.
2437
2438         sem_prag.adb (Check_Precondition_Postcondition): within the expansion
2439         of an inlined call pre- and postconditions are legal
2440
2441 2008-07-31  Vincent Celier  <celier@adacore.com>
2442
2443         * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that
2444         were for gprmake only
2445
2446 2008-07-31  Robert Dewar  <dewar@adacore.com>
2447
2448         * gnat_ugn.texi: Update -gnatN documentation.
2449
2450         * gnat_rm.texi: Add note about pre/postcondition
2451         pragmas not checked in conjunction with front-end inlining.
2452
2453 2008-07-31  Robert Dewar  <dewar@adacore.com>
2454
2455         * g-pehage.adb, g-pehage.ads: Minor reformatting
2456
2457 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
2458
2459         * mlib-utl.ads, prj-makr.ads: Add comments.
2460
2461 2008-07-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2462
2463         * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS)
2464         [WINDOWS]: Add s-winext.o.
2465
2466 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
2467
2468         PR ada/36554
2469         * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
2470         * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
2471         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
2472         Set precision to 1 for subtype of BOOLEAN_TYPE.
2473         (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
2474         (make_type_from_size): Deal with BOOLEAN_TYPE.
2475         * gcc-interface/misc.c (gnat_print_type): Likewise.
2476         * gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
2477         Set boolean_type_node as its translation in the table, as well
2478         as boolean_false_node for False and boolean_true_node for True.
2479         * gcc-interface/utils.c (gnat_init_decl_processing): Create custom
2480         8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
2481         (create_param_decl): Deal with BOOLEAN_TYPE.
2482         (build_vms_descriptor): Likewise.
2483         (build_vms_descriptor64): Likewise.
2484         (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
2485
2486 2008-07-30  Robert Dewar  <dewar@adacore.com>
2487
2488         * exp_ch9.adb: Minor reformatting
2489
2490         * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised
2491         if no primitive operation is found.
2492
2493         * exp_util.adb: (Find_Prim_Op): Add comments for previous change
2494
2495         * sem_ch8.adb: Minor reformatting
2496
2497 2008-07-30  Laurent Pautet  <pautet@adacore.com>
2498
2499         * g-pehage.adb:
2500         Remove a limitation on the length of the words handled by the minimal
2501         perfect hash function generator.
2502
2503         * g-pehage.ads:
2504         Detail the use of subprograms Insert, Initialize, Compute and Finalize.
2505         Fix some typos.
2506
2507 2008-07-30  Robert Dewar  <dewar@adacore.com>
2508
2509         * gnatlink.adb: Minor reformatting
2510
2511 2008-07-30  Thomas Quinot  <quinot@adacore.com>
2512
2513         * rtsfind.adb (Check_RPC): Check version consistency even when not
2514         generating RCI stubs. Provide more detailed error message in case of
2515         mismatch.
2516
2517 2008-07-30  Ed Schonberg  <schonberg@adacore.com>
2518
2519         * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
2520         as a actual in an instance, check for a missing attribute to prevent
2521         program_error on an illegal program.
2522
2523         * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
2524         error if primitive is not found, so that exception can be handled
2525         elsewhere on illegal programs.
2526
2527 2008-07-30  Robert Dewar  <dewar@adacore.com>
2528
2529         * uintp.adb (UI_GCD): Fix potential overflow
2530
2531 2008-07-30  Hristian Kirtchev  <kirtchev@adacore.com>
2532
2533         * einfo.adb: Flag245 is now used.
2534         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
2535         check to include functions.
2536         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2537         (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
2538         include functions.
2539         (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
2540         to the list of displayed flags.
2541
2542         * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and
2543         Wrapped_Entity. These two flags are now present in functions.
2544         New flag Is_Private_Primitive.
2545         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2546
2547         * exp_ch9.adb:
2548         (Build_Wrapper_Bodies): New subprogram.
2549         (Build_Wrapper_Body): The spec and body have been moved to in
2550         Build_Wrapper_ Bodies. Code cleanup.
2551         (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
2552         Wrappers are now generated for primitives declared between the private
2553         and full view of a concurrent type that implements an interface.
2554         (Build_Wrapper_Specs): New subprogram.
2555         (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
2556         creation mechanism with a call to Build_Wrapper_Bodies.
2557         (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
2558         wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
2559         (Expand_N_Task_Body): Replace the wrapper body creation
2560         mechanism with a call to Build_Wrapper_Bodies.
2561         (Expand_N_Task_Type_Declaration): Replace the wrapper spec
2562         creation mechanism with a call to Build_Wrapper_Specs.
2563         (Is_Private_Primitive_Subprogram): New subprogram.
2564         (Overriding_Possible): Code cleanup.
2565         (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.
2566
2567         * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.
2568
2569         * sem_ch3.adb: Add with and use clause for Exp_Ch9.
2570         (Process_Full_View): Build wrapper specs for all primitives
2571         that belong to a private view completed by a concurrent type
2572         implementing an interface.
2573
2574         * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
2575         is a primitive of a
2576         concurrent type with a private view that implements an interface, try to
2577         find the proper spec.
2578         (Analyze_Subprogram_Declaration): Mark a subprogram as a private
2579         primitive if the type of its first parameter is a non-generic tagged
2580         private type.
2581         (Analyze_Subprogram_Specification): Code reformatting.
2582         (Disambiguate_Spec): New routine.
2583         (Find_Corresponding_Spec): Add a flag to controll the output of errors.
2584         (Is_Private_Concurrent_Primitive): New routine.
2585
2586         * sem_ch6.ads:
2587         (Find_Corresponding_Spec): Add a formal to control the output of errors.
2588
2589 2008-07-30  Doug Rupp  <rupp@adacore.com>
2590
2591         * gigi.h (build_vms_descriptor64): New function prototype.
2592         (fill_vms_descriptor): Modified function prototype.
2593
2594         * utils.c (build_vms_descriptor64): New function.
2595
2596         * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
2597
2598         * trans.c (call_to_gnu): Call fill_vms_descriptor with new third
2599         argument.
2600
2601         * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
2602         64bit and 32bit descriptor and save the 64bit version as an alternate
2603         TREE_TYPE in the parameter.
2604         (make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
2605         thin pointer.
2606
2607         * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
2608
2609 2008-07-30  Robert Dewar  <dewar@adacore.com>
2610
2611         * make.adb: Minor reformatting
2612
2613         * mlib-utl.adb: Minor reformatting
2614
2615         * osint.ads: Minor reformatting
2616
2617 2008-07-30  Jose Ruiz  <ruiz@adacore.com>
2618
2619         * adaint.c
2620         (__gnat_file_exists): Do not use __gnat_stat for RTX.
2621         (__main for RTX in RTSS mode): Create this dummy procedure symbol to
2622         avoid the use of this symbol from libgcc.a in RTX kernel mode.
2623
2624         * cio.c
2625         (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
2626         the function RtPrintf for console output.
2627
2628         * argv.c Do not use the environ variable for RTX.
2629
2630         * gnatlink.adb (gnatlink): The part that handles the --RTS option has
2631         been moved before the call to Osint.Add_Default_Search_Dirs in order
2632         to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
2633         from the appropriate run time.
2634
2635         * targparm.ads
2636         (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
2637         target is a RTSS module for RTX.
2638
2639         * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
2640         RTX_RTSS_Kernel_Module
2641         (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.
2642
2643         * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
2644         exception handling mechanism for Windows and RTX in Win32 mode, but
2645         not for RTX in kernel mode (RTSS).
2646         (LIBGNAT_SRCS): Remove ada.h
2647
2648 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
2649
2650         * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and
2651         T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2652         (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
2653         * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS,
2654         X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS,
2655         ALL_ADA_CFLAGS): Remove.
2656         (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS,
2657         replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2658         (GCC_CFLAGS): Remove X_CFLAGS.
2659         (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS.
2660         (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS.
2661         (ADA_CFLAGS): Substitute.
2662
2663 2008-07-30  Laurent Guerby  <laurent@guerby.net>
2664
2665         PR ada/5911
2666         * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables.
2667         Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
2668         Replace stamp-gnatlib* by stamp-gnatlib*-rts.
2669         * gcc-interface/Make-lang.in: Replace stamp-gnatlib2
2670         by stamp-gnatlib2-rts.
2671
2672 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2673
2674         PR documentation/15479
2675         * gnat-style.texi: Remove AdaCore copyright statement and GPL
2676         statement for GNAT.  Add @copying stanza, use it.  Update to
2677         GFDL 1.2.  Do not list GFDL as Invariant Section, do not list
2678         title as Front-Cover Text.
2679         * gnat_rm.texi: Likewise.
2680         * gnat_ugn.texi: Likewise.
2681
2682 2008-07-29  Jan Hubicka  <jh@suse.cz>
2683
2684         * trans.c (process_inlined_subprograms): Remove tree_really_inline
2685         check.
2686
2687 2008-07-29  Arnaud Charlet  <charlet@adacore.com>
2688
2689         * gcc-interface: New directory.
2690
2691         * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
2692         utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
2693         config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
2694         to gcc-interface subdirectory.
2695
2696 2008-07-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2697
2698         * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.
2699
2700 2008-07-28  Jan Hubicka  <jh@suse.cz>
2701
2702         * misc.c (gnat_post_options): Do not set flag_no_inline.
2703
2704 2008-07-28  Richard Guenther  <rguenther@suse.de>
2705
2706         Merge from gimple-tuples-branch.
2707
2708         2008-07-22  Olivier Hainque  <hainque@adacore.com>
2709
2710         * gigi.h (end_subprog_body): New ELAB_P argument, saying if
2711         this is called for an elab proc to be discarded if empty.
2712         * utils.c (end_subprog_body): Honor ELAB_P.
2713         (build_function_stub): Adjust call to end_subprog_body.
2714         * trans.c (Subprogram_Body_to_gnu): Likewise.
2715         (gigi): Reorganize processing of elab procs to prevent
2716         gimplifying twice, using the new end_subprog_body argument.
2717
2718         2008-07-19  Richard Guenther  <rguenther@suse.de>
2719
2720         * Make-lang.in (trans.o): Add tree-iterator.h dependency.
2721         (utils.o): Likewise.
2722         * trans.c: Include tree-iterator.h.
2723         (gnat_gimplify_expr): Adjust prototype.  Fix typo.
2724         (gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
2725         (set_expr_location_from_node): Likewise.
2726         (gigi): Tuplify.
2727         * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
2728         of GENERIC_NEXT.
2729         * utils.c: Include tree-iterator.h.
2730         * gigi.h (gnat_gimplify_expr): Adjust prototype.
2731
2732         2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
2733
2734         * trans.c: Include gimple.h instead of tree-gimple.h.
2735         * utils.c: Same.
2736
2737         2008-07-14  Aldy Hernandez  <aldyh@redhat.com>
2738
2739         * trans.c (gnat_gimplify_expr): Use gimplify_assign.
2740
2741 2008-07-25  Jan Hubicka  <jh@suse.cz>
2742
2743         * utils.c (end_subprog_body): Remove inline trees check.
2744         * misc.c (gnat_post_options): Do not set flag_inline_trees.
2745
2746 2008-07-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2747
2748         * raise-gcc.c: Move tsystem.h before tm.h.
2749
2750 2008-07-20  Arnaud Charlet  <charlet@adacore.com>
2751
2752         * gnathtml.pl: New file.
2753
2754 2008-07-19  Olivier Hainque  <hainque@adacore.com>
2755
2756         * targtyps.c (get_target_default_allocator_alignment): Use
2757         MALLOC_ABI_ALIGNMENT.
2758
2759 2008-07-17  Olivier Hainque  <hainque@adacore.com>
2760
2761         * adaint.c (__MINGW32__ section): Include ctype.h and define
2762         a fallback ISALPHA if IN_RTS.
2763         (__gnat_is_absolute_path): Use ISALPHA instead of isalpha.
2764
2765 2008-07-17  Olivier Hainque  <hainque@adacore.com>
2766
2767         * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
2768         argument, to apply to references in addition to definitions.  Prevent
2769         setting TREE_STATIC on externals.
2770         (gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
2771
2772 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2773
2774         PR documentation/15479
2775         * gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
2776         Replace backets around optional parameters with @ovar
2777         where possible, use @r{[}, @r{]} otherwise.
2778         Replace some @r, @i, and @emph with @var where appropriate.
2779
2780 2008-07-02  Eric Botcazou  <ebotcazou@adacore.com>
2781
2782         * decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.
2783
2784 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2785
2786         * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix
2787         -Wc++-compat warnings.
2788         * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
2789         __gnat_locate_exec_on_path): Likewise.
2790         * decl.c (annotate_value): Likewise.
2791         * misc.c (gnat_handle_option): Likewise.
2792         * trans.c (gnat_to_gnu, extract_encoding, decode_name,
2793         post_error_ne_tree): Likewise.
2794
2795 2008-06-27  Eric Botcazou  <ebotcazou@adacore.com>
2796
2797         * utils.c (convert) <CONSTRUCTOR>: When converting it to a packable
2798         version of its type, attempt to first convert its elements.
2799
2800 2008-06-26  Chris Proctor  <chrisp_42@bigpond.com>
2801
2802         * Makefile.in: Fix *86 kfreebsd target specific pairs.
2803
2804 2008-06-25  Samuel Tardieu  <sam@rfc1149.net>
2805
2806         * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
2807
2808 2008-06-24  Eric Botcazou  <ebotcazou@adacore.com>
2809
2810         * utils2.c (known_alignment): Derive the alignment from pointed-to
2811         types only if it is otherwise unknown.
2812         <INTEGER_CST>: Tidy.
2813         <MULT_EXPR>: Likewise.
2814         <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
2815         that of the base.
2816
2817 2008-06-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2818
2819         PR ada/36573
2820         * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
2821
2822 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2823
2824         * gnat_rm.texi (Implementation Defined Characteristics)
2825         (Standard Library Routines): Use @smallexample for indented
2826         text.  Drop Indentation outside examples.
2827         * gnat_ugn.texi: Likewise.
2828
2829 2008-06-13  Olivier Hainque  <hainque@adacore.com>
2830
2831         * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
2832         if undefined.
2833         (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
2834         realignment with force_align_arg_pointer attribute on foreign
2835         convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
2836
2837 2008-06-13  Olivier Hainque  <hainque@adacore.com>
2838
2839         * utils.c (rest_of_record_type_compilation): When computing
2840         encodings for the components of a variable size type, early
2841         strip conversions on the current position expression to make
2842         sure it's shape is visible.  Use remove_conversions for this
2843         purpose.
2844
2845 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
2846
2847         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
2848         constrained subtype of a discriminated type, discard the fields that
2849         are beyond its limits according to its size.
2850
2851 2008-06-10  Olivier Hainque  <hainque@adacore.com>
2852
2853         * utils.c (create_subprog_decl): If this is for the 'main' entry
2854         point according to the asm name, redirect main_identifier_node.
2855
2856 2008-06-09  Eric Botcazou  <ebotcazou@adacore.com>
2857
2858         * decl.c (components_to_record): Adjust the packedness for the
2859         qualified union as well.
2860
2861 2008-06-09  Arnaud Charlet  <charlet@adacore.com>
2862
2863         * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
2864         checks non fatal.
2865
2866 2008-06-07  Samuel Tardieu  <sam@rfc1149.net>
2867
2868         * sem_res.adb (Large_Storage_Type): A type is large if it
2869         requires as many bits as Positive to store its values and its
2870         bounds are known at compile time.
2871         * sem_ch13.adb (Minimum_Size): Note that this function returns
2872         0 if the size is not known at compile time.
2873
2874 2008-06-06  Nicolas Setton  <setton@adacore.com>
2875             Olivier Hainque  <hainque@adacore.com>
2876
2877         * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
2878         attribute, parallel descriptive type attached to another
2879         type for debug info generation purposes.
2880         * utils.c (add_parallel_type): New function, register
2881         parallel type to be attached to a type.
2882         (get_parallel_type): New function, fetch a registered
2883         parallel type, if any.
2884         (rest_of_record_type_compilation): Register the parallel
2885         type we make for variable size records.
2886         * gigi.h (add_parallel_type, get_parallel_type): Declare.
2887         * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
2888         parallel debug types we make.
2889         * trans.c (extract_encoding, decode_name): New functions.
2890         (gigi): If the DWARF attribute extensions are available, setup
2891         to use them.
2892         * lang.opt: Register language specific processing request
2893         for -gdwarf+.
2894         * misc.c (gnat_dwarf_extensions): New global variable. How much
2895         do we want of our DWARF extensions. 0 by default.
2896         (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
2897         (gnat_post_options): Map gnat_dwarf_extensions to the
2898         commonuse_gnu_debug_info_extensions for later processing.
2899
2900 2008-06-04  Samuel Tardieu  <sam@rfc1149.net>
2901
2902         * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
2903
2904 2008-06-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2905
2906         * Makefile.in (common_tools): Fix typos in $(exeext) extension.
2907         * gnat_ugn.texi (Style Checking)
2908         (Adding the Results of Compiler Checks to gnatcheck Output)
2909         (Example of Binder Output File): Fix typos.
2910         * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
2911         exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
2912         s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
2913         s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
2914         sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
2915         sinfo.ads, utils.c: Fix typos in comments.
2916         * sem_ch6.adb, vms_data.ads: Fix typos in strings.
2917
2918 2008-05-29  Thomas Quinot  <quinot@adacore.com>
2919
2920         * sem_eval.adb: Minor reformatting
2921
2922 2008-05-29  Ed Schonberg  <schonberg@adacore.com>
2923
2924         * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
2925         is abstract, do not apply abstractness check on subprogram if this is
2926         a renaming declaration.
2927
2928 2008-05-29  Arnaud Charlet  <charlet@adacore.com>
2929
2930         PR ada/864
2931         * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
2932         allow recognition of program suffix in addition to prefix.
2933
2934         * gnatchop.adb (Locate_Executable): Add support for prefix.
2935
2936         * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
2937         mlib-utl.adb: Adjust calls to Program_Name.
2938
2939 2008-05-29  Robert Dewar  <dewar@adacore.com>
2940
2941         * sem_ch3.adb: Minor reformatting
2942         * sem_prag.adb: Minor reformatting
2943         * sem_res.adb: Minor reformatting
2944         * sinput-p.ads: Minor reformatting
2945
2946 2008-05-29  Javier Miranda  <miranda@adacore.com>
2947
2948         * sem_util.adb:
2949         (Abstract_Interface_List): Add missing support for full type-declaration
2950         associated with synchronized types.
2951
2952 2008-05-29  Robert Dewar  <dewar@adacore.com>
2953
2954         * sem_eval.adb (Is_Same_Value): Take care of several more cases
2955
2956 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
2957
2958         * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
2959         access type, wrap the expression in a conversion to force an
2960         accessibility check.
2961
2962         * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
2963         accessibility checks even when expansion is disabled in order to
2964         generate messages in the presence of previous errors or in
2965         semantics-only mode.
2966
2967 2008-05-28  Eric Botcazou  <ebotcazou@adacore.com>
2968
2969         * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
2970         * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
2971
2972 2008-05-28  Vincent Celier  <celier@adacore.com>
2973
2974         PR ada/34446
2975         * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
2976         preprocessing expressions
2977
2978 2008-05-28  Vincent Celier  <celier@adacore.com>
2979
2980         * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
2981         for preprocessing
2982
2983         * sinput-p.ads: Minor comment update and reformatting
2984
2985 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
2986
2987         * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
2988         type has a deeper level than any master only when it is the type of an
2989         access parameter.
2990
2991 2008-05-28  Javier Miranda  <miranda@adacore.com>
2992
2993         * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
2994
2995 2008-05-28  Javier Miranda  <miranda@adacore.com>
2996
2997         * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
2998         * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
2999         * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
3000         Add code that was previously located in
3001         Find_Overridden_Synchronized_Primitive because it is only used here.
3002
3003 2008-05-28  Sergey Rybin  <rybin@adacore.com>
3004
3005         * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
3006         Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
3007
3008 2008-05-28  Robert Dewar  <dewar@adacore.com>
3009
3010         * restrict.ads:
3011         Add missing restrictions, and properly label all GNAT defined ones
3012
3013         * rtsfind.ads:
3014         Add entry for Ada_Real_Time.Timing_Events.Timing_Event
3015         Add entry for Ada.Task_Termination.Set_Specific_Handler
3016         Add entry for Ada.Task_Termination.Specific_Handler
3017
3018         * s-rident.ads:
3019         Add missing restrictions and properly mark all gnat defined ones
3020
3021         * sem_ch3.adb:
3022         (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
3023
3024         * sem_res.adb:
3025         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
3026
3027         * gnat_rm.texi: Add missing restrictions, and properly label all
3028         GNAT defined ones
3029
3030 2008-05-28  Robert Dewar  <dewar@adacore.com>
3031
3032         * restrict.adb:
3033         (Check_Restriction): violation of restriction No_Finalization is
3034         treated as a serious error to stop expansion
3035
3036 2008-05-28  Robert Dewar  <dewar@adacore.com>
3037
3038         * exp_util.adb: Minor reformatting
3039         * exp_util.ads: Minor reformatting.
3040
3041 2008-05-28  Arnaud Charlet  <charlet@adacore.com>
3042
3043         * Make-lang.in: Remove gprmake.
3044
3045         * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
3046
3047 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
3048
3049         * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
3050         improper progenitor names, and avoid cascaded errors.
3051
3052 2008-05-28  Robert Dewar  <dewar@adacore.com>
3053
3054         * gnat_rm.texi: Add note on Old giving warning when applied to constant
3055
3056         * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
3057         a constant
3058
3059 2008-05-28  Robert Dewar  <dewar@adacore.com>
3060
3061         * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
3062         size
3063
3064 2008-05-28  Robert Dewar  <dewar@adacore.com>
3065
3066         * exp_ch5.adb:
3067         (Expand_Simple_Function_Return): Copy unaligned result into temporary
3068
3069 2008-05-28  Javier Miranda  <miranda@adacore.com>
3070
3071         * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
3072         for user-defined predefined primitives.
3073
3074         * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
3075         (Find_Overridden_Synchronized_Primitive): Ditto.
3076
3077         * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
3078
3079 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
3080
3081         * a-ststio.adb, s-direio.adb:
3082         Further code clean up of previous change.
3083         Update comments.
3084
3085 2008-05-27  Vincent Celier  <celier@adacore.com>
3086
3087         * prj-nmsc.adb: Minor reformatting
3088
3089 2008-05-27  Bob Duff  <duff@adacore.com>
3090
3091         * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
3092         untagged private type with a tagged full type, where the full type has
3093         a self reference, create the corresponding class-wide type early, in
3094         case the self reference is "access T'Class".
3095
3096 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3097
3098         * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
3099         tasks and context is an object declaration. create master entity before
3100         expansion.
3101
3102 2008-05-27  Robert Dewar  <dewar@adacore.com>
3103
3104         * mlib-prj.adb: Minor reformatting
3105
3106         * prj-part.adb: Minor reformatting
3107
3108         * prj.ads: Minor reformatting
3109
3110         * exp_ch3.adb: Minor reformatting.
3111
3112         * sem_ch3.ads: Minor reformatting
3113
3114         * sem_eval.adb: Minor reformatting
3115
3116 2008-05-27  Vincent Celier  <celier@adacore.com>
3117
3118         * gnatcmd.adb:
3119         <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
3120
3121 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3122
3123         * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
3124         tasks, create an activation chain now, before the expansion into
3125         assignments and build-in-place calls that require the presence of an
3126         activation chain.
3127         (Backend_Processing_Possible): If the component type is inherently
3128         limited, the aggregate must be expanded into individual built-in-place
3129         assignments.
3130
3131         * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
3132         determine whether an allocation extra parameter must be built, to
3133         handle case of a private type whose full type is a discriminated type
3134         with defaults.
3135
3136 2008-05-27  Bob Duff  <duff@adacore.com>
3137
3138         * gnat_rm.texi:
3139         Document the new behavior regarding trampolines.
3140
3141 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
3142
3143         * a-direio.adb, a-sequio.adb: Replace address clause by
3144         unrestricted_access, simpler and compatible with .NET.
3145
3146 2008-05-27  Vincent Celier  <celier@adacore.com>
3147
3148         * prj-part.adb:
3149         (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
3150         a project file, so that symbolic links are not resolved.
3151
3152 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
3153
3154         * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
3155         Replace heavy address clause by 'Unrestricted_Access, cleaner and more
3156         portable across GNAT targets, since this kind of address clause is not
3157         supported by VM back-ends (.NET/JGNAT).
3158
3159 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
3160
3161         * bindgen.adb: Update comments.
3162
3163         * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
3164
3165 2008-05-27  Vincent Celier  <celier@adacore.com>
3166
3167         * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
3168         prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
3169         mlib-tgt.adb, prj-env.adb, prj-env.ads:
3170         (Path_Information): New record type
3171         Use component of type Path_Information when there are two paths, one in
3172         canonical format and one in display format.
3173         Update the project manager to these new components.
3174
3175 2008-05-27  Robert Dewar  <dewar@adacore.com>
3176
3177         * makeutl.adb: Minor reformatting
3178         * prj-nmsc.adb: Minor reformatting
3179         * s-stausa.adb: Minor reformatting
3180         * s-stausa.ads: Minor reformatting
3181         * sem_ch6.adb: Minor reformatting
3182
3183 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3184
3185         * sem_res.adb: Minor comment fixes
3186
3187 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3188
3189         * makeutl.adb: Minor code reorganization
3190
3191         * exp_aggr.adb: Add ??? comment
3192         Fix typo
3193
3194         * exp_ch6.adb: Minor reformatting
3195
3196 2008-05-27  Quentin Ochem  <ochem@adacore.com>
3197
3198         * s-stausa.adb (Initialize): Updated result initialization, and
3199         initialization of environment stack.
3200         (Fill_Stack): Improved computation of the pattern zone, taking into
3201         account already filled at the calling point.
3202         (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
3203         Measure and Overflow_Guard.
3204         (Report_Result): Fixed computation of the result using new fields of
3205         Stack_Analyzer.
3206
3207         * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
3208         params by more explicit Stack_Size / Max_Pattern_Size params.
3209         (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
3210         Added Stack_Used_When_Filling field.
3211         (Task_Result): Replaced Measure / Overflow_Guard by more explicit
3212         Min_Measure and Max_Measure fields.
3213
3214         * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
3215
3216 2008-05-27  Vincent Celier  <celier@adacore.com>
3217
3218         * prj-nmsc.adb:
3219         (Check_File): Make sure that a unit that replaces the same unit in a
3220          project being extended is properly processed.
3221
3222 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3223
3224         * sem_ch3.adb:
3225         (Get_Discr_Value): Remove obsolete code that failed to find the value
3226         of a discriminant for an inherited task component appearing in a type
3227         extension.
3228
3229 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3230
3231         (System.File_IO.{Close, Delete, Reset}):
3232         Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
3233
3234         (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
3235         Pass File parameter by reference.
3236
3237 2008-05-27  Vincent Celier  <celier@adacore.com>
3238
3239         * prj-nmsc.adb:
3240         (Process_Sources_In_Multi_Language_Mode): Check that there are not two
3241         sources of the same project that have the same object file name.
3242         (Find_Explicit_Sources): Always remove a source exception that was not
3243         found.
3244
3245 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3246
3247         * sem_ch3.adb: Minor reformatting
3248
3249 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3250
3251         * sem_ch6.adb:
3252         (Is_Interface_Conformant): Handle properly a primitive operation that
3253         overrides an interface function with a controlling access result.
3254         (Type_Conformance): If Skip_Controlling_Formals is true, when matching
3255         inherited and overriding operations, omit as well the conformance check
3256         on result types, to prevent spurious errors.
3257
3258 2008-05-27  Vincent Celier  <celier@adacore.com>
3259
3260         * makeutl.ads, makeutl.adb:
3261         (Set_Location): New procedure
3262         (Get_Location): New function
3263         (Update_Main): New procedure
3264
3265 2008-05-27  Vincent Celier  <celier@adacore.com>
3266
3267         * prj-nmsc.adb:
3268         (Check_Library): Allow standard project to be extended as a static
3269         library project.
3270         (Get_Mains): Do not inherit attribute Main in an extending library
3271         project.
3272
3273 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
3274
3275         * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
3276         * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
3277         * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
3278         * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
3279         * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
3280         * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
3281         * system-mingw.ads (Always_Compatible_Rep): Likewise.
3282         * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
3283         * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
3284         * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
3285
3286 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3287
3288         * sem_attr.adb: add guard to previous patch.
3289
3290 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3291
3292         * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
3293         a synchronized tagged type, do not attempt to build dispatch table for
3294         full view. The table is built for the corresponding record type, which
3295         has its own declaration.
3296
3297 2008-05-27  Gary Dismukes  <dismukes@adacore.com>
3298
3299         * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
3300         to the known type entity E, rather than setting it to Any_Type. Fixes
3301         possible blowup in function Base_Init_Proc, as called from Freeze_Entity
3302         for objects whose type had an illegal constraint.
3303
3304 2008-05-27  Vincent Celier  <celier@adacore.com>
3305
3306         * gnat_ugn.texi:
3307         Add succinct documentation for attribute Excluded_Source_List_File
3308
3309 2008-05-27  Vincent Celier  <celier@adacore.com>
3310
3311         * prj-attr.adb: Add new project level attribute Map_File_Option
3312
3313         * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
3314
3315         * prj.ads: Minor reformatting and comment update
3316         (Project_Configuration): New component Map_File_Option
3317
3318         * snames.adb: New standard name Map_File_Option
3319
3320         * snames.ads: New standard name Map_File_Option
3321
3322 2008-05-27  Vincent Celier  <celier@adacore.com>
3323
3324         * xsnames.adb: Remove unused variable Oname
3325
3326 2008-05-27  Doug Rupp  <rupp@adacore.com>
3327
3328         * exp_ch6.adb:
3329         (Expand_N_Function_Call): Fix comments. Minor reformatting.
3330
3331         * exp_vfpt.ads:
3332         (Expand_Vax_Foreign_Return): Fix comments.
3333
3334 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3335
3336         * exp_dist.adb: Minor reformating
3337
3338 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
3339
3340         * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
3341         No_Default_Initialization, which is now delayed until the freeze point
3342         of the object. Add a comment about deferral of the check.
3343
3344         * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
3345         on objects is moved here.
3346
3347 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3348
3349         * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
3350         (Compare_Array_S16): Adjust for above change.
3351         * s-casi32.adb (Uword): Likewise.
3352         (Compare_Array_S32): Likewise.
3353         * s-casi64.adb (Uword): Likewise.
3354         (Compare_Array_S64): Likewise.
3355         * s-caun16.adb (Uhalf): Likewise.
3356         (Compare_Array_U16): Likewise.
3357         * s-caun32.adb (Uword): Likewise.
3358         (Compare_Array_U32): Likewise.
3359         * s-caun64.adb (Uword): Likewise.
3360         (Compare_Array_U64): Likewise.
3361
3362 2008-05-26  Robert Dewar  <dewar@adacore.com>
3363
3364         * exp_ch6.adb: Add ??? comment for previous change
3365
3366         * exp_vfpt.adb: Minor reformatting
3367
3368         * exp_vfpt.ads: Add ??? comment for last change
3369
3370         * sem_attr.adb: Add some ??? comments for previous change
3371
3372         * s-vaflop.ads: Add comments for previous change
3373
3374 2008-05-26  Doug Rupp  <rupp@adacore.com>
3375
3376         * s-vaflop-vms-alpha.adb:
3377         Remove System.IO use clause, to prevent spurious ambiguities when
3378         package is access through rtsfind.
3379
3380 2008-05-26  Sergey Rybin  <rybin@adacore.com>
3381
3382         * tree_io.ads (ASIS_Version_Number): Update because of the changes
3383         made in front-end
3384
3385 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3386
3387         * sem_attr.adb:
3388         (Resolve_Attribute, case 'address):  S (A .. B)' address can be safely
3389         converted to S (A)'address only if A .. B is known to be a non-null
3390         range.
3391
3392 2008-05-26  Doug Rupp  <rupp@adacore.com>
3393
3394         * s-vaflop.adb:
3395         (Return_D, Return_F, Return_G): New functions.
3396
3397         * s-vaflop.ads:
3398         (Return_D, Return_F, Return_G): New functions.
3399
3400         * exp_vfpt.adb:
3401         (Expand_Vax_Foreign_Return): New procedure
3402
3403         * exp_vfpt.ads:
3404         (Expand_Vax_Foreign_Return): New procedure
3405
3406         * rtsfind.ads:
3407         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
3408         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
3409
3410         * exp_ch6.adb:
3411         Import Exp_Vfpt
3412         (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
3413
3414         * s-vaflop-vms-alpha.adb:
3415         (Return_D, Return_F, Return_G): New functions.
3416
3417 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
3418
3419         * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
3420         init proc entity when there is actual default initialization associated
3421         with the component type, to avoid spurious errors on objects of scalar
3422         array types that are marked Is_Public when No_Default_Initialization
3423         applies.
3424
3425 2008-05-26  Thomas Quinot  <quinot@adacore.com>
3426
3427         * rtsfind.ads, rtsfind.adb:
3428         (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
3429         (Check_RPC): Support per-PCS-kind API versioning.
3430
3431         exp_dist.ads, exp_dist.adb:
3432         (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
3433         (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
3434          library function Get_RACW.
3435         (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
3436         library function Get_Reference.
3437         (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
3438         through an intermediate Any.
3439         (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
3440         going through an intermediate Any.
3441
3442         * sem_dist.adb: Minor reformatting.
3443
3444 2008-05-26  Javier Miranda  <miranda@adacore.com>
3445
3446         * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
3447         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3448         (Is_Internal): Adding documentation on internal entities that have
3449         attribute Interface_Alias (old attribute Abstract_Interface_Alias)
3450
3451         * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
3452         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3453         Added assertion to force entities with this attribute to have
3454         attribute Is_Internal set to True.
3455         (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
3456
3457         * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
3458         renamed as Derive_Progenitor_Subprograms. In addition, its code is
3459         a new implementation.
3460         (Add_Interface_Tag_Components): Remove special management of
3461         synchronized interfaces.
3462         (Analyze_Interface_Declaration): Minor reformating
3463         (Build_Derived_Record_Type): Minor reformating
3464         (Check_Abstract_Overriding): Avoid reporting error in case of abstract
3465         predefined primitive inherited from interface type because the body of
3466         internally generated predefined primitives of tagged types are generated
3467         later by Freeze_Type
3468         (Derive_Subprogram): Avoid generating an internal name if the parent
3469         subprogram overrides an interface primitive.
3470         (Derive_Subprograms): New implementation that keeps separate the
3471         management of tagged types not implementing interfaces, from tagged
3472         types that implement interfaces.
3473         (Is_Progenitor): New implementation.
3474         (Process_Full_View): Add documentation
3475         (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
3476         by call to Derive_Progenitor_Subprograms.
3477
3478         * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
3479         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3480         Skip_Controlling_Formals.
3481
3482         * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
3483         (Check_Conventions): New implementation. Remove local subprogram
3484         Skip_Check. Remove formal Search_From of routine Check_Convention.
3485         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3486         Skip_Controlling_Formals.
3487         (New_Overloaded_Entity): Enable addition of predefined dispatching
3488         operations.
3489
3490         * sem_disp.ads
3491         (Find_Primitive_Covering_Interface): New subprogram.
3492
3493         * sem_disp.adb (Check_Dispatching_Operation): Disable registering
3494         the task body procedure as a primitive of the corresponding tagged
3495         type.
3496         (Check_Operation_From_Private_Type): Avoid adding twice an entity
3497         to the list of primitives.
3498         (Find_Primitive_Covering_Interface): New subprogram.
3499         (Override_Dispatching_Operation): Add documentation.
3500
3501         * sem_type.adb (Covers): Minor reformatings
3502
3503         * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
3504         Collect_Interfaces.
3505         Rename formal.
3506         (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
3507         (Implements_Interface): New subprogram.
3508         (Is_Parent): Removed.
3509         (Primitive_Names_Match): New subprogram.
3510         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3511         (Ultimate_Alias): New subprogram.
3512
3513         * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
3514         Collect_Interfaces.
3515         Remove special management for synchronized types. Rename formal. Remove
3516         internal subprograms Interface_Present_In_Parent and Add_Interface.
3517         (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
3518         on non-record types by code to return false in such case.
3519         (Implements_Interface): New subprogram.
3520         (Is_Parent): Removed. No special management is now required for
3521         synchronized types covering interfaces.
3522         (Primitive_Names_Match): New subprogram.
3523         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3524         (Ultimate_Alias): New subprogram.
3525
3526         * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
3527         Add internal entities associated with secondary dispatch tables to
3528         the list of tagged type primitives that are not interfaces.
3529         (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
3530         (Make_Predefined_Primitive_Specs): Code reorganization to improve
3531         the management of predefined equality operator. In addition, if
3532         the type has an equality function corresponding with a primitive
3533         defined in an interface type, the inherited equality is abstract
3534         as well, and no body can be created for it.
3535
3536         * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
3537         exp_util to exp_disp.
3538         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
3539         an entity corresponds with one of the predefined primitives required
3540         to implement interfaces.
3541         Update copyright notice.
3542
3543         * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
3544         final check on abstract subprograms all the primitives associated with
3545         interface primitives because they must be visible in the public and
3546         private part.
3547         (Write_DT): Use Find_Dispatching_Type to locate the name of the
3548         interface type. This allows the use of this routine, for debugging
3549         purposes, when the tagged type is not fully decorated.
3550         (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
3551         Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
3552         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
3553         entity corresponds with one of the predefined primitives required to
3554         implement interfaces.
3555
3556         * exp_util.adb (Find_Interface_ADT): New implementation
3557         (Find_Interface): Removed.
3558
3559         * sprint.adb (Sprint_Node_Actual): Generate missing output for the
3560         list of interfaces associated with nodes
3561         N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
3562
3563 2008-05-26  Thomas Quinot  <quinot@adacore.com>
3564
3565         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
3566         condition for assignment to temporary.
3567
3568 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3569
3570         * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
3571         checks on the upper bound if the index type is a modular type, to
3572         prevent wrap-around computations when size is close to upper bound of
3573         type.
3574
3575 2008-05-26  Robert Dewar  <dewar@adacore.com>
3576
3577         * sem_ch3.adb: Minor reformatting
3578
3579 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3580
3581         * sem_ch12.adb (Remove_Parent): Use specification of instance
3582         to retrieve generic parent,
3583         to handle properly the case where the instance is a child unit.
3584         Add guard to handle properly wrapper packages.
3585         Minor reformatting
3586
3587 2008-05-26  Thomas Quinot  <quinot@adacore.com>
3588
3589         * sinfo.ads: Minor reformatting
3590
3591 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
3592
3593         * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
3594         Generate a tag check when the result subtype of a function, defined by
3595         an access definition, designates a specific tagged type.
3596         (Make_Tag_Check): New routine.
3597
3598 2008-05-26  Arnaud Charlet  <charlet@adacore.com>
3599
3600         * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
3601
3602 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3603
3604         * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
3605         (builtin_decl_for): Likewise.
3606         * trans.c (gigi): Likewise.
3607         * utils.c (def_builtin_1): Fix formatting.
3608
3609 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
3610
3611         * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
3612         Create the statements which map a string name to protected or task
3613         entry indix.
3614
3615         * exp_ch9.adb: Add with and use clause for Stringt.
3616         Minor code reformatting.
3617         (Build_Entry_Names): New routine.
3618         (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
3619         for flag Build_Entry_Names which controls the allocation of the data
3620         structure for the string names of entries.
3621
3622         * exp_ch9.ads (Build_Entry_Names): New subprogram.
3623
3624         * exp_util.adb (Entry_Names_OK): New function.
3625
3626         * exp_util.ads (Entry_Names_OK): New function.
3627
3628         * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
3629         enumerations RE_Id and RE_Unit_Table.
3630
3631         * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
3632         (Free_Entry_Names_Array): New routine.
3633
3634         * s-taskin.ads: Comment reformatting.
3635         Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
3636         Add component Entry_Names to record Ada_Task_Control_Block.
3637         (Free_Entry_Names_Array): New routine.
3638
3639         * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
3640         dynamically allocate an array
3641         of string pointers. This structure holds string entry names.
3642         (Free_Entry_Names): New routine.
3643         (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
3644         (Set_Entry_Names): New routine.
3645
3646         * s-tassta.ads:
3647         (Create_Task): Add formal Build_Entry_Names. The flag is used to
3648         control the allocation of the data structure which stores entry names.
3649         (Set_Entry_Name): New routine.
3650
3651         * s-tpoben.adb:
3652         Add with and use clause for Ada.Unchecked_Conversion.
3653         (Finalize): Deallocate the entry names array.
3654         (Free_Entry_Names): New routine.
3655         (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
3656         create an array of string pointers to hold the entry names.
3657         (Set_Entry_Name): New routine.
3658
3659         * s-tpoben.ads:
3660         Add field Entry_Names to record Protection_Entries.
3661         (Initialize_Protection_Entries): Add formal Build_Entry_Names.
3662         (Set_Entry_Name): New routine.
3663
3664 2008-05-26  Vincent Celier  <celier@adacore.com>
3665
3666         * prj-nmsc.adb:
3667         (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
3668
3669         * prj.ads:
3670         (Project_Configuration): New component Shared_Lib_Driver
3671
3672 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3673
3674         * inline.adb:
3675         (Cleanup_Scopes): For a protected operation, transfer finalization list
3676         to protected body subprogram, to force cleanup actions when needed.
3677
3678 2008-05-26  Robert Dewar  <dewar@adacore.com>
3679
3680         * sem_cat.adb: Minor reformatting
3681
3682         * gnatname.adb: Minor reformatting
3683
3684         * osint.ads: Minor reformatting
3685
3686         * s-carun8.ads: Minor reformatting
3687
3688         * g-heasor.ads: Minor comment fix (unit is now pure)
3689
3690 2008-05-26  Robert Dewar  <dewar@adacore.com>
3691
3692         * exp_ch2.adb:
3693         (Expand_Current_Value): Properly type generated integer literal
3694
3695 2008-05-26  Sergey Rybin  <rybin@adacore.com>
3696
3697         * gnat_ugn.texi: Add description for the new gnatcheck rule -
3698         Separate_Numeric_Error_Handlers.
3699
3700 2008-05-26  Pascal Obry  <obry@adacore.com>
3701
3702         * sem_aggr.adb: Minor reformatting.
3703
3704 2008-05-26  Jose Ruiz  <ruiz@adacore.com>
3705
3706         * s-osinte-aix.adb:
3707         (To_Target_Priority): Setting the time slice value to 0 or greater sets
3708         the scheduling policy to FIFO within priorities or round-robin
3709         respectively.
3710         Hence, the priority must be set in this case to the one selected by the
3711         user.
3712
3713 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3714
3715         * sem_ch12.adb:
3716         (Remove_Parent): If the enclosing scope is an instance whose generic
3717         parent is declared within some parent scope of the just completed
3718         instance, make full views of the entities in that parent visible, when
3719         applicable.
3720
3721 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
3722
3723         * mingw32.h (STD_MINGW): Set to true for target w64.
3724
3725 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3726
3727         * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
3728         instead of TREE_STATIC on the ADDR_EXPR.
3729
3730 2008-05-24  Eric Botcazou  <ebotcazou@adacore.com>
3731
3732         * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
3733         (Sloc_to_locus): Do not overwrite known GCC locations when translating
3734         GNAT standard locations.
3735
3736 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3737
3738         * gigi.h (mark_visited): Declare.
3739         * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
3740         only the topmost node of expressions.
3741         (elaborate_expression_1): Look deeper for read-only variables.
3742         * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
3743         (mark_visited): Move logic to mark_visited_r.  Invoke walk_tree.
3744         (mark_visited_r): New function.
3745
3746 2008-05-23  Vincent Celier  <celier@adacore.com>
3747
3748         * snames.adb: New standard name Excluded_Source_List_File.
3749
3750         * snames.ads: New standard name Excluded_Source_List_File.
3751
3752         * prj-attr.adb: New project level attribute Excluded_Source_List_File.
3753
3754         * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
3755         Get excluded sources from
3756         file indicated by attribute Excluded_Source_List_File, when present and
3757         neither Excluded_Source_Files nor Locally_Removed_Files are declared.
3758
3759 2008-05-23  Robert Dewar  <dewar@adacore.com>
3760
3761         * exp_dist.adb: Minor reformatting
3762
3763 2008-05-23  Ed Schonberg  <schonberg@adacore.com>
3764
3765         * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
3766         slice, convert it to an indexed component, which is equivalent, more
3767         efficient, and usable even if the slice itself is not addressable.
3768
3769 2008-05-23  Olivier Hainque  <hainque@adacore.com>
3770
3771         * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
3772         convention also allows access to named compiler built-in subprograms
3773         such as the GCC __builtin family.
3774
3775 2008-05-23  Vincent Celier  <celier@adacore.com>
3776
3777         * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
3778         sep. If there are several possibilities, choose the one with the
3779         longer prefix.
3780
3781 2008-05-23  Vincent Celier  <celier@adacore.com>
3782
3783         * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
3784         back end switches when executable specified with --GCC= is same as
3785         default, even if there are additional options.
3786
3787         * gnat_ugn.texi:
3788         Document when the back end switches from the ALI file are taken into
3789         account when gnatlink is invoked with --GCC=
3790
3791 2008-05-23  Thomas Quinot  <quinot@adacore.com>
3792
3793         * s-os_lib.adb:
3794         (copy_File): Do not open destination file if source file is unreadable.
3795
3796 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3797
3798         * utils.c (handle_type_generic_attribute): Adjust to accept
3799         fixed arguments before an elipsis.
3800
3801 2008-05-21  Thomas Quinot  <quinot@adacore.com>
3802
3803         * g-sothco.ads, g-sothco.adb: New files.
3804
3805 2008-05-20  Thomas Quinot  <quinot@adacore.com>
3806
3807         * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
3808
3809         * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
3810         Add missing "with" of Ada.Unchecked_Conversion
3811
3812         * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads,
3813         g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads,
3814         g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
3815         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
3816         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
3817         g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads:
3818         Move common code out of GNAT.Sockets.Thin implementations and into
3819         Thin_Common.
3820         New constant SIZEOF_fd_set
3821         New flag Has_Sockaddr_Len
3822         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3823
3824         * g-stsifd-sockets.adb
3825         (Create): Remove call to Set_Length; use Set_Family to set the family
3826         and (on appropriate platforms) length fields in struct sockaddr.
3827
3828         * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb,
3829         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb,
3830         g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
3831         Move common code out of GNAT.Sockets.Thin implementations and into
3832         Thin_Common.
3833
3834         * g-socket.ads, g-socket.adb:
3835         Move common code out of GNAT.Sockets.Thin implementations and into
3836         Thin_Common.
3837         (Connect_Socket, Accept_Socket): Provide new versions of these two
3838         routines that operate with a user specified timeout.
3839         (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
3840         this is now handled automatically by Set_Family on platforms that
3841         require it.
3842
3843         * gen-soccon.c:
3844         Move common code out of GNAT.Sockets.Thin implementations and into
3845         Thin_Common.
3846         (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
3847         this constant to 0 (not -1) because we use it to initialize an
3848         unsigned_char value.
3849         Align values for numeric constants only.
3850         Handle the case of systems that do not support AF_INET6.
3851         New constant SIZEOF_fd_set
3852         New flag Has_Sockaddr_Len
3853         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3854
3855         * gsocket.h: New flag Has_Sockaddr_Len
3856         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3857
3858 2008-05-20  Santiago Uruena  <uruena@adacore.com>
3859
3860         * i-cobol.ads: Interfaces.COBOL should be preelaborate.
3861
3862 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
3863
3864         * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
3865         the underlying issue with malloc/free has been fixed. Remove associated
3866         comments.
3867         Minor reformatting.
3868         Related to PR ada/24533
3869
3870 2008-05-20  Robert Dewar  <dewar@adacore.com>
3871
3872         * ali.adb: Correct casing of ASCII.NUL
3873
3874         * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
3875         properly.
3876
3877 2008-05-20  Robert Dewar  <dewar@adacore.com>
3878             Gary Dismukes  <dismukes@adacore.com>
3879
3880         * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
3881         overflow if result converted to wider integer type.
3882         (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
3883         discriminated types when discriminant checks are suppressed.
3884
3885 2008-05-20  Vincent Celier  <celier@adacore.com>
3886
3887         * cstand.adb (Print_Standard): Issue the correct Size clause for type
3888         Wide_Wide_Character.
3889
3890 2008-05-20  Tristan Gingold  <gingold@adacore.com>
3891
3892         * decl.c: Do not emit a variable for a object that has an address
3893         representation clause whose value is known at compile time.
3894         When a variable has an address clause whose value is known at compile
3895         time, refer to this variable by using directly the address instead of
3896         dereferencing a pointer.
3897
3898 2008-05-20  Robert Dewar  <dewar@adacore.com>
3899
3900         PR ada/30740
3901         * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
3902         subtypes, always False for non-modular types.
3903         Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
3904         entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
3905         for Shared_Storage package.
3906         (Is_RACW_Stub_Type): New entity flag.
3907
3908         * exp_ch4.adb
3909         (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
3910         case where we have a modular type with a non-binary modules.
3911         Comments reformattings.
3912
3913         * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
3914         all types.
3915
3916 2008-05-20  Javier Miranda  <miranda@adacore.com>
3917
3918         * exp_aggr.adb
3919         (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
3920         tests did not covered the case in which the type of the aggregate has
3921         no progenitors but some its parents has progenitors.
3922
3923 2008-05-20  Gary Dismukes  <dismukes@adacore.com>
3924             Hristian Kirtchev  <kirtchev@adacore.com>
3925
3926         * exp_ch3.adb
3927         (Expand_N_Object_Declaration): Correct the condition which triggers the
3928         generation of a call to Displace when initializing a class-wide object.
3929         (Build_Dcheck_Functions): Build discriminant-checking for null variants
3930         when Frontend_Layout_On_Target is true to ensure that they're available
3931         for calling when a record variant size function is built in Layout.
3932
3933 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
3934
3935         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
3936         procedure for a derived type retrieve the discriminant values from the
3937         parent using the corresponding discriminant.
3938         (Expand_N_Assignment_Statement): Skip generation of implicit
3939         if-statement associated with controlled types if we are
3940         compiling with restriction No_Finalization.
3941
3942 2008-05-20  Vincent Celier  <celier@adacore.com>
3943
3944         * prj.adb (Hash (Project_Id)): New function
3945         (Project_Empty): Add new component Interfaces_Defined
3946
3947         * prj.ads (Source_Data): New component Object_Linked
3948         (Language_Config): New components Object_Generated and Objects_Linked
3949         (Hash (Project_Id)): New function
3950         (Source_Data): New Boolean components In_Interfaces and
3951         Declared_In_Interfaces.
3952         (Project_Data): New Boolean component Interfaces_Defined
3953
3954         * prj-attr.adb:
3955         New project level attribute Object_Generated and Objects_Linked
3956         Add new project level attribute Interfaces
3957
3958         * prj-dect.adb: Use functions Present and No throughout
3959         (Parse_Variable_Declaration): If a string type is specified as a simple
3960         name and is not found in the current project, look for it also in the
3961         ancestors of the project.
3962
3963         * prj-makr.adb:
3964         Replace procedure Make with procedures Initialize, Process and Finalize
3965         to implement H414-023: process different directories with different
3966         patterns.
3967         Use functions Present and No throughout
3968
3969         * prj-makr.ads:
3970         Replace procedure Make with procedures Initialize, Process and Finalize
3971
3972         * prj-nmsc.adb
3973         (Add_Source): Set component Object_Exists and Object_Linked accordnig to
3974         the language configuration.
3975         (Process_Project_Level_Array_Attributes): Process new attributes
3976         Object_Generated and Object_Linked.
3977         (Report_No_Sources): New Boolean parameter Continuation, defaulted to
3978         False, to indicate that the erreor/warning is a continuation.
3979         (Check): Call Report_No_Sources with Contnuation = True after the first
3980         call.
3981         (Error_Msg): Process successively contnuation character and warning
3982         character.
3983         (Find_Explicit_Sources): Check that all declared sources have been found
3984         (Check_File): Indicate in hash table Source_Names when a declared source
3985         is found.
3986         (Check_File): Set Other_Part when found
3987         (Find_Explicit_Sources): In multi language mode, check if all exceptions
3988         to the naming scheme have been found. For Ada, report an error if an
3989         exception has not been found. Otherwise, disregard the exception.
3990         (Check_Interfaces): New procedure
3991         (Add_Source): When Other_Part is defined, set mutual pointers in spec
3992         and body.
3993         (Check): In multi-language mode, call Check_Interfaces
3994         (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
3995         for an excluded source.
3996         (Remove_Source): A source replacing a source in the interfaces is also
3997         in the interfaces.
3998
3999         * prj-pars.adb: Use function Present
4000
4001         * prj-part.adb: Use functions Present and No throughout
4002         (Parse_Single_Project): Set the parent project for child projects
4003         (Create_Virtual_Extending_Project): Register project with no qualifier
4004         (Parse_Single_Project): Allow an abstract project to be extend several
4005         times. Do not allow an abstract project to extend a non abstract
4006         project.
4007
4008         * prj-pp.adb: Use functions Present and No throughout
4009         (Print): Take into account the full associative array attribute
4010         declarations.
4011
4012         * prj-proc.adb: Use functions Present and No throughout
4013         (Expression): Call itself with the same From_Project_Node for the
4014         default value of an external reference.
4015
4016         * prj-strt.adb: Use functions Present and No throughout
4017         (Parse_Variable_Reference): If a variable is specified as a simple name
4018         and is not found in the current project, look for it also in the
4019         ancestors of the project.
4020
4021         * prj-tree.ads, prj-tree.adb (Present): New function
4022         (No): New function
4023         Use functions Present and No throughout
4024         (Parent_Project_Of): New function
4025         (Set_Parent_Project_Of): New procedure
4026
4027         * snames.ads, snames.adb:
4028         Add new standard names Object_Generated and Objects_Linked
4029
4030 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
4031
4032         * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
4033         and the derived type are of the same kind.
4034         (Expand_Call): Generate type conversions for actuals of
4035         record or array types when the parent and the derived types differ in
4036         size and/or packed status.
4037
4038 2008-05-20  Javier Miranda  <miranda@adacore.com>
4039             Ed Schonberg  <schonberg@adacore.com>
4040
4041         * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
4042         generating dispatch tables of locally defined tagged types statically.
4043         Remove implicit if-statement that is no longer required.
4044         (Expand_Dispatching_Call): If this is a call to an instance of the
4045         generic dispatching constructor, the type of the first argument may be
4046         a subtype of Tag, so always use the base type to recognize this case.
4047
4048 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4049
4050         * exp_dist.adb
4051         (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
4052         and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
4053         assigning NULL into the result, to avoid a spurious warning.
4054         (Add_RACW_Features, case Same_Scope): Add assertion that designated type
4055         is not frozen.
4056         (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
4057         type.
4058         (Build_From_Any_Function, Build_To_Any_Function,
4059         Build_TypeCode_Function): For a type that has user-specified stream
4060         attributes, use an opaque sequence of octets as the representation.
4061
4062 2008-05-20  Kevin Pouget  <pouget@adacore.com>
4063
4064         * exp_smem.ads, exp_smem.adb: Construction of access and assign
4065         routines has been replaced by an instantiation of
4066         System.Shared_Storage.Shared_Var_Procs generic package, while expanding
4067         shared variable declaration.
4068         Calls to access and assign routines have been replaced by calls to
4069         Read/Write routines of System.Shared_Storage.Shared_Var_Procs
4070         instantiated package.
4071
4072         * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
4073         It identifies the new generic package added in s-shasto.
4074
4075         * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
4076         is instantiated for each shared passive variable. It provides
4077         supporting procedures called upon each read or write access by the
4078         expanded code.
4079
4080         * sem_attr.adb:
4081         For this runtime unit (always compiled in GNAT mode), we allow
4082         stream attributes references for limited types for the case where
4083         shared passive objects are implemented using stream attributes,
4084         which is the default in GNAT's persistent storage implementation.
4085
4086 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4087
4088         * freeze.adb
4089         (Freeze_Enumeration_Type): For a subtype that inherits a foreign
4090         convention from its base type, do not set the type to that of integer,
4091         because it may inherit a size clause.
4092         Warn on a size clause with a size different
4093         from that of Integer, if the type has convention C.
4094
4095 2008-05-20  Vincent Celier  <celier@adacore.com>
4096
4097         * gnatname.adb
4098         (Scan_Args): Rewrite to take into account new switch --and to separate
4099         arguments into sections.
4100         (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
4101         section, then Finalize.
4102
4103 2008-05-20  Tristan Gingold  <gingold@adacore.com>
4104
4105         * init.c: Enable stack probing on ppc-linux.
4106
4107         * tracebak.c: Add symbolic traceback for ppc-linux.
4108
4109         * system-linux-ppc.ads: Enable stack probing on ppc-linux.
4110
4111 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
4112
4113         * Makefile.in
4114         (common-tools): New rule, to avoid parallel build failure on gnat tools.
4115         Reenable parallel builds on this Makefile.
4116
4117         * Make-lang.in: Update dependencies.
4118
4119 2008-05-20  Robert Dewar  <dewar@adacore.com>
4120
4121         * opt.ads (Treat_Restrictions_As_Warnings): New switch
4122
4123         * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
4124         Treat_Restrictions_As_Warnings.
4125
4126         * switch-c.adb: Recognize new switch -gnatr
4127
4128         * usage.adb: Add line for -gnatr
4129
4130 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
4131
4132         * par-ch3.adb
4133         (P_Access_Definition): Change the error message when parsing "access
4134         all" in Ada 95 mode. The message no longer forces the user to recompile
4135         in 05 mode only to discover that anonymous access types are not allowed
4136         to have "all".
4137
4138 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
4139
4140         * par-ch9.adb
4141         (P_Protected): Update the error message on missing "-gnat05" switch when
4142         using interfaces in conjunction with protected types. Remove the
4143         incorrect error message associated with the presence of "private" after
4144         a "with".
4145
4146 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4147
4148         * sem_aggr.adb: Update comments.
4149         Improve previous change for PR ada/17985
4150
4151 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4152
4153         * sem_cat.adb
4154         (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
4155         the visible part of the spec of a remote types unit.
4156         (Validate_Remote_Access_Object_Type_Declaration):
4157         New local subprogram Is_Valid_Remote_Object_Type, replaces
4158         Is_Recursively_Limited_Private.
4159         (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
4160         non-controlling formals (and the return type, even though this is not
4161         explicit in the standard) must support external streaming.
4162         (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
4163         as above for of RAS types and RCI subprograms. (The return type is not
4164         checked yet).
4165         Update comments related to RACWs designating limited interfaces per
4166         ARG ruling on AI05-060.
4167
4168         * sem_util.ads, sem_util.adb
4169         (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
4170         Is_Remote_Call_Interface to identify RACW types in a stable and
4171         consistent way. We used to rely in this predicate on the privateness of
4172         the designated type and its ancestors, but depending on the currently
4173         visible private parts, this caused false negatives. We now uniformly
4174         rely on checks made at the point where the RACW type is declared.
4175         (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
4176
4177 2008-05-20  Javier Miranda  <miranda@adacore.com>
4178             Ed Schonberg  <schonberg@adacore.com>
4179             Hristian Kirtchev  <kirtchev@adacore.com>
4180
4181         * sem_ch3.adb
4182         (Analyze_Object_Declaration): Fix over-conservative condition
4183         restricting use of predefined assignment with tagged types that have
4184         convention CPP.
4185         (Analyze_Object_Declaration): Relax the check regarding deferred
4186         constants declared in scopes other than packages since they can be
4187         completed with pragma Import.
4188         Add missing escaping of all-caps word 'CPP' in error messages.
4189         (Build_Discriminated_Subtype): Do not inherit representation clauses
4190         from parent type if subtype already carries them, because they are
4191         inherited earlier during derivation and already include those that may
4192         come from a partial view.
4193
4194         * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
4195         Check the declarations of a subprogram body for proper deferred
4196         constant completion.
4197
4198         * sem_ch7.ads, sem_ch7.adb
4199         (Inspect_Deferred_Constant_Completion): Moved to sem_util.
4200
4201 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4202             Thomas Quinot  <quinot@adacore.com>
4203
4204         * sem_ch4.adb
4205         (Try_Indexed_Call): Handle properly a construct of the form F(S) where
4206         F is a parameterless function that returns an array, and S is a subtype
4207         mark.
4208         (Analyze_Call): Insert dereference when the prefix is a parameterless
4209         function that returns an access to subprogram and the call has
4210         parameters.
4211         Reject a non-overloaded call whose name resolves to denote
4212         a primitive operation of the stub type generated to support a remote
4213         access-to-class-wide type.
4214
4215 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4216
4217         * sem_ch8.adb
4218         (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
4219         when there is a use clause for the same entity in the context.
4220         (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
4221         created for a stream attribute of an abstract type or interface type.
4222
4223 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4224
4225         * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
4226         subprogram.
4227
4228         * sem_type.adb
4229         (Add_One_Interp): Ignore any interpretation that is a primitive
4230         operation of an RACW stub type (these primitives are only executed
4231         through dispatching, never through static calls).
4232         (Collect_Interps): When only one interpretation has been found, set N's
4233         Entity and Etype to that interpretation, otherwise Entity and Etype may
4234         still refer to an interpretation that was ignored by Add_One_Interp,
4235         in which case would end up with being marked as not overloaded but with
4236         an Entity attribute not pointing to its (unique) correct interpretation.
4237
4238 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4239
4240         * sem_eval.adb
4241         (Eval_Slice): Warn when a slice whose discrete range is a subtype name
4242         denotes the whole array of its prefix.
4243
4244 2008-05-20  Robert Dewar  <dewar@adacore.com>
4245
4246         * sem_res.adb (Resolve_Op_Not): Warn on double negation
4247
4248 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4249
4250         * sprint.adb
4251         (Print_Itype): Do not modify the sloc of the component type of a
4252         (packed) array itype, because it is an unrelated type whose source
4253         location is independent of the point of creation of the itype itself.
4254
4255 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4256
4257         * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
4258         Append.
4259
4260 2008-05-20  Robert Dewar  <dewar@adacore.com>
4261             Vincent Celier  <celier@adacore.com>
4262
4263         * vms_data.ads: Add entry for -gnatr
4264         Put GNAT SYNC section in proper alpha order
4265         Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
4266
4267         * gnat_ugn.texi: Add documentation for new gnatname switch --and
4268         Update the style checks section
4269         Add documentation of -gnatr
4270         Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
4271         subsection the explanation how compiler checks should be disabled for
4272         gnatcheck.
4273         Update the list of Ada 95 reserved words used by in the project language
4274         Add documentation for project qualifiers.
4275         Document that abstract projects may be extended by different projects in
4276         the same project tree.
4277         Add documentation for gnatmake switch -d
4278
4279         * ug_words: Add -gnatyy VMS equivalence string.
4280         Add entry for -gnatr
4281
4282 2008-05-20  Bob Duff  <duff@adacore.com>
4283
4284         * a-rttiev.adb
4285         (Set_Handler): Remove code from both of these that implements
4286         RM-D.15(15/2), because it causes a race condition and potential
4287         deadlock.
4288         (Process_Queued_Events): Add comment explaining "exception when others
4289         => null". Add clarifying ".all", even though implicit .all is legal
4290         here.
4291
4292 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
4293
4294         * s-winext.ads: Replace representation clause by pragma Pack. Gives
4295         equivalent representation, but has the advantage of allowing
4296         compilation of this file under 64 bits platforms.
4297
4298         * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
4299
4300         * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.
4301
4302         * adaint.c:
4303         Don't define dummy implementation of convert_addresses on ppc-linux.
4304
4305 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4306
4307         * exp_ch7.adb
4308         (Expand_Ctrl_Function_Call): Do not attach result to finalization list
4309         if expression is aggregate component.
4310
4311 2008-05-20  Robert Dewar  <dewar@adacore.com>
4312
4313         * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
4314         sem_ch12.adb: Update comments. Minor reformatting.
4315
4316         * exp_ch2.adb: Typo
4317
4318         * s-unstyp.ads: Fixed some typos in comments.
4319
4320 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
4321
4322         * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
4323         type/constant.
4324
4325         * g-socthi-vxworks.ads: Update to latest socket changes.
4326
4327         * a-caldel-vms.adb: Resync with a-caldel spec.
4328
4329         * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
4330         Update comments.
4331
4332 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
4333
4334         * trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
4335         for dummy types pointed to by the converted pointer types.
4336
4337 2008-05-15  Eric Botcazou  <ebotcazou@adacore.com>
4338
4339         * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
4340         of records and unions.
4341         (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.
4342
4343 2008-05-14  Samuel Tardieu  <sam@rfc1149.net>
4344             Robert Dewar <dewar@adacore.com>
4345
4346         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
4347         restrictions to the prefix of 'Old.
4348         * sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
4349         * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
4350         variables.
4351
4352 2008-05-13  Eric Botcazou  <ebotcazou@adacore.com>
4353
4354         PR ada/24880
4355         PR ada/26635
4356         * utils.c (convert) <INTEGER_TYPE>: When converting an additive
4357         expression to an integral type with lower precision, use NOP_EXPR
4358         directly in a couple of special cases.
4359
4360 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
4361             Ed Schonberg <schonberg@adacore.com>
4362
4363         * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
4364         constraint expressions.
4365
4366 2008-05-12  Tomas Bily  <tbily@suse.cz>
4367
4368         * utils2.c (known_alignment, contains_save_expr_p)
4369         (gnat_mark_addressable): Use CASE_CONVERT.
4370         * decl.c (annotate_value): Likewise.
4371         * trans.c (maybe_stabilize_reference): Likewise.
4372         * utils2.c (build_binary_op): Use CONVERT_EXPR_P.
4373         * utils.c (rest_of_record_type_compilation): Likewise.
4374         * trans.c (protect_multiple_eval, Attribute_to_gnu)
4375         (protect_multiple_eval): Likewise.
4376
4377 2008-05-08  Andreas Schwab  <schwab@suse.de>
4378
4379         * utils.c (handle_pure_attribute, init_gigi_decls): Rename
4380         DECL_IS_PURE to DECL_PURE_P.
4381
4382 2008-05-05  Eric Botcazou  <ebotcazou@adacore.com>
4383
4384         * decl.c (maybe_pad_type): Add ??? comment.
4385
4386 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
4387
4388         * decl.c (components_to_record): Zero the alignment of the qualified
4389         union built for the variant part upon creating it.
4390
4391 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
4392
4393         * decl.c (maybe_pad_type): Try to get a form of the type with integral
4394         mode even if the alignment is not a factor of the original size.  But
4395         make sure to create the inner field with the original size.  Reorder.
4396         * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
4397         record as always addressable.
4398         * utils.c (convert): Deal specially with conversions between original
4399         and packable versions of a record type.
4400         * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
4401         recognizing an assignment between padded objects.
4402
4403 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
4404
4405         * decl.c (make_packable_type): Resize the last component to its RM size
4406         only if it is of an aggregate type.
4407         * trans.c (call_to_gnu): Fix nit in comment.
4408         (gnat_to_gnu): Likewise.
4409
4410 2008-04-30  Samuel Tardieu  <sam@rfc1149.net>
4411
4412         * Makefile.in: Adapt sh4-linux target.
4413
4414 2008-04-29  Ed Schonberg  <schonberg@adacore.com>
4415
4416         PR ada/35792
4417         * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
4418         tagged type by an untagged protected or task type.
4419
4420 2008-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4421             Tristan Gingold  <gingold@adacore.com>
4422
4423         PR ada/36007
4424         * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment
4425         of aliased objects with an unconstrained nominal subtype.
4426         Cap the promotion to the effective alignment of the word mode.
4427
4428 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4429
4430         * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
4431         (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
4432         Use '&&' instead of ';'.
4433
4434 2008-04-24  Olivier Hainque  <hainque@adacore.com>
4435
4436         * trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation
4437         doesn't require signed arithmetic anymore.
4438
4439 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
4440
4441         * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
4442         (call_to_gnu): Don't set TREE_INVARIANT.
4443         * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
4444
4445 2008-04-22  Joel Sherrill <joel.sherrill@oarcorp.com>
4446
4447         * s-osinte-rtems.adb: Add sigalstack function.
4448         * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
4449         function. Add Alternate_Stack and Alternate_Stack_Size.
4450         Add missing process_shared field to pthread_condattr_t
4451         and change ss_low_priority to int from timespec.
4452
4453 2008-04-22  Samuel Tardieu  <sam@rfc1149.net>
4454
4455         * i-forbla.adb: Link against -llapack and -lblas by default
4456         instead of the private -lgnalasup.
4457
4458 2008-04-21  Olivier Hainque  <hainque@adacore.com>
4459
4460         Access to most C builtins from Ada
4461         * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
4462         (handle_pure_attribute, handle_novops_attribute,
4463         handle_nonnull_attribute, handle_sentinel_attribute,
4464         handle_noreturn_attribute, handle_malloc_attribute,
4465         handle_type_generic_attribute): New attribute handlers, from C fe.
4466         (gnat_internal_attribute_table): Map the new handlers.
4467         (gnat_init_decl_processing): Move call to gnat_install_builtins to ...
4468         (init_gigi_decls): ... here.
4469         (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for):
4470         Move to a section dedicated to builtins processing.
4471         (build_void_list_node, builtin_type_for_size): New functions.
4472         (def_fn_type, get_nonnull_operand): Likewise.
4473         (install_builtin_elementary_type, install_builtin_function_types,
4474         install_builtin_attributes): Likewise.
4475         (fake_attribute_handler): Fake handler for attributes we don't
4476         support in Ada.
4477         (def_builtin_1): New function, worker for DEF_BUILTIN.
4478         (install_builtin_functions): New function.
4479         (gnat_install_builtins): Move to the builtins processing section.
4480         Now calling the newly introduced installers.
4481
4482 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
4483
4484         * decl.c (gnat_to_gnu_entity) <object>: Also promote the alignment of
4485         constant objects, but not exceptions.
4486         * trans.c (add_decl_expr): Use gnat_types_compatible_p for type
4487         compatibility test.
4488         * utils.c (create_var_decl_1): Likewise.
4489         * utils2.c (build_binary_op) <MODIFY_EXPR>: Also use the padded view of
4490         the type when copying to padded object and the source is a constructor.
4491
4492 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4493
4494         * decl.c (gnat_to_gnu_entity) <object>: When trying to promote the
4495         alignment, reset it to zero if it would end up not being greater
4496         than that of the type.
4497
4498 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4499
4500         * decl.c (maybe_pad_type): Only generate the XVS parallel type if
4501         the padded type has a variable size.
4502
4503 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4504
4505         * decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by
4506         target pointer mechanism as soon as the size is not constant.
4507
4508 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4509
4510         * gigi.h (create_var_decl_1): Declare.
4511         (create_var_decl): Turn into a macro invoking create_var_decl_1.
4512         (create_true_var_decl): Likewise.
4513         * utils.c (create_var_decl_1): Make global and reorder parameters.
4514         (create_var_decl): Delete.
4515         (create_true_var_decl): Likewise.
4516
4517 2008-04-17  Eric Botcazou  <ebotcazou@adacore.com>
4518
4519         * decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of
4520         objects by default.
4521         * fe.h (Debug_Flag_Dot_A): Delete.
4522         * debug.adb (-gnatd.a): Update documentation.
4523
4524 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
4525
4526         * g-socket.ads, g-socket.adb (Get_Address): Make Stream a
4527         "not null" parameter.
4528
4529 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
4530
4531         * g-socket.adb: Add a message "IPv6 not supported" to the
4532         Socket_Error exception.
4533
4534 2008-04-16  Samuel Tardieu  <sam@rfc1149.net>
4535
4536         PR ada/29015
4537         * sem_ch12.adb (Instantiate_Type): Check whether the full view of
4538         the type is known instead of the underlying type.
4539
4540 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
4541
4542         PR ada/22387
4543         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
4544         procedure for a derived type retrieve the discriminant values from
4545         the parent using the corresponding discriminant.
4546
4547 2008-04-15  Samuel Tardieu  <sam@rfc1149.net>
4548             Gary Dismukes  <dismukes@adacore.com>
4549
4550         PR ada/28733
4551         * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something
4552         which is not an entity (and hence not a package).
4553         (End_Use_Package): Ditto.
4554
4555 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
4556
4557         PR ada/16086
4558         * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any
4559         protected operation that matches the signature, not only an entry, a
4560         regular subprogram or a literal.
4561
4562 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4563
4564         * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3.
4565         * decl.c (gnat_to_gnu_entity) <object>: Call maybe_pad_type only
4566         if a size or alignment is specified.  Do not take into account
4567         alignment promotions for the computation of the object's size.
4568         <type>: Call maybe_pad_type only if a size or alignment is specified.
4569         (maybe_pad_type): Really reuse the RM_Size of the original type if
4570         requested.
4571         * trans.c (Attribute_to_gnu): Fix a couple of nits.
4572         * utils2.c (build_binary_op) <MODIFY_EXPR>: Merge related conditional
4573         statements.  Use the padded view of the type when copying between
4574         padded objects of the same underlying type.
4575
4576 2008-04-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4577
4578         * vms_data.ads: Fix typo in constant.
4579         * gen-soccon.c: Fix typo in error string.
4580         * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition):
4581         Fix typos.
4582         * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads,
4583         bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb,
4584         erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb,
4585         exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb,
4586         exp_util.adb, fmap.adb, g-soccon-linux-mips.ads,
4587         g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads,
4588         mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb,
4589         s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads,
4590         s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads,
4591         sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads,
4592         sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
4593         sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads,
4594         sinfo.ads: Fix typos in comments.
4595
4596 2008-04-14  Robert Dewar  <dewar@adacore.com>
4597
4598         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
4599         to every non-object and change error message.
4600
4601 2008-04-14  Robert Dewar  <dewar@adacore.com>
4602
4603         * sem_util.ads, sem_util.adb (In_Subprogram): Remove.
4604         * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram
4605         directly.
4606
4607 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
4608
4609         PR ada/18680
4610         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to
4611         apply pragma Linker_Section on type.
4612
4613 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
4614
4615         PR ada/16098
4616         * sem_prag.adb (Error_Pragma_Ref): New.
4617         (Process_Convention): Specialized message for non-local
4618         subprogram renaming. Detect the problem in homonyms as well.
4619
4620 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
4621
4622         PR ada/15915
4623         * sem_util.ads, sem_util.adb (Denotes_Variable): New function.
4624         * sem_ch12.adb (Instantiate_Object): Use it.
4625         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that
4626         storage pool denotes a variable as per RM 13.11(15).
4627
4628 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
4629
4630         * sem_util.ads, sem_util.adb (In_Subprogram): New function.
4631         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it.
4632
4633 2008-04-14  Rolf Ebert  <rolf.ebert.gcc@gmx.de>
4634
4635         PR ada/20822
4636         * xgnatugn.adb (Put_Line): New procedure, ensuring Unix
4637         line endings even on non-Unix platforms.
4638
4639 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
4640
4641         PR ada/35050
4642         * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
4643         renaming information.
4644
4645 2008-04-13  Samuel Tardieu  <sam@rfc1149.net>
4646
4647         PR ada/17985
4648         * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
4649         itself.
4650
4651 2008-04-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4652
4653         * sfn_scan.adb, sfn_scan.ads, sinfo.ads,
4654         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
4655         snames.ads, sprint.adb, stand.ads, stringt.ads,
4656         styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
4657         switch.ads, sysdep.c, table.adb, table.ads,
4658         targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
4659         trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
4660         uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
4661         vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
4662         widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
4663         xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
4664         Fix comment typos.
4665
4666         * sem_ch10.adb, sem_ch10.ads,
4667         sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
4668         sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
4669         sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
4670         sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
4671         sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
4672         sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
4673         sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
4674         sem_warn.ads: Fix comment typos.
4675
4676         * s-secsta.adb, s-sequio.ads, s-shasto.ads,
4677         s-soflin.ads, s-stalib.ads, s-stausa.adb,
4678         s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
4679         s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
4680         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
4681         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
4682         s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
4683         s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
4684         s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
4685         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
4686         s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
4687         s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
4688         s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
4689         s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
4690         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
4691         scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
4692         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
4693         sem_cat.adb, sem_cat.ads: Fix comment typos.
4694
4695 2008-04-12  Joel Sherrill  <joel@oarcorp.com>
4696
4697         PR ada/35825
4698         * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.
4699
4700 2008-04-12  Arnaud Charlet  <charlet@adacore.com>
4701
4702         * s-linux-hppa.ads: Fix syntax errors.
4703
4704 2008-04-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4705
4706         * gnat_ugn.texi: Fix typos.
4707         * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
4708         restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
4709         s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
4710         s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
4711         s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
4712         s-finimp.adb, s-finroo.ads, s-fishfl.ads,
4713         s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
4714         s-hibaen.ads, s-htable.ads, s-imgcha.adb,
4715         s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
4716         s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
4717         s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
4718         s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
4719         s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
4720         s-osinte-darwin.ads, s-osinte-freebsd.ads,
4721         s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
4722         s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
4723         s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
4724         s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
4725         s-parame-hpux.ads, s-parame-vms-alpha.ads,
4726         s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
4727         s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
4728         s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
4729         s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
4730         s-rident.ads: Fix comment typos.
4731
4732 2008-04-09  Samuel Tardieu  <sam@rfc1149.net>
4733
4734         PR ada/28305
4735         * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
4736         environment if generic instance is a top-level one.
4737
4738 2008-04-09  Doug Rupp  <rupp@adacore.com>
4739
4740         * decl.c (validate_size): Set minimum size for fat pointers same as
4741         access types. Code clean ups.
4742
4743         * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
4744         (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
4745
4746         * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
4747
4748         * s-crtl.ads (malloc32) New function, alias for malloc
4749         (realloc32) New function, alias for realloc
4750
4751         * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
4752
4753         * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
4754         allocator size is 32 and default pointer size is 64.
4755         (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
4756         lhs type if smaller, whatever the modes.
4757
4758         * gigi.h (malloc32_decl): New macro definition
4759
4760         * utils.c (init_gigi_decls): New malloc32_decl
4761         Various code clean ups.
4762
4763         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
4764         Task_Address vice System.Address.
4765
4766         * s-taspri-vms.ads: Import System.Aux_DEC
4767         (Task_Address): New subtype of System.Aux_DEC.Short_Address
4768         (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
4769
4770         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
4771         Task_Address vice System.Address.
4772
4773         * s-inmaop-vms.adb: Import System.Task_Primitives
4774         (To_Address): Unchecked convert to Task_Address vice System.Address
4775
4776         * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
4777         expires now.
4778         (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
4779         (To_Address) Unchecked convert to Task_Address vice System.Address
4780
4781         * s-tpopde-vms.adb: Remove unnecessary warning pragmas
4782
4783         * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
4784
4785 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4786
4787         * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
4788         (fdesc_type_node): Define.
4789         (null_fdesc_node): Likewise.
4790         * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
4791         uses descriptors for vtables and the type comes from a dispatch table,
4792         return the descriptor type.
4793         * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
4794         uses descriptors for vtables and the type comes from a dispatch table,
4795         build a descriptor in the static case and copy the existing one in the
4796         non-static case.
4797         (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
4798         the type is a pointer-to-subprogram coming from a dispatch table,
4799         return the null descriptor.
4800         <N_Unchecked_Type_Conversion>: If the target uses descriptors for
4801         vtables, the source type is the descriptor type and the target type
4802         is a pointer type, first build the pointer.
4803         * utils.c (init_gigi_decls): If the target uses descriptors for vtables
4804         build the descriptor type and the null descriptor.
4805
4806 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4807
4808         * decl.c (prepend_attributes): Fix typo.
4809         * trans.c (Pragma_to_gnu): Likewise.
4810         * utils.c (gnat_genericize): Likewise.
4811
4812 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4813             Richard Kenner  <kenner@adacore.com>
4814
4815         * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
4816         * decl.c (gnat_to_gnu_entity): Adjust for above change.
4817         <E_Record_Type>: Try to get a better form of the component for
4818         packing, even if it has an integral mode.
4819         <E_Record_Subtype>: Likewise.
4820         * trans.c (gnat_to_gnu): Do not require BLKmode for the special
4821         exception suppressing the final conversion between record types.
4822
4823 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4824
4825         * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
4826         alignment for space, promote the alignment of non-scalar variables with
4827         no size and alignment.
4828         * gigi.h (gnat_types_compatible_p): Declare.
4829         * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
4830         * trans.c (gnat_to_gnu): Revert revision 129339 change.  Minor cleanup.
4831         * utils.c (gnat_types_compatible_p) : New predicate.
4832         (convert): Use it throughout to test for cases where a mere view
4833         conversion is sufficient.
4834         * utils2.c (build_binary_op): Minor tweaks.
4835         (build_unary_op): Likewise.
4836
4837 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4838
4839         * decl.c (adjust_packed): Expand comment.
4840
4841 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
4842
4843         * s-tasuti.ads: Use Task_Address instead of System.Address.
4844
4845         * makeutl.adb (Path_Or_File_Name): New function
4846
4847         * nlists.ads, itypes.ads: Update comments.
4848
4849         * s-crtl.ads (malloc32, realloc32): New functions.
4850
4851         * s-auxdec.ads (Short_Address_Size): New constant.
4852
4853         * a-taside.adb, s-tasdeb.adb: Use Task_Address.
4854
4855         * s-ststop.ads, s-ststop.adb: New file.
4856
4857         * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
4858         Minor reformatting.
4859
4860 2008-04-08  Pascal Obry  <obry@adacore.com>
4861
4862         * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
4863         (Stop_Bits_Number): New type.
4864         (Parity_Check): Likewise.
4865         (Set): Add parameter to set the number of stop bits and
4866         the parity. Parameter timeout is now a duration instead
4867         of a plain integer.
4868
4869         * g-sercom-linux.adb:
4870         Implement the stop bits and parity support for GNU/Linux.
4871         Fix handling of timeout, it must be given in tenth of seconds.
4872
4873         * g-sercom-mingw.adb:
4874         Implement the stop bits and parity support for Windows.
4875         Use new s-win32.ads unit instead of declaring Win32 services
4876         directly into this body.
4877         Update handling of timeout as now a duration.
4878
4879         * s-win32.ads, s-winext.ads: New files.
4880
4881 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4882             Arnaud Charlet  <charlet@adacore.com>
4883
4884         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
4885
4886         s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
4887         s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
4888
4889         * s-osinte-lynxos-3.ads,
4890         (Alternate_Stack): Remove when not needed. Simplify declaration
4891         otherwise.
4892         (Alternate_Stack_Size): New constant.
4893
4894         s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
4895         'Unrestricted_Access.
4896
4897         * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
4898         s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
4899         s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
4900         s-osinte-solaris.ads, s-osinte-vms.ads
4901         (SA_ONSTACK): New constant.
4902         (stack_t): New record type.
4903         (sigaltstack): New imported function.
4904         (Alternate_Stack): New imported variable.
4905         (Alternate_Stack_Size): New constant.
4906
4907         * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
4908
4909         * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
4910         s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
4911         s-taspri-vms.ads (Task_Address): New subtype of System.Address
4912         (Task_Address_Size): New constant size of System.Address
4913         (Alternate_Stack_Size): New constant.
4914
4915         * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
4916         (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
4917         Establish the alternate stack if the platform makes use of n alternate
4918         signal stack for stack overflows.
4919         (Create_Task): Take into account the alternate stack in the stack size.
4920         (Initialize): Save the address of the alternate stack into the ATCB for
4921         the environment task.
4922         (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
4923
4924         * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
4925
4926         * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
4927
4928         * s-intman-posix.adb:
4929         (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
4930         alternate signal stack for stack overflows.
4931
4932         * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
4933         x86-64, adjust the saved value of the stack pointer if the signal was
4934         raised by a stack checking probe.
4935         (HP-UX section): Use global __gnat_alternate_stack as signal handler
4936         stack and only for SIGSEGV.
4937         (Linux section): Likewise on x86 and x86-64.
4938         [VxWorks section]
4939         (__gnat_map_signal): Now static.
4940         (__gnat_error_handler): Not static any more.
4941         (__gnat_adjust_context_for_raise): New function. Signal context
4942         adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
4943         propagation circuitry.
4944         (__gnat_error_handler): Second argument of a sigaction handler is a
4945         pointer, not an int, and is unused.
4946         Adjust signal context before mapping to exception.
4947         Install signal handlers for LynxOS case.
4948
4949         * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
4950         (Task_Id): Set size to Task_Address_Size
4951         (To_Task_id): Unchecked convert from Task_Address vice System.Address
4952         (To_Address): Unchecked convert to Task_Address vice System.Address
4953
4954         * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
4955         address into the ATCB if the platform makes use of an alternate signal
4956         stack for stack overflows.
4957         (Free_Task): Add call to Finalize_Attributes_Link.
4958         Add argument Relative_Deadline to pass the value specified for
4959         the task. This is not yet used for any target.
4960
4961         * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
4962         the value specified for the task.
4963
4964 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
4965
4966         (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
4967         (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
4968         s-vxwext-rtp.adb): New files.
4969
4970         * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb:
4971         Minor updates to accomodate changes above.
4972
4973 2008-04-08  Pascal Obry  <obry@adacore.com>
4974
4975         * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
4976         s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
4977         Use new s-win32.ads unit instead of declaration
4978         from s-osinte-mingw.ads.
4979
4980         * s-osinte-mingw.ads:
4981         Move all non tasking based interface to s-win32.ads.
4982
4983         * s-osprim-mingw.adb:
4984         Remove duplicated declarations and use s-win32.ads
4985         unit instead.
4986
4987 2008-04-08  Vincent Celier  <celier@adacore.com>
4988             Arnaud Charlet  <charlet@adacore.com>
4989
4990         * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
4991         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
4992         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
4993         mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
4994         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
4995
4996         * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
4997         mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
4998         mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
4999         mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
5000         mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
5001         mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
5002         mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
5003         mlib-tgt-specific-mingw.adb: New names.
5004
5005         * Makefile.in:
5006         On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
5007         Get rid of gnatbl.
5008         (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
5009         Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
5010         Minor updates for VMS
5011
5012         * gnatbl.c: Removed.
5013
5014 2008-04-08  Thomas Quinot  <quinot@adacore.com>
5015
5016         * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
5017         g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
5018         gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
5019         a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
5020         s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
5021         ASCII.NUL throughout.
5022
5023 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
5024             Matthew Heaney  <heaney@adacore.com>
5025
5026         * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
5027         renaming.
5028
5029         * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,
5030         a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
5031         to convention for non-RM specs.
5032         Add descriptive header, and documented each operation
5033         document each operation
5034
5035 2008-04-08  Robert Dewar  <dewar@adacore.com>
5036             Bob Duff  <duff@adacore.com>
5037             Gary Dismukes  <dismukes@adacore.com>
5038             Ed Schonberg  <schonberg@adacore.com>
5039
5040         * alloc.ads: Add entries for Obsolescent_Warnings table
5041
5042         * einfo.ads, einfo.adb: Minor reformatting.
5043         (Is_Discriminal): New subprogram.
5044         (Is_Prival): New subprogram.
5045         (Is_Protected_Component): New subprogram.
5046         (Is_Protected_Private): Removed.
5047         (Object_Ref, Set_Object_Ref): Removed.
5048         (Prival, Set_Prival): Change assertion.
5049         (Privals_Chain, Set_Privals_Chain): Removed.
5050         (Prival_Link, Set_Prival_Link): New subprogram.
5051         (Protected_Operation, Set_Protected_Operation): Removed.
5052         (Protection_Object, Set_Protection_Object): New subprogram.
5053         (Write_Field17_Name): Remove case for Object_Ref.
5054         (Write_Field20_Name): Add case for Prival_Link.
5055         (Write_Field22_Name): Remove case for Protected_Operation,
5056         Privals_Chain.
5057         Add case for Protection_Object.
5058         (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
5059         so clients
5060         (Overlays_Constant): New flag
5061         (Is_Constant_Object): New predicate
5062         (Is_Standard_Character_Type): New predicate
5063         (Optimize_Alignment_Space): New flag
5064         (Optimize_Alignment_Time): New flag
5065         (Has_Postconditions): New flag
5066         (Obsolescent_Warrning): Field removed
5067         (Spec_PPC_List): New field
5068         (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
5069         subprograms to get and set the relative deadline associated to a task.
5070
5071         * exp_attr.adb (May_Be_External_Call): Account for the case where the
5072         Access attribute is part of a named parameter association.
5073         (Expand_Access_To_Protected_Op): Test for the attribute occurring
5074         within an init proc and use that directly as the scope rather than
5075         traversing up to the protected operation's enclosing scope. Only apply
5076         assertion on Is_Open_Scopes in the case the scope traversal is done.
5077         For the init proc case use the address of the first formal (_init) as
5078         the protected object reference.
5079         Implement Invalid_Value attribute
5080         (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
5081         contents of the dispatch table there is no need to duplicate the
5082         itypes associated with record types (i.e. the implicit full view
5083         of private types).
5084         Implement Enum_Val attribute
5085         (Expand_N_Attribute_Reference, case Old): Properly handle appearence
5086         within _Postconditions procedure
5087         (Expand_N_Attribute_Reference, case Result): Implement new attribute
5088
5089         * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
5090         a return statement calls a function that is not available in
5091         configurable runtime.
5092         (Analyze_If_Statement): don't optimize simple True/False cases in -O0
5093         (Expand_Non_Function_Return): Generate call to _Postconditions proc
5094         (Expand_Simple_Function_Return): Ditto
5095
5096         * frontend.adb: Add call to Sem_Aux.Initialize
5097
5098         * sem_aux.ads, sem_aux.adb: New file.
5099
5100         * par-prag.adb: Add entries for pragmas Precondition/Postcondition
5101         Add new Pragma_Relative_Deadline.
5102         Add support for pragmas Check and Check_Policy
5103
5104         * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
5105         (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
5106         (Analyze_Attribute): In case of attributes 'Alignment and 'size add
5107         missing check because they are not allowed in CPP tagged types.
5108         Add Sure parameter to Note_Possible_Modification calls
5109         Add implementation of Invalid_Value attribute
5110         Implement new attribute Has_Tagged_Values
5111         Implement Enum_Val attribute
5112         (Analyze_Attribute, case Range): Set Name_Req True for prefix of
5113         generated attributes.
5114         (Analyze_Attribute, case Result): If prefix of the attribute is
5115         overloaded, it always resolves to the enclosing function.
5116         (Analyze_Attribute, case Result): Properly deal with analysis when
5117         Postconditions are not active.
5118         (Resolve_Attribute, case Result): Properly deal with appearence during
5119         preanalysis in spec.
5120         Add processing for attribute Result
5121
5122         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
5123         for operators.
5124         (Analyze_Subprogram_Body): Install private_with_clauses when the body
5125         acts as a spec.
5126         (Check_Inline_Pragma): recognize an inline pragma that appears within
5127         the subprogram body to which it applies.
5128         (Analyze_Function_Return): Check that type of the expression of a return
5129         statement in a function with a class-wide result is not declared at a
5130         deeper level than the function.
5131         (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
5132         (Verify_Overriding_Indicator): Handle properly subprogram bodies for
5133         user- defined operators.
5134         (Install_Formals): Moved to spec to allow use from Sem_Prag for
5135         analysis of precondition/postcondition pragmas.
5136         (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
5137         Last_Formal, along with lots of comments on what this is about
5138         (Analyze_Subprogram_Body): Fix case where we move entities from the
5139         spec to the body when there are no body entities (now possible with
5140         precondition and postcondition pragmas).
5141         (Process_PPCs): New procedure
5142         (Analyze_Subprogram_Body): Add call to Process_PPCs
5143
5144         * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
5145         clause.
5146         (Pop_Scope): Restore Check_Policy_List on scope exit
5147         (Push_Scope): Save Check_Policy_List on scope entry
5148         Change name In_Default_Expression      => In_Spec_Expression
5149         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5150         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5151         (Analyze_Object_Renaming): Allow 'Reference as object
5152         (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
5153         (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
5154         of restriction identifier.
5155         Add Sure parameter to Note_Possible_Modication calls
5156
5157         * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
5158         Don't check for primitive operations when calling Rep_Item_Too_Late.
5159         (Process_Import_Or_Interface): Do not place flag on formal
5160         subprograms.
5161         (Analyze_Pragma, case Export): If the entity is a deferred constant,
5162         propagate information to full view, which is the one elaborated by the
5163         back-end.
5164         (Make_Inline): the pragma is effective if it applies to an internally
5165         generated subprogram declaration for a body that carries the pragma.
5166         (Analyze_Pragma, case Optimize_Alignment): Set new flag
5167         Optimize_Alignment_Local.
5168         (Analyze_PPC_In_Decl_Part): New procedure
5169         (Get_Pragma_Arg): Moved to outer level
5170         (Check_Precondition_Postcondition): Change to allow new visibility
5171         rules for package spec
5172         (Analyze_Pragma, case Check_Policy): Change placement rules to be
5173         same as pragma Suppress/Unsuppress.
5174         Change name In_Default_Expression      => In_Spec_Expression
5175         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5176         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5177         (Check_Precondition_Postcondition): Do proper visibility preanalysis
5178         for the case of these pragmas appearing in the spec.
5179         (Check_Enabled): New function
5180         (Initialize): New procedure
5181         (Tree_Read): New procedure
5182         (Tree_Write): New procedure
5183         (Check_Precondition_Postcondition): New procedure
5184         Implement pragmas Check and Check_Policy
5185         Merge Assert processing with Check
5186
5187         * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
5188         New warning flag -gnatw.e
5189
5190         * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
5191         returning whether a task (or main procedure) has a pragma
5192         Relative_Deadline.
5193         (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
5194         (or main procedure) has a pragma Relative_Deadline.
5195         Add Next_Pragma field to N_Pragma node
5196         (PPC_Enabled): New flag
5197         (Next_Pragma): Now used for Pre/Postcondition processing
5198
5199         * snames.h, snames.ads, snames.adb: New standard name
5200         Inherit_Source_Path
5201         Add entry for 'Invalid_Value attribute
5202         Add entry for new attribute Has_Tagged_Values
5203         Add entry for Enum_Val attribute
5204         Add new standard names Aggregate, Configuration and Library.
5205         Add _Postconditions
5206         Add _Result
5207         Add Pragma_Precondition
5208         Add Pragma_Postcondition
5209         Add Attribute_Result
5210         New standard name Archive_Builder_Append_Option
5211         (Preset_Names): Add _relative_deadline and relative_deadline definitions
5212         There was also a missing non_preemptive_within_priorities.
5213         (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
5214         Relative_Deadline.
5215         Add support for pragmas Check and Check_Policy
5216
5217         * tree_gen.adb: Call Sem_Aux.Tree_Write
5218
5219         * tree_in.adb: Call Sem_Aux.Tree_Read
5220
5221         * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
5222         sequence
5223
5224         * exp_intr.adb (Expand_Source_Info): New Build_Location calling
5225         sequence
5226
5227         * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
5228         (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
5229         Relative_Deadline.
5230         (Expand_Pragma_Check): New procedure
5231
5232         * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
5233         buffer.
5234
5235         * sinfo.adb (PPC_Enabled): New flag
5236
5237 2008-04-08  Robert Dewar  <dewar@adacore.com>
5238             Gary Dismukes  <dismukes@adacore.com>
5239             Javier Miranda  <miranda@adacore.com>
5240             Ed Schonberg  <schonberg@adacore.com>
5241
5242         * fe.h: Remove global Optimize_Alignment flag, no longer used
5243
5244         * layout.adb: Test Optimize_Alignment flags rather than global switch
5245
5246         * lib.ads, lib.adb: New OA_Setting field in library record
5247
5248         * lib-load.adb: New OA_Setting field in library record
5249
5250         * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
5251         units mentioned in limited_with_ clauses in the ali file, with an
5252         'Y' marker.
5253         New Ox fields in U line
5254
5255         * opt.adb: New flag Optimize_Alignment_Local
5256         (Check_Policy_List[_Config]): New flags
5257
5258         * opt.ads (Invalid_Value_Used): New flag
5259         New switch Optimize_Alignment_Local
5260         (Warn_On_Parameter_Order): New flag
5261         (Check_Policy_List[_Config]): New flags
5262
5263         * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
5264         limited_with clauses.
5265         New data structures for Optimize_Alignment
5266
5267         * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
5268         New procedure
5269         (Check_Consistent_Optimize_Alignment): Rework for new structure
5270         (Check_Consistent_Restrictions): Fix incorrect error message
5271
5272         sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
5273         created class-wide type (to the Parent field of the specific type).
5274         (Install_Siblings): Handle properly private_with_clauses on subprogram
5275         bodies and on generic units.
5276         (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
5277         illegal limited_with_clause that names a non-existent package.
5278         (Check_Body_Required): Determine whether a unit named a limited_with
5279         clause needs a body.
5280         (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
5281         Capture Optimize_Alignment settings to set new OA_Setting field in
5282         library record.
5283         (Build_Limited_Views): Include task and protected type declarations.
5284
5285         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
5286         case of a possible constant redeclaration where the current object is
5287         an entry index constant.
5288         (Analyze_Object_Declaration): Generate an error in case of CPP
5289         class-wide object initialization.
5290         (Analyze_Object_Declaration): Add extra information on warnings for
5291         declaration of unconstrained objects.
5292         (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
5293         conflicts with the setting of Stored_Constraint in the case where the
5294         access type entity has already been created as an E_Incomplete_Type due
5295         to a limited with clause.
5296         Use new Is_Standard_Character_Type predicate
5297         (Analyze_Object_Declaration): Apply access_constant check only after
5298         expression has been resolved, given that it may be overloaded with
5299         several access types.
5300         (Constant_Redeclaration): Additional legality checks for deferred
5301         constant declarations tha involve anonymous access types and/or null
5302         exclusion indicators.
5303         (Analyze_Type_Declaration): Set Optimize_Alignment flags
5304         (Analyze_Subtype_Declaration): Ditto
5305         (Analyze_Object_Declaration): Ditto
5306         (Analyze_Object_Declaration): Don't count tasks in generics
5307         Change name In_Default_Expression      => In_Spec_Expression
5308         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5309         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5310         (Process_Discriminants): Additional check for illegal use of default
5311         expressions in access discriminant specifications in a type that is not
5312         explicitly limited.
5313         (Check_Abstract_Overriding): If an inherited function dispaches on an
5314         access result, it must be overridden, even if the type is a null
5315         extension.
5316         (Derive_Subprogram): The formals of the derived subprogram have the
5317         names and defaults of the parent subprogram, even if the type is
5318         obtained from the actual subprogram.
5319         (Derive_Subprogram): In the presence of interfaces, a formal of an
5320         inherited operation has the derived type not only if it descends from
5321         the type of the formal of the parent operation, but also if it
5322         implements it. This is relevant for the renamings created for the
5323         primitive operations of the actual for a formal derived type.
5324         (Is_Progenitor): New predicate, to determine whether the type of a
5325         formal in the parent operation must be replaced by the derived type.
5326
5327         * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
5328         predicate recursive to handle components that have a user-defined
5329         Initialize procedure. Handle controlled derived types whose ancestor
5330         has a user-defined Initialize procedured.
5331         (Note_Possible_Modification): Add Sure parameter, generate warning if
5332         sure modification of constant
5333         Use new Is_Standard_Character_Type predicate
5334         (Find_Parameter_Type): when determining whether a protected operation
5335         implements an interface operation, retrieve the type of the formal from
5336         the entity when the formal is an access parameter or an
5337         anonymous-access-to-subprogram.
5338         Move Copy_Parameter_List to sem_util, for use when building stubbed
5339         subprogram bodies.
5340         (Has_Access_Values): Tagged types now return False
5341         (Within_HSS_Or_If): New procedure
5342         (Set_Optimize_Alignment_Flags): New procedure
5343         Change name In_Default_Expression      => In_Spec_Expression
5344         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5345         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5346
5347 2008-04-08  Tristan Gingold  <gingold@adacore.com>
5348
5349         * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
5350
5351 2008-04-08  Tristan Gingold  <gingold@adacore.com>
5352
5353 PR ada/10768
5354
5355         * cuintp.c: Fix 16 bits issue for AVR.
5356         On AVR, integer is 16 bits, so it can't be used to do math with
5357         Base (=32768).
5358         So use long_integer instead.
5359
5360 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
5361
5362         * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
5363         System.OS_Primitives.
5364         Change type of various constants, parameters and local variables from
5365         Time to representation type OS_Time.
5366         (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
5367         Remove the declaration of constant Mili_F from several routines. New
5368         body for internal package Conversions_Operations.
5369         (Time_Of): Add default parameters for several formals.
5370
5371         * a-caldel.adb: Minor reformatting
5372
5373         * a-calend.ads, a-calend.adb: New body for internal package
5374         Conversions_Operations.
5375         (Time_Of): Add default parameters for several formals.
5376
5377         * Makefile.rtl: Add a-ststop
5378         Add Ada.Calendar.Conversions to the list of runtime files.
5379         Add g-timsta
5380
5381         * a-calcon.adb, a-calcon.ads: New files.
5382
5383 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
5384             Tristan Gingold  <gingold@adacore.com>
5385
5386         * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
5387         (Install_Restricted_Handlers): New procedure
5388         which is a simplified version of Install_Handlers that does not store
5389         previously installed.
5390
5391         * s-interr-vxworks.adb: Fix ACATS cxc3001
5392         On VxWorks interrupts can't be detached.
5393         (Install_Restricted_Handlers): New procedure.
5394
5395         * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
5396         procedure.
5397
5398 2008-04-08  Olivier Hainque  <hainque@adacore.com>
5399
5400         * s-intman-vxworks.ads, s-intman-vxworks.adb
5401         (Map_And_Raise_Exception): Remove. Was an import of only part of the
5402         required services already implemented elsewhere.
5403         (Notify_Exception): Delete body, import __gnat_error_handler instead.
5404         (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
5405         argument passed to the handler, which we need for ZCX propagation
5406         purposes.
5407
5408 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
5409
5410         * adaint.h, adaint.c (__gnat_current_time_string): New routine.
5411
5412         * g-timsta.adb, g-timsta.ads: New files.
5413
5414 2008-04-08  Robert Dewar  <dewar@adacore.com>
5415
5416         * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
5417         (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
5418         (Raise_Exception_Always): Fix documentation accordingly
5419
5420 2008-04-08  Robert Dewar  <dewar@adacore.com>
5421
5422         * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
5423         Stream_Convert)
5424
5425         * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
5426         FOnly
5427
5428 2008-04-08  Javier Miranda  <miranda@adacore.com>
5429             Robert Dewar  <dewar@adacore.com>
5430             Ed Schonberg  <schonberg@adacore.com>
5431
5432         * a-tags.adb (Register_Interface_Offset): New subprogram.
5433         (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
5434         (To_Predef_Prims_Table_Ptr): Removed.
5435         (Acc_Size): Removed.
5436         (To_Acc_Size): Removed.
5437         (Parent_Size): Modified to the call the subprogram returning the size of
5438         the parent by means of the new TSD component Size_Func.
5439
5440         * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
5441         (DT_Offset_To_Top_Offset): New constant value that is used to generate
5442         code referencing the Offset_To_Top component of the dispatch table's
5443         prologue.
5444         (Prim_Ptr): New declaration of access to procedure. Used to avoid the
5445         use of 'address to initialize dispatch table slots.
5446         (Size_Func): New component of the TSD. Used by the run-time to call the
5447         size primitive of the tagged type.
5448
5449         * checks.adb (Apply_Access_Check): Avoid check when accessing the
5450         Offset_To_Top component of a dispatch table.
5451         (Null_Exclusion_Static_Checks): If the non-null access type appears in a
5452         deferred constant declaration. do not add a null expression, to prevent
5453         spurious errors when full declaration is analyzed.
5454         (Apply_Discriminant_Check): If both discriminant constraints share a
5455         node which is not static but has no side effects, do not generate a
5456         check for that discriminant.
5457         (Generate_Index_Checks): Set Name_Req to true in call to duplicate
5458         subexpr, since the prefix of an attribute is a name.
5459
5460         * checks.ads: Fix nit in comment.
5461
5462         * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
5463         and body of predefined primitives in case of CPP tagged type
5464         derivations.
5465         (Freeze_Type): Deal properly with no storage pool case
5466         (Make_Predefined_Primitive_Specs): Generate specification of abstract
5467         primitive Deep_Adjust if a nonlimited interface is derived from a
5468         limited interface.
5469         (Build_Dcheck_Functions): Create discriminant-checking functions only
5470         for variants that have some component(s).
5471         (Build_Slice_Assignment): In expanded code for slice assignment, handle
5472         properly the case where the slice bounds extend to the last value of the
5473         underlying representation.
5474         (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
5475         (Is_Variable_Size_Record): An array component has a static size if
5476         index bounds are enumeration literals.
5477
5478         * exp_disp.adb (Make_DT): Use the first subtype to determine whether
5479         an external tag has been specified for the type.
5480         (Building_Static_DT): Add missing support for private types.
5481         (Make_DT): Add declaration of Parent_Typ to ensure consistent access
5482         to the entity associated with the parent of Typ. This is done to
5483         avoid wrong access when the parent is a private type.
5484         (Expand_Interface_Conversion): Improve error message when the
5485         configurable runtime has no support for dynamic interface conversion.
5486         (Expand_Interface_Thunk): Add missing support to interface types in
5487         configurable runtime.
5488         (Expand_Dispatching_Call): remove obsolete code.
5489         (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
5490         ensure that all subtypes and aggregates associated with dispatch
5491         tables have the attribute Is_Dispatch_Table_Entity set to true.
5492         (Register_Primitive): Rename one variable to improve code reading.
5493         Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
5494         of the pointer to the 'size primitive in the TSD.
5495
5496         * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
5497         (RE_Offset_To_Top_Ptr): New entity.
5498         (RE_Register_Interface_Offset): New entity.
5499         (RE_Set_Dynamic_Offset_To_Top): New entity.
5500         (RE_Set_Offset_To_Top): Removed entity.
5501         (RE_Prim_Ptr): New entity
5502         (RE_Size_Func): New entity
5503         (RE_Size_Ptr): New entity
5504         (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
5505         (Ada_Dispatching_Child): Define this new subrange.
5506         (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
5507          RE_Time_Span, and RE_Time_Span_Zero).
5508         (RE_Unit_Table): Add new required run-time calls
5509
5510         * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
5511         children.
5512
5513         * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
5514         (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
5515          initializes the Offset_To_Top component of a dispatch table.
5516         (Build_Predef_Prims): Removed.
5517         (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
5518          its actual code.
5519         (Build_Set_Size_Function): New subprogram.
5520
5521         * exp_ch13.adb: Do not generate storage variable for storage_size zero
5522         (Expand): Handle setting/restoring flag Inside_Freezing_Actions
5523
5524 2008-04-08  Robert Dewar  <dewar@adacore.com>
5525
5526         * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
5527         computing Fore when Exp > 0
5528
5529 2008-04-08  Robert Dewar  <dewar@adacore.com>
5530
5531         * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
5532
5533         * errout.adb: Remove Big_String_Ptr declarations (now in Types)
5534         Change name Is_Style_Msg to Is_Style_Or_Info_Msg
5535
5536         * fmap.adb: Remove Big_String declarations (now in Types)
5537         (No_Mapping_File): New Boolean global variable
5538         (Initialize): When mapping file cannot be read, set No_Mapping_File to
5539         False.
5540         (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
5541         tables were empty before adding entries, open the mapping file
5542         with Truncate = True, instead of delete/re-create.
5543
5544         * fname-sf.adb: Remove Big_String declarations (now in Types)
5545
5546         * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
5547         s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
5548         big pointer types
5549
5550         * table.ads: Add for Table_Ptr'Storage_Size use 0
5551
5552         * types.ads: Add Big_String declarations
5553         Add Size_Clause of zero for big pointer types
5554
5555 2008-04-08  Vincent Celier  <celier@adacore.com>
5556
5557         * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
5558         (Usage): Add line for switch --subdirs=
5559         Add new switch -eL, to follow symbolic links when processing project
5560         files.
5561
5562         * gnatcmd.adb: Process switches -eL and --subdirs=
5563         (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
5564         Program_Name to get proper tool names when AAMP_On_Target is set.
5565         (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
5566         AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
5567         Osint.Program_Name).
5568
5569         * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
5570         (Usage): Add lines for switches -eL and --subdirs=
5571
5572         * makeusg.adb: Add line for switch --subdirs=
5573
5574         * prj.ads:
5575         (Source_Data): New Boolean component Compiled, defaulted to True
5576         (Empty_File_Name: New global variable in private part, initialized in
5577         procedure Initialize.
5578         (Subdirs_Option): New constant string
5579         (Subdirs): New String_Ptr global variable
5580         (Language_Config): New component Include_Compatible_Languages
5581         (Project_Qualifier): New type for project qualifiers
5582         (Project_Data): New component Qualifier
5583         (Project_Configuration): New component Archive_Builder_Append_Option
5584
5585         * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
5586         another imported project indicate the name of this imported project.
5587         (Check_File): When a unit is in two project files, indicate the project
5588         names and the paths of the source files for each project.
5589         (Add_Source): Set Compiled to False if compiler driver is empty. Only
5590         set object, dependency and switches file names if Compiled is True.
5591         (Process_Compiler): Allow the empty string for value of attribute Driver
5592         (Get_Directories): When Subdirs is not null and Object_Dir is not
5593          specified, locate and create if necessary the actual object dir.
5594         (Locate_Directory): When Subdirs is not empty and Create is not the
5595         empty string, locate and create if necessary the actual directory
5596         as a subdirectory of directory Name.
5597         (Check_Library_Attributes.Check_Library): Allow a project where the only
5598         "sources" are header files of file based languages to be imported by
5599         library projects, in multi-language mode (gprbuild).
5600         (Check_Library_Attributes.Check_Library): In multi-language mode
5601         (gprbuild), allow a library project to import a project with no
5602         sources, even when this is not declared explicitly.
5603         (Check_If_Externally_Built): A virtual project extending an externally
5604         built project is also externally built.
5605         (Check_Library_Attributes): For a virtual project extending a library
5606         project, inherit the library directory.
5607         (Process_Project_Level_Array_Attributes): Process new attribute
5608         Inherit_Source_Path.
5609         For projects with specified qualifiers "standard", "library" or
5610         "abstract", check that the project conforms to the qualifier.
5611         (Process_Project_Level_Simple_Attributes): Process new attribute
5612          Archive_Builder_Append_Option.
5613
5614         * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
5615         (Normalize_Compiler_Switches): Only keep compiler switches that are
5616         passed to gnat1 by the gcc driver and that are stored in the ALI file
5617         by gnat1.
5618         Do not take into account switc -save-temps
5619
5620         * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
5621         gprmake is called with -eL.
5622         (Scan_Arg): Recognize switch -eL
5623         (Usage): Add line for switch -eL
5624
5625         * prj.adb (Initialize): Initialize Empty_File_Name
5626         (Project_Empty): New component Qualifier
5627
5628         * prj-attr.ads, prj-attr.adb: New project level attribute
5629         Inherit_Source_Path.
5630         New project level attribute Archive_Builder_Append_Option
5631
5632         * prj-dect.adb: Replace System.Strings by GNAT.Strings.
5633
5634         * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
5635         <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
5636         upward compatibility.
5637
5638         * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
5639         each Trying ..." on different lines.
5640         (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
5641         is "configuration" when not in configuration. Fail when in configuration
5642         when a specified qualifier is other than "configuration".
5643
5644         * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
5645         full associative array together.
5646         (Recursive_Process): Put the project qualifier in the project data
5647
5648         * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
5649         (Set_Project_Qualifier_Of): New procedure
5650
5651 2008-04-08  Robert Dewar  <dewar@adacore.com>
5652
5653         * errout.ads: Update comments for new handling of info: messages
5654
5655         * erroutc.adb (Matches): New procedure
5656         (Warning_Specifically_Suppressed): Modified to handle multiple * chars
5657         (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
5658          info messages as well as style messages.
5659
5660         * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
5661
5662         * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
5663         subprograms.
5664         (Check_A_Call): Special "info: " warnings now have ? in the text
5665         (Elab_Warning): Use info message in static case
5666
5667 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
5668
5669         * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
5670         whether an array aggregate with static bounds and scalar components
5671         should be expanded into a static constant.
5672
5673 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
5674             Ed Schonberg  <schonberg@adacore.com>
5675             Robert Dewar  <dewar@adacore.com>
5676
5677         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
5678         Has_Stream_Attribute_ Definition when checking for available stream
5679         attributes on parameters of a limited type in Ada 2005. Necessary for
5680         proper recognition of visible stream attribute clauses.
5681         (Has_Stream_Attribute_Definition): If the type is derived from a
5682         private type, then use the derived type's underlying type for checking
5683         whether it has stream attributes.
5684         (Validate_Object_Declaration): The check for a user-defined Initialize
5685         procedure applies also to types with controlled components or a
5686         controlled ancestor.
5687         Reject an object declaration in a preelaborated unit if the type is a
5688         controlled type with an overriding Initialize procedure.
5689         (Validate_Remote_Access_To_Class_Wide_Type): Return without further
5690         checking when the parent of a dereference is a selected component and
5691         the name has not been analyzed.
5692
5693         * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
5694         prefixes that are invalid explicit dereferences of remote
5695         access-to-class-wide values, first checking whether the selected
5696         component is a prefixed form of call to a tagged operation.
5697         (Analyze_Call): Remove code that issues an error for limited function
5698         calls in illegal contexts, as we now support all of the contexts that
5699         were forbidden here.
5700         Allow a function call that returns a task.and appears as the
5701         prefix of a selected component.
5702         (Analyze_Reference): Give error message if we try to make a 'Reference
5703         for an object that is atomic/aliased without its type having the
5704         corresponding attribute.
5705         (Analyze_Call): Remove condition checking for attributes to allow
5706         calls to functions with inherently limited results as prefixes of
5707         attributes. Remove related comment about Class attributes.
5708         (Analyze_Selected_Component): If the prefix is a remote type, check
5709         whether this is a prefixed call before reporting an error.
5710         (Complete_Object_Operation): If the controlling formal is an access to
5711         variable reject an actual that is a constant or an access to one.
5712         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
5713         primitive operations from base type.
5714
5715         * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
5716         build-in-place
5717         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
5718         (Expand_N_Selected_Component): Test for prefix that is a build-in-place
5719         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
5720         (Expand_N_Slice): Test for prefix that is a build-in-place function call
5721         and call Make_Build_In_Place_Call_In_Anonymous_Context.
5722         (Analyze_Call): Remove code that issues an error for limited function
5723         calls in illegal contexts, as we now support all of the contexts that
5724         were forbidden here.
5725         New calling sequence for Get_Simple_Init_Val
5726         (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
5727         (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
5728
5729 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
5730             Ed Schonberg  <schonberg@adacore.com>
5731             Robert Dewar  <dewar@adacore.com>
5732
5733         * exp_ch2.adb: Minor reformatting.
5734         (Expand_Entry_Index_Parameter): Set the type of the identifier.
5735         (Expand_Entry_Reference): Add call to Expand_Protected_Component.
5736         (Expand_Protected_Component): New routine.
5737         (Expand_Protected_Private): Removed.
5738         Add Sure parameter to Note_Possible_Modification calls
5739
5740         * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
5741         generated subprogram declaration must inherit the overriding indicator
5742         from the instantiation node.
5743         (Validate_Access_Type_Instance): If the designated type of the actual is
5744         a limited view, use the available view in all cases, not only if the
5745         type is an incomplete type.
5746         (Instantiate_Object):  Actual is illegal if the formal is null-excluding
5747         and the actual subtype does not exclude null.
5748         (Process_Default): Handle properly abstract formal subprograms.
5749         (Check_Formal_Package_Instance): Handle properly defaulted formal
5750         subprograms in a partially parameterized formal package.
5751         Add Sure parameter to Note_Possible_Modification calls
5752         (Validate_Derived_Type_Instance): if the formal is non-limited, the
5753         actual cannot be limited.
5754         (Collect_Previous_Instances): Generate instance bodies for subprograms
5755         as well.
5756
5757         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
5758         try to set RM_Size.
5759         Add Sure parameter to Note_Possible_Modification calls
5760         (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
5761         (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
5762         constant overlaid by variable and issue warning.
5763         Use new Is_Standard_Character_Type predicate
5764         (Analyze_Record_Representation_Clause): Check that the specified
5765         Last_Bit is not less than First_Bit - 1.
5766         (Analyze_Attribute_Definition_Clause, case Address): Check for
5767         self-referential address clause
5768
5769         * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
5770         detection mechanism when the lhs is a prival.
5771         (Analyze_Assignment): Call Check_Unprotected_Access to detect
5772         assignment of a pointer to protected data, to an object declared
5773         outside of the protected object.
5774         (Analyze_Loop_Statement): Check for unreachable code after loop
5775         Add Sure parameter to Note_Possible_Modication calls
5776         Protect analysis from previous syntax error such as a scope mismatch
5777         or a missing begin.
5778         (Analyze_Assignment_Statement): The assignment is illegal if the
5779         left-hand is an interface.
5780
5781         * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
5782         violation of restriction No_Implicit_Conditionals
5783         Add Sure parameter to Note_Possible_Modication calls
5784         Use new Is_Standard_Character_Type predicate
5785         (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
5786         call as operator. Fixes problems (e.g. validity checking) which
5787         come from the result looking as though it does not come from source).
5788         (Resolve_Call): Check case of name in named parameter if style checks
5789         are enabled.
5790         (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
5791         from the checking that such calls should not occur from an entry body.
5792         (Resolve_Call): If the return type of an Inline_Always function
5793         requires the secondary stack, create a transient scope for the call
5794         if the body of the function is not available for inlining.
5795         (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
5796         that are actuals for in-out formals.
5797         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
5798         primitive operations from base type.
5799         (Analyze_Selected_Component): If the context is a call to a protected
5800         operation the parent may be an indexed component prior to expansion.
5801         (Resolve_Actuals): If an actual is of a protected subtype, use its
5802         base type to determine whether a conversion to the corresponding record
5803         is needed.
5804         (Resolve_Short_Circuit): Handle pragma Check
5805
5806         * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
5807         Use new Is_Standard_Character_Type predicate
5808         (Eval_Relational_Op): Catch more cases of string comparison
5809
5810 2008-04-08  Robert Dewar  <dewar@adacore.com>
5811             Gary Dismukes  <dismukes@adacore.com>
5812
5813         * s-rident.ads: Add No_Default_Initialization restriction
5814
5815         * exp_tss.adb:
5816         (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
5817         (Set_TSS): Handle No_Default_Initialization case
5818
5819         * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
5820         No_Default_Initialization
5821         (Expand_N_Subprogram_Body): Remove redundant initialization of out
5822         parameters when Normalize_Scalars is active.
5823         (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
5824         Fix casing error in formal parameter name in call
5825         (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
5826         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
5827         dispatching call on VM targets.
5828
5829 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
5830             Thomas Quinot  <quinot@adacore.com>
5831
5832         * exp_ch7.adb (Find_Final_List): Change the test for generating a
5833         selected component from an access type's Associated_Final_Chain to
5834         check for the presence of that field, rather than assuming it exists
5835         for all named access types.
5836         (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
5837         procedure to call at the end of the generated cleanup procedure.
5838         (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
5839         and an At_End_Proc already exists in the handled sequence of statements
5840         for which cleanup actions are being expanded, the original cleanup
5841         action must be preserved.
5842
5843 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
5844             Ed Schonberg  <schonberg@adacore.com>
5845             Robert Dewar  <dewar@adacore.com>
5846             Gary Dismukes  <dismukes@adacore.com>
5847
5848         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
5849         Build_Unprotected_Subprogram_Body): Generate debug info for
5850         declarations related to the handling of private data in task and
5851         protected types.
5852         (Debug_Private_Data_Declarations): New subprogram.
5853         (Install_Private_Data_Declarations): Remove all debug info flagging.
5854         This is now done by Debug_Private_Data_Declarations at the correct
5855         stage of expansion.
5856         (Build_Simple_Entry_Call): If the task name is a function call, expand
5857         the prefix into an object declaration, and make the surrounding block a
5858         task master.
5859         (Build_Master_Entity): An internal block is a master if it wraps a call.
5860         Code reformatting, update comments. Code clean up.
5861         (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
5862         (Replicate_Entry_Formals): If the formal is an access parameter or
5863         anonymous access to subprogram, copy the original tree to create new
5864         entities for the formals of the subprogram.
5865         (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
5866         for tasks to store the value passed using pragma Relative_Deadline.
5867         (Make_Task_Create_Call): Add the Relative_Deadline argument to the
5868         run-time call to create a task.
5869         (Build_Wrapper_Spec): If the controlling argument of the interface
5870         operation is an access parameter with a non-null indicator, use the
5871         non-null indicator on the wrapper.
5872
5873         * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
5874         present, which it may not be in the case where the type entity is an
5875         incomplete view brought in by a limited with.
5876         (Analyze_Task_Type): Only retrieve the full view when present, which it
5877         may not be in the case where the type entity is an incomplete view brought
5878         in by a limited with.
5879         (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
5880         private components of a protected type, to prevent the generation of freeze
5881         nodes for which there is no proper scope of elaboration.
5882
5883         * exp_util.ads, exp_util.adb
5884         (Remove_Side_Effects): If the expression is a function call that returns a
5885         task, expand into a declaration to invoke the build_in_place machinery.
5886         (Find_Protection_Object): New routine.
5887         (Remove_Side_Effects): Also make a copy of the value
5888         for attributes whose result is of an elementary type.
5889         (Silly_Boolean_Array_Not_Test): New procedure
5890         (Silly_Boolean_Array_Xor_Test): New procedure
5891         (Is_Volatile_Reference): New function
5892         (Remove_Side_Effects): Use Is_Volatile_Reference
5893         (Possible_Bit_Aligned_Component): Handle slice case properly
5894
5895         * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
5896         case test to Exp_Util
5897         (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
5898
5899 2008-04-08  Thomas Quinot  <quinot@adacore.com>
5900
5901         * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
5902         in call
5903         (Add_RACW_Features): When processing an RACW in another unit than the
5904         main unit, set Body_Decls to No_List to indicate that the bodies of
5905         the type's TSS must not be generated.
5906         (GARLIC_Support.Add_RACW_Read_Attribute,
5907         GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
5908         Body_Decls is No_List.
5909         (PolyORB_Support.Add_RACW_Read_Attribute,
5910         PolyORB_Support.Add_RACW_Write_Attribute,
5911         PolyORB_Support.Add_RACW_From_Any,
5912         PolyORB_Support.Add_RACW_To_Any,
5913         PolyORB_Support.Add_RACW_TypeCode): Same.
5914         (Transmit_As_Unconstrained): New function.
5915         (Build_Ordered_Parameters_List): Use the above to order parameters.
5916         (GARLIC_Support.Build_General_Calling_Stubs):
5917         Use the above to determine which parameters to unmarshall using 'Input
5918         at the point where their temporary is declared (as opposed to later on
5919         with a 'Read call).
5920         (PolyORB_Support.Build_General_Calling_Stubs):
5921         Use the above to determine which parameters to unmarshall using From_Any
5922         at the point where their temporary is declared (as opposed to later on
5923         with an assignment).
5924
5925 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
5926
5927         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
5928         an Input function for an access type, do not perform default
5929         initialization on the local variable that receives the value, to
5930         prevent spurious warnings when the type is null-excluding.
5931
5932 2008-04-08  Robert Dewar  <dewar@adacore.com>
5933             Ed Schonberg  <schonberg@adacore.com>
5934
5935         * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
5936         units.
5937         (Size_Known): Generic formal scalar types have known at compile
5938         time size, so remove check.
5939         Fix casing error in formal parameter name in call
5940         (Freeze_Subprogram): If the subprogram is a user-defined operator,
5941         recheck its overriding indication.
5942
5943 2008-04-08  Vincent Celier  <celier@adacore.com>
5944
5945         * gnat1drv.adb: Send all messages indicating an error to standard error
5946
5947 2008-04-08  Robert Dewar  <dewar@adacore.com>
5948
5949         * gnatbind.adb (Restriction_Could_Be_Set): New procedure
5950         (List_Applicable_Restrictions): Do not list existing restrictions
5951
5952 2008-04-08  Thomas Quinot  <quinot@adacore.com>
5953
5954         * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
5955         add a pointer to generic sockets literature
5956         do not mention that the given example is "typical" usage.
5957         Remove obsolete comment about multicast not being supported on Windows.
5958         (Connect_Socket): Make Server mode IN rather than IN OUT
5959         since this formal is never modified.
5960
5961 2008-04-08  Robert Dewar  <dewar@adacore.com>
5962
5963         * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
5964         the declaration for some different entity.
5965         (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
5966         list is precent (following the parent subtype indication), display
5967         appropriate "and" keyword.
5968
5969         * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
5970         Remove unnecessary calls to Init_Size_Align and Init_Esize.
5971         Add notes on use of Parent field of an Itype
5972
5973 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
5974             Robert Dewar  <dewar@adacore.com>
5975             Gary Dismukes  <dismukes@adacore.com>
5976
5977         * lib-xref.adb (Is_On_LHS): Remove dead code
5978         (Output_Overriden_Op): If the overridden operation is itself inherited,
5979         list the ancestor operation, which is the one whose body or absstract
5980         specification is actually being overridden. For source navigation
5981         purposes.
5982
5983         * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
5984         operation is primitive for the type.
5985         (Declare_Inherited_Private_Subprograms): If the new operation overrides
5986         an inherited private subprogram, set properly the Overridden_Operation
5987         attribute, for better cross-reference information.
5988         (Analyze_Package_Specification): Do late analysis of spec PPCs
5989         (Install_Private_Declaration, Uninstall_Declarations): Save/restore
5990         properly the full view and underlying full views of a private type in a
5991         child unit, whose full view is derived from a private type in a parent
5992         unit, and whose own full view becomes visible in the child body.
5993
5994         * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
5995         primitive operation after the type has been frozen, add an explicit
5996         reference to the type and the operation, because other primitive
5997         references have been emitted already.
5998         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
5999         dispatching call on VM targets.
6000
6001 2008-04-08  Vincent Celier  <celier@adacore.com>
6002             Thomas Quinot  <quinot@adacore.com>
6003
6004         * make.adb: (Gnatmake_Called): Remove, no longer necessary
6005         (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
6006         is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
6007         (Insert_Project_Sources): Take into account index in multi-unit source
6008         files.
6009         After building a library project, delete all temporary files.
6010         (Initialize): Reset current output after parsing project file.
6011         (Collect_Arguments_And_Compile): Never insert in the queue the sources
6012         of library projects that are externally built.
6013         Put file name in error and inform messages if -df is used
6014         (Display): If invoked with -d7, do not display path names, but only
6015         file names.
6016
6017         * makeutl.ads (Path_Or_File_Name): New function
6018         (Path_Or_File_Name): New function
6019
6020 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
6021
6022         * Make-lang.in: Disable warnings during first stage of bootstrap
6023         Get rid of gnatbl.
6024         Update dependencies.
6025
6026 2008-04-08  Vincent Celier  <celier@adacore.com>
6027
6028         * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
6029         case to decide if ALI object file is included in library.
6030         (Build_Library): Never attempt to build a library if the project is
6031         externally built.
6032
6033 2008-04-08  Thomas Quinot  <quinot@adacore.com>
6034
6035         * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
6036         (No_List) is defined to return Empty.
6037
6038 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
6039
6040         * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
6041         documentation.
6042         Update comments.
6043         (Read_Default_Search_Dirs): Do not consider spaces as path separators
6044         because spaces may be part of legal paths.
6045
6046 2008-04-08  Robert Dewar  <dewar@adacore.com>
6047
6048         * par-ch11.adb (P_Exception_Handler): Check indentation level for
6049         handler
6050
6051 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6052
6053         * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
6054         in a type declaration, if this is not an interface declaration or
6055         private type extension.
6056
6057 2008-04-08  Vincent Celier  <celier@adacore.com>
6058
6059         * prj-util.adb (Executable_Of): New String parameter Language. When
6060         Ada_Main is False and Language is not empty, attempt to remove the body
6061         suffix or the spec suffix of the language to get the base of the
6062         executable file name.
6063         (Put): New Boolean parameter Lower_Case, defauilted to False. When
6064         Lower_Case is True, put the value in lower case in the name list.
6065         (Executable_Of): If there is no executable suffix in the configuration,
6066         then do not modify Executable_Extension_On_Target.
6067
6068         * prj-util.ads (Executable_Of): New String parameter Language,
6069         defaulted to the empty string.
6070         (Put): New Boolean parameter Lower_Case, defauilted to False
6071
6072 2008-04-08  Robert Dewar  <dewar@adacore.com>
6073
6074         * scng.adb (Scan_Identifier): Handle case of identifier starting with
6075         wide character using UTF-8 encoding.
6076
6077 2008-04-08  Javier Miranda  <miranda@adacore.com>
6078
6079         * sem.adb (Analyze): Consider case in which we analyze an empty node
6080         that was generated by a call to a runtime function that is not
6081         available under the configurable runtime.
6082
6083         * sem.ads (Inside_Freezing_Actions): New flag.
6084         (Save_Check_Policy_List): New field in scope stack entry
6085
6086 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6087             Robert Dewar  <dewar@adacore.com>
6088
6089         * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
6090         the ancestor part of an extension aggregate for a limited type.
6091         (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
6092         enumeration index bounds.
6093         (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
6094         when array is too short.
6095         (Check_Expr_OK_In_Limited_Aggregate): Move function
6096         Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
6097         change name).
6098         (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
6099         Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
6100         component associations.
6101         (Check_Non_Limited_Type): Moved to outer level and renamed.
6102         (Resolve_Record_Aggregate): In an extension aggregate, an association
6103         with a box initialization can only designate a component of the
6104         extension, not a component inherited from the given ancestor
6105
6106         * sem_case.adb: Use new Is_Standard_Character_Type predicate
6107
6108 2008-04-08  Robert Dewar  <dewar@adacore.com>
6109
6110         * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
6111         negative scale
6112         (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
6113         Properly handle case where Aft > Scale and input number is less than
6114         one.
6115
6116 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
6117
6118         * s-stoele.ads, s-soflin.ads: Move the location of
6119         Dummy_Communication_Block from System.Storage_Elements to
6120         System.Soft_Links.
6121
6122         * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
6123         emulate Communication_Block in certain scenarios.
6124
6125 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
6126
6127         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
6128         subprogram.
6129         Add new subtype S_WWC, unchecked conversion routines From_WWC and
6130         To_WWC.
6131         (I_WWC, O_WWC): New routines for input and output of
6132         Wide_Wide_Character.
6133
6134 2008-04-08  Robert Dewar  <dewar@adacore.com>
6135
6136         * stringt.adb (Write_String_Table_Entry): Handle wide characters
6137         properly
6138
6139 2008-04-08  Robert Dewar  <dewar@adacore.com>
6140
6141         * styleg.adb (Check_Comment): Allow special char after -- in
6142         non-end-of-line case
6143
6144 2008-04-08  Robert Dewar  <dewar@adacore.com>
6145
6146         * stylesw.adb: Implement -gnaty + - y options
6147         (Set_GNAT_Style_Check_Options): Includ I in style check string
6148
6149         * stylesw.ads: Add comments for new style switch options
6150
6151 2008-04-08  Sergey Rybin  <rybin@adacore.com>
6152
6153         * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
6154         to the set of the GNAT components needed by ASIS.
6155
6156 2008-04-08  Bob Duff  <duff@adacore.com>
6157
6158         * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
6159
6160 2008-04-08  Tristan Gingold  <gingold@adacore.com>
6161
6162         * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
6163         Improve error message generation.
6164
6165 2008-04-08  Vincent Celier  <celier@adacore.com>
6166
6167         * a-direct.adb (Start_Search): Check for Name_Error before checking for
6168         Use_Error, as specified in the RM. Check if directory is open and raise
6169         Use_Error if it is not.
6170
6171 2008-04-08  Vincent Celier  <celier@adacore.com>
6172             Robert Dewar  <dewar@adacore.com>
6173
6174         * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
6175         AAMP_On_Target is set.
6176
6177         * vms_data.ads: Add NOxxx to style check switch list
6178         Add entry COMPONENTS for -gnatVe
6179         Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
6180         (/SUBDIRS=).
6181         (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
6182         Add qualifiers for gnatmetric coupling options
6183         Add note that -gnata enables all checks
6184         Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
6185         Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
6186         New warning flag -gnatw.e
6187
6188         * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
6189         Add entry for -gnatyN (forgotten before)
6190         Line for new warning switch -gnatw.p
6191         New warning flag -gnatw.e
6192
6193         * gnat_ugn.texi: Add documentation fpr project file switch -aP
6194         Document -gnaty - + y
6195         Replace occurences of "package specification" with "package spec"
6196         Define preprocessing symbols in documentation of gnatprep
6197         Clarify reason for distinguishing overflow checking
6198         Add documentation for project-aware tool switches -eL and --subdirs=
6199         Complete list of configuration pragmas
6200         Specify that, even when gnatmake switch -x is used, mains on the command
6201         line need to be sources of project files.
6202         Editing of gnatcheck/gnatmetric doc.
6203         Add documentation for -gnatw.p/-gnatw.P
6204         Add missing documentation for -fno-inline-functions.
6205         Add documentation for -gnatw.e
6206
6207         * gnat_rm.texi: Add documentation for No_Default_Initialization
6208         Replace occurences of "package specification" with "package spec"
6209         Document use of * in Warnings Off string
6210         Update documentation of alignment/component clauses.
6211         Add documentation for Invalid_Value
6212         Document new consistency rule for Optimize_Alignment
6213         Add documentation for Precondition and Postcondition pragmas
6214         Add documentation for Check and Check_Policy pragmas
6215         Document new Enum_Val attribute
6216         Remove requirement for static string in pragma Assert
6217         Add documentation on GNAT.Time_Stamp
6218
6219         * ug_words: add entry for -gnatVe
6220         Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
6221         Add entry for -gnatw.e
6222
6223         * debug.adb: Add missing documentation for d.a flag
6224         Document new -gnatd.a switch.
6225         Add documentation for new gnatmake debug switch -df
6226
6227 2008-04-08  Thomas Quinot  <quinot@adacore.com>
6228
6229         * gen-soccon.c: Bump year in copyright notices.
6230
6231         * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
6232
6233 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6234
6235         * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
6236         Minor reformatting.
6237
6238 2008-04-08  Robert Dewar  <dewar@adacore.com>
6239             Bob Duff  <duff@adacore.com>
6240
6241         * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
6242         Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
6243
6244         * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
6245
6246         * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
6247
6248         * g-trasym.ads: Minor comment improvements
6249
6250         * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
6251
6252         * a-sequio.ads, a-direio.ads: improve message for tagged type
6253
6254         * a-strunb.ads: Minor reformatting
6255
6256         * a-tifiio.adb: Minor reformatting
6257
6258         * atree.adb (Fix_Parents): Use clearer names for formals
6259         Cleanup and simplify code
6260         Use named notation in calls
6261
6262         * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
6263         confusing calls
6264
6265         * uintp.adb: Used named notation for some confusing calls
6266
6267         * bindusg.adb: Minor change in one line of output
6268
6269         * cstand.adb: Minor reformatting of src representation of Standard
6270
6271         * a-assert.ads: Add comment.
6272
6273         * g-decstr.adb: Fix bad indentation
6274
6275         * expander.ads, expander.adb: Code clean up.
6276
6277         * sem_dist.ads: Minor comment improvement
6278
6279         * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
6280         s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
6281
6282         * i-cstrin.adb: Fix casing error in formal parameter name in call
6283
6284 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6285
6286         * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
6287         mentioned in limited_with_clauses to do create semantic dependencies
6288         even though they appear in the ali file.
6289
6290 2008-04-08  Emmanuel Briot  <briot@adacore.com>
6291
6292         * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
6293         statement.
6294         (Get_Configuration): New subprogram.
6295
6296         * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
6297         These optional parameters help preserve the casing of the project's name
6298         when pretty-printing.
6299
6300 2008-04-08  Jerome Lambourg  <lambourg@adacore.com>
6301             Arnaud Charlet  <charlet@adacore.com>
6302
6303         * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
6304         then use __gnat_set_exit_status to report the returned status code.
6305
6306         * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
6307         messages on .NET, since some constructs of the language are not
6308         properly supported.
6309
6310         * gnatlink.adb (Gnatlink): In case the command line is too long for the
6311         .NET linker, gnatlink now concatenate all .il files and pass this to
6312         ilasm.
6313
6314 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
6315             Xavier Grave  <grave@ipno.in2p3.fr>
6316
6317         * Makefile.in: Add make ifeq define for mips/mipsel support.
6318         * g-soccon-linux-mips.ads, system-linux-mipsel.ads,
6319         system-linux-mips.ads: New files.
6320
6321 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
6322
6323         * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
6324         detect systems using GNU libc.
6325         * gsocket.h: ditto.
6326         * socket.c: ditto.
6327         * adaint.c: ditto.
6328         * link.c: ditto.
6329
6330 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
6331
6332         * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New
6333         constant constant for sysconf call.
6334         (bit_field): New packed boolean type used by cpu_set_t.
6335         (cpu_set_t): New type corresponding to the C type with
6336         the same name. Note that on the Ada side we use a bit
6337         field array for the affinity mask. There is not need
6338         for the C macro for setting individual bit.
6339         (pthread_setaffinity_np): New imported routine.
6340         * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
6341         on GNU/kFreeBSD.
6342
6343 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6344
6345         * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
6346
6347 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6348
6349         * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
6350         * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
6351         * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
6352         * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
6353         Return by Depressed Stack Pointer.
6354
6355 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6356
6357         * decl.c (is_variable_size): Do not unconditionally return false
6358         on non-strict alignment platforms.
6359
6360 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6361
6362         * decl.c (rest_of_type_decl_compilation_no_defer): New local function
6363         used to process all the variants of the specified type.
6364         (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
6365         types too.  Call rest_of_type_decl_compilation_no_defer if undeferring.
6366         (rest_of_type_decl_compilation): Likewise.
6367         * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
6368
6369 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6370
6371         * gigi.h (insert_block): Kill.
6372         * utils.c (insert_block): Kill.
6373
6374 2008-04-02  Eric Botcazou  <ebotcazou@adacore.com>
6375
6376         * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
6377         type has self-referential size, get the size from the initializing
6378         expression directly if it is also a constant whose nominal type
6379         has self-referential size.
6380
6381 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6382
6383         PR ada/33688
6384         * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
6385
6386         PR ada/33857
6387         * env.c: Always include crt_externs.h if __APPLE__ is defined.
6388         (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
6389
6390 2008-04-01  Andreas Jaeger  <aj@suse.de>
6391
6392         * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
6393         IP_PKTINFO.
6394
6395 2008-03-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6396
6397         * g-table.adb, g-tasloc.adb, g-traceb.ads,
6398         g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
6399         gnatbind.adb, gnatchop.adb, gnatcmd.adb,
6400         gnatcmd.ads, gnatdll.adb, gnatfind.adb,
6401         gnatlink.adb, gnatmem.adb, gprep.adb,
6402         i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
6403         i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
6404         layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
6405         lib-xref.ads, lib.adb, link.c, live.ads,
6406         make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
6407         mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
6408         misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
6409         mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
6410         namet.adb, namet.h, nlists.adb, nlists.ads,
6411         nlists.h, opt.ads, osint-b.ads, osint-c.adb,
6412         osint-c.ads, osint.adb, osint.ads, output.ads,
6413         par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
6414         par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
6415         par-endh.adb, par-labl.adb, par-prag.adb,
6416         par-sync.adb, par-tchk.adb, par-util.adb,
6417         par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
6418         prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
6419         prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
6420         prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
6421
6422 2008-03-31  Eric Botcazou  <ebotcazou@adacore.com>
6423
6424         * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
6425         size if it has overflowed.
6426
6427 2008-03-31  Olivier Hainque  <hainque@adacore.com>
6428             Eric Botcazou  <ebotcazou@adacore.com>
6429
6430         * utils2.c (find_common_type): Document assumption on t1/t2 vs
6431         lhs/rhs. Force use of lhs type if smaller, whatever the modes.
6432
6433 2008-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6434
6435         * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
6436         einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
6437         exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
6438         exp_pakd.ads, exp_prag.adb, exp_smem.adb,
6439         exp_tss.ads, exp_util.adb, exp_util.ads,
6440         exp_vfpt.adb, freeze.adb, freeze.ads,
6441         frontend.adb, g-alleve.adb, g-altcon.adb,
6442         g-altive.ads, g-alveop.ads, g-alvevi.ads,
6443         g-arrspl.adb, g-busorg.ads, g-calend.adb,
6444         g-calend.ads, g-casuti.ads, g-cgideb.adb,
6445         g-comlin.adb, g-comlin.ads, g-curexc.ads,
6446         g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
6447         g-dirope.adb, g-dirope.ads, g-dynhta.ads,
6448         g-dyntab.adb, g-encstr.ads, g-excact.ads,
6449         g-except.ads, g-expect.ads, g-heasor.adb,
6450         g-hesora.adb, g-hesorg.adb, g-htable.ads,
6451         g-locfil.ads, g-md5.adb, g-md5.ads,
6452         g-memdum.ads, g-moreex.ads, g-os_lib.adb,
6453         g-pehage.adb, g-pehage.ads, g-regexp.adb,
6454         g-regexp.ads, g-regpat.adb, g-regpat.ads,
6455         g-soccon-aix.ads, g-soccon-darwin.ads,
6456         g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
6457         g-soccon-hpux.ads, g-soccon-irix.ads,
6458         g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
6459         g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
6460         g-soccon-mingw.ads, g-soccon-solaris-64.ads,
6461         g-soccon-solaris.ads, g-soccon-tru64.ads,
6462         g-soccon-vms.ads, g-soccon-vxworks.ads,
6463         g-soccon.ads, g-socket.adb, g-socket.ads,
6464         g-socthi-mingw.adb, g-socthi-vms.adb,
6465         g-socthi-vxworks.adb, g-soliop-mingw.ads,
6466         g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
6467         g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
6468         typos.
6469
6470 2008-03-27  Eric Botcazou  <ebotcazou@adacore.com>
6471
6472         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
6473         if the procedure is imported.
6474
6475 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6476
6477         * adaint.c: Fix warnings.
6478
6479 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6480
6481         * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
6482
6483 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6484
6485         * a-witeio.adb: Fix problem with Current_Output (introduce Self).
6486         Fix problem of status check for null file
6487
6488 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6489
6490         * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
6491         s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
6492         s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
6493         i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
6494         s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
6495         comments.
6496
6497 2008-03-26  Thomas Quinot  <quinot@adacore.com>
6498
6499         PR ada/33688
6500         * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
6501         Get_Socket_Option): Add support for Receive_Packet_Info.
6502
6503         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
6504         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
6505         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
6506         g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
6507         g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
6508         new constants SO_REUSEPORT and IP_PKTINFO
6509
6510 2008-03-26  Robert Dewar  <dewar@adacore.com>
6511
6512         * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
6513         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
6514         a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
6515         a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
6516         a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
6517         a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
6518         s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
6519         s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
6520         a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
6521         s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
6522         s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
6523         s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
6524         s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
6525         s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
6526         s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
6527         s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
6528         s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
6529         s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
6530         s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
6531         s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
6532         a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
6533         a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
6534         s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
6535         s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
6536         s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
6537         s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
6538         s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
6539         a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
6540         a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
6541         s-tasloc.adb: Minor reformatting.
6542         Update comments.
6543         Remove "used for" sections from comments.
6544
6545 2008-03-26  Robert Dewar  <dewar@adacore.com>
6546
6547         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
6548         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
6549         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
6550         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
6551         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
6552         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
6553         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
6554         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
6555         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
6556         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
6557         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
6558         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
6559         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
6560         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
6561         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
6562         double spaced if it fits on one line and otherwise single spaced.
6563
6564 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6565
6566         * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
6567         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
6568         s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
6569         or task info if the thread could not be created.
6570
6571 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6572
6573         * gnatvsn.ads (Library_Version): Bump to 4.4.
6574         (Current_Year): Bump to 2008.
6575
6576 2008-03-26  Robert Dewar  <dewar@adacore.com>
6577
6578         * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
6579
6580         * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
6581
6582         * debug.adb: Add debug flags d.r and d.v
6583         Add debug flag .T (Optimize_Alignment (Time))
6584         Add debug flag .S (Optimize_Alignment (Space))
6585
6586         * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
6587         depending on setting of relevant debug flags.
6588         Replace use of Warnings_Off by Has_Warnings_Off
6589         (Freeze_Entity): In circuit for warning on suspicious convention
6590         actuals, do not give warning if subprogram has same entity as formal
6591         type, or if subprogram does not come from source.
6592         (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
6593         if Optimize_Alignment set to Space.
6594
6595         * frontend.adb: Add call to Sem_Warn.Initialize
6596         Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
6597         Reset Optimize_Alignment mode from debug switches .S and .T
6598
6599         * layout.adb (Layout_Composite_Object): Rewritten for
6600         Optimize_Aligment pragma.
6601
6602         * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
6603         mode.
6604
6605         * opt.ads, opt.adb: (Optimize_Alignment): New global switch
6606
6607         * par-prag.adb (N_Pragma): Chars field removed, use Chars
6608         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
6609         this change. Add entry for pragma Optimize_Alignment
6610
6611         * sem_prag.adb (N_Pragma): Chars field removed, use Chars
6612         (Pragma_Identifier (..
6613         instead, adjustments throughout to accomodate this change.
6614         (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
6615         (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
6616         Add implementation of pragma Optimize_Alignment
6617
6618 2008-03-26  Vincent Celier  <celier@adacore.com>
6619
6620         * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
6621         Improve memory usage to avoid use of stack.
6622
6623 2008-03-26  Robert Dewar  <dewar@adacore.com>
6624
6625         * a-teioed.ads: Correct value of Default_Fill
6626
6627         * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
6628
6629 2008-03-26  Robert Dewar  <dewar@adacore.com>
6630
6631         * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
6632         with Current_Output (introduce Self).
6633
6634 2008-03-26  Robert Dewar  <dewar@adacore.com>
6635
6636         * checks.adb (Ensure_Valid): Capture valid status if possible
6637         (eliminate checks)
6638
6639 2008-03-26  Robert Dewar  <dewar@adacore.com>
6640
6641         * stand.ads: Deal with reordering of package standard declarations
6642
6643         * cstand.adb: Put package Standard declarations in proper order
6644
6645 2008-03-26  Robert Dewar  <dewar@adacore.com>
6646
6647         * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
6648         (Pragma_Identifier (.. instead.
6649         (OK_To_Reorder_Components): New flag
6650         (Has_Entries): Code cleanup.
6651         (Warnings_Off_Used): New flag
6652         (Warnings_Off_Used_Unmodified): New flag
6653         (Warnings_Off_Used_Unreferenced): New flag
6654         (Has_Warnings_Off): New function
6655         (Has_Unmodified): New function
6656         (Has_Unreferenced): New function
6657         (Is_Trivial_Subprogram): New flag
6658         (Is_Static_Dispatch_Table_Entity): New attribute.
6659         Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
6660         (more consistent with other similar names)
6661         (Access_Subprogram_Type): New classification function
6662
6663 2008-03-26  Robert Dewar  <dewar@adacore.com>
6664
6665         * errout.ads: Document new !! insertion sequence
6666
6667         * errout.adb (N_Pragma): Chars field removed, use Chars
6668         (Pragma_Identifier (..  instead.
6669         Replace use of Warnings_Off by Has_Warnings_Off
6670         (Error_Msg_Internal): Don't delete warning ending in !!
6671
6672 2008-03-26  Robert Dewar  <dewar@adacore.com>
6673
6674         * par.adb (Check_No_Right_Paren): Removed no longer used
6675
6676         * par-ch10.adb (N_Pragma): Chars field removed, use Chars
6677         (Pragma_Identifier (..  instead.
6678
6679         * par-ch10.adb (P_Subunit): Improvement in error recovery and message
6680
6681         * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
6682         par-ch4.adb: Minor improvements in error recovery and messages.
6683
6684         * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
6685         non-serious
6686
6687         * par-ch9.adb: Minor improvements in error recovery and messages
6688         (P_Protected): Better error recovery for "protected type x;"
6689
6690         * par-util.adb: Minor improvements in error recovery and messages
6691         (Check_No_Right_Paren): Removed no longer used
6692
6693 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
6694
6695         * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
6696         that the prefix of an attribute is the type of the aggregate being
6697         expanded.
6698
6699 2008-03-26  Javier Miranda  <miranda@adacore.com>
6700             Robert Dewar  <dewar@adacore.com>
6701
6702         * exp_attr.adb (N_Pragma): Chars field removed.
6703         (Expand_N_Attribute_Reference): If the designated type associated with
6704         attribute 'Unrestricted_Access is a subprogram entity then replace it
6705         by an E_Subprogram_Type itype.
6706         Implement attribute Old
6707
6708         * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
6709
6710         * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
6711         Replace call to
6712         New_Internal_Entity by call to Create_Itype to centralize calls
6713         building itypes, ad propagate the convention of the designated
6714         subprogram. In addition, disable the machinery cleaning constant
6715         indications from all entities in current scope when 'Unrestricted_Access
6716         corresponds with a node initializing a dispatch table slot.
6717         (Analyze_Attribute): Parameterless attributes returning a string or a
6718         type will not be called with improper arguments, so we can remove junk
6719         code that was dealing with this case.
6720         Implement attribute Old
6721
6722         * snames.ads, snames.h, snames.adb: Add entries for attribute Old
6723         Add entry for pragma Optimize_Alignment
6724         New standard names Sync and Synchronize
6725
6726 2008-03-26  Robert Dewar  <dewar@adacore.com>
6727             Arnaud Charlet  <charlet@adacore.com>
6728
6729         * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
6730         stmt.
6731         (No_Exception_Propagation_Active): New function.
6732         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
6733         Update comments, and review all uses of No_Exception_Propagation, which
6734         are now correct and in sync with what gigi expects.
6735
6736         * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
6737         function.
6738         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
6739         Update comments, and review all uses of No_Exception_Propagation, which
6740         are now correct and in sync with what gigi expects.
6741
6742 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
6743
6744         * sem_ch3.adb (Access_Definition): If the access type is the return
6745         result of a protected function, create an itype reference for it
6746         because usage will be in an inner scope from the point of declaration.
6747         (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
6748         OK_To_Reorder_Components.
6749         (Make_Index): If an overloaded range includes a universal integer
6750         interpretation, resolve to Standard.Integer.
6751         (Analyze_Subtype_Indication): Copy Convention to subtype
6752         (Check_Abstract_Interfaces): Complete semantic checks on the legality of
6753         limited an synchronized progenitors in type declaration and private
6754         extension declarations.
6755
6756         * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
6757         protected subprogram body, determine proper scope from subprogram
6758         declaration.
6759
6760 2008-03-26  Robert Dewar  <dewar@adacore.com>
6761
6762         * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
6763         No_Run_Time_Mode
6764
6765 2008-03-26  Gary Dismukes  <dismukes@adacore.com>
6766
6767         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
6768         of a heap allocator for a limited unconstrained function return when
6769         resstriction No_Allocators is active.
6770         (Analyze_Allocator): The restriction No_Allocators is now only checked
6771         on allocators that have Comes_From_Source set, as per RM-H.4(7).
6772
6773         * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
6774         of a heap allocator for a limited unconstrained function return when
6775         resstriction No_Allocators is active.
6776         (Analyze_Allocator): The restriction No_Allocators is now only checked
6777         on allocators that have Comes_From_Source set, as per RM-H.4(7).
6778         (Has_Fixed_Op):  If the name in a function call is Standard."*" and the
6779         operands are fixed-point types, the universal_fixed predefined operation
6780         is used, regardless of whether the operand type (s) have a primitive
6781         operation of the same name.
6782
6783 2008-03-26  Javier Miranda  <miranda@adacore.com>
6784
6785         * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
6786         Is_Static_Dispatch_Table
6787         (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
6788         to Exchange_Declarations to exchange the private and full-view. Bug
6789         found working in this issue.
6790         (Expand_Dispatching_Call): Propagate the convention of the subprogram
6791         to the subprogram pointer type.
6792         (Make_Secondary_DT): Replace generation of Prim'Address by
6793         Address (Prim'Unrestricted_Access)
6794         (Make_DT): Replace generation of Prim'Address by
6795         Address (Prim'Unrestricted_Access)
6796         (Make_Disp_*_Bodies): When compiling for a restricted profile, use
6797         simple call form for single entry.
6798         (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
6799         tables of predefined primitives).
6800         (Make_Secondary_DT): Add support to handle access to dispatch tables of
6801         predefined primitives.
6802         (Make_Tags): Add entities to Access_Dispatch_Table associated with
6803         access to dispatch tables containing predefined primitives.
6804
6805         * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
6806         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
6807         this change.
6808         (Register_Predefined_DT_Entry): Updated to handle the new contents
6809         of attribute Access_Disp_Table (pointers to dispatch tables containing
6810         predefined primitives).
6811
6812         * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
6813         subprogram.
6814         (Find_Interface_ADT): Updated to skip the new contents of attribute
6815         Access_Dispatch_Table (pointers to dispatch tables containing predefined
6816         primitives).
6817
6818         * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
6819         concurrent types.
6820         (Set_Convention): Use new function Is_Access_Subprogram_Type
6821         (Collect_Interfaces_Info): Updated to skip the new contents of attribute
6822         Access_Dispatch_Table (pointers to dispatch tables containing predefined
6823         primitives).
6824
6825         * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
6826         expanded code avoiding calls to Build_Predef_Prims.
6827         (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
6828         call to Build_Get_Predefined_Prim_Op_Address.
6829
6830 2008-03-26  Javier Miranda  <miranda@adacore.com>
6831
6832         * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
6833         subprogram Corresponding_Runtime_Package to know the runtime package
6834         that will provide support to a given protected type.
6835
6836         * exp_ch9.adb (Add_Private_Declarations,
6837         Build_Protected_Subprogram_Call,
6838         Build_Protected_Entry, Build_Simple_Entry_Call,
6839         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
6840         Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
6841         cleanup using the new centralized subprogram Corresponding_Runtime
6842         Package to know the runtime package that provides support to
6843         a given protected type.
6844
6845 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
6846
6847         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
6848         assignment is within the initialization procedure for a packed array,
6849         and Initialize_Scalars is enabled, compile right-hand side with checks
6850         off, because the value is purposely out of range.
6851
6852 2008-03-26  Vincent Celier  <celier@adacore.com>
6853
6854         * gnatcmd.adb: Add processing for GNAT SYNC
6855
6856         * vms_conv.ads: (Command_Type): Add command Sync
6857
6858         * vms_conv.adb (Initialize): Add Command_List data for new command Sync
6859
6860         * vms_data.ads: Add entries for -gnatw.w
6861         Add qualifier for gnatstub --header-file option
6862         Add switches for GNAT SYNC
6863
6864         * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
6865         (Add_Package_Name): New procedure
6866         (Package_Name_List): New function
6867         (Initialize): Add known package names to the list
6868         (Register_New_Package): Add the new package name to the list
6869
6870 2008-03-26  Robert Dewar  <dewar@adacore.com>
6871
6872         * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
6873         s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
6874         Raise_Exception by "raise with" construct.
6875
6876 2008-03-26  Pascal Obry  <obry@adacore.com>
6877
6878         * Makefile.in: Add proper GNAT.Serial_Communications implementation on
6879         supported platforms.
6880
6881         * Makefile.rtl: Add g-sercom.o.
6882
6883         * impunit.adb: Add g-sercom.adb.
6884
6885         * s-crtl.ads (open): New routine.
6886         (close): Likewise.
6887         (write): Likewise.
6888
6889         * s-osinte-mingw.ads (BYTE): New type.
6890         (CHAR): Likewise.
6891         (OVERLAPPED): Likewise.
6892         (GENERIC_READ): New constant.
6893         (GENERIC_WRITE): Likewise.
6894         (OPEN_EXISTING): Likewise.
6895         (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
6896         type instead.
6897         (CreateFile): New routine.
6898         (WriteFile): Likewise.
6899         (ReadFile): Likewise.
6900         (CloseHandle): Move next to the other file oriented routines.
6901
6902         * g-sercom.ads: New unit.
6903
6904         * g-sercom.adb: Default implementation, calls to this unit will raise
6905         a program error exception.
6906
6907         * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
6908         GNU/Linux implementations.
6909
6910 2008-03-26  Robert Dewar  <dewar@adacore.com>
6911
6912         * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
6913
6914         * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
6915         unchecked conversion for different conventions only for subprogram
6916         pointers or on VMS.
6917
6918 2008-03-26  Vincent Celier  <celier@adacore.com>
6919
6920         * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
6921         to check if the specified object file is correct.
6922
6923 2008-03-26  Thomas Quinot  <quinot@adacore.com>
6924
6925         * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
6926         Comes_From_Source to exclude primitives from being checked. We want to
6927         exclude predefined primitives only, so use the appropriate specific
6928         predicate. Also, flag a formal parameter of an anonymous
6929         access-to-subprogram type as illegal for a primitive operation of a
6930         remote access to class-wide type.
6931
6932 2008-03-26  Vincent Celier  <celier@adacore.com>
6933
6934         * prj-dect.adb (Parse_Package_Declaration): When a package name is not
6935         known, check if it may be a missspelling of a known package name. In
6936         not verbose, not mode, issue warnings only if the package name is a
6937         possible misspelling.
6938         In verbose mode, always issue a warning for a not known package name,
6939         plus a warning if the name is a misspelling of a known package name.
6940
6941         * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
6942         limited withs or limited withs are parse during one call.
6943         (Parse_Single_Project): Post parse context clause in two passes: non
6944         limited withs before current project and limited withs after current
6945         project.
6946
6947         * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
6948         project with the name With_Name, even if it is only extended indirectly.
6949         (Recursive_Process): Process projects in order: first single withs, then
6950         current project, then limited withs.
6951
6952         * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
6953         project with the name With_Name, even if it is only extended indirectly.
6954
6955 2008-03-26  Robert Dewar  <dewar@adacore.com>
6956
6957         * scn.adb (Initialize_Scanner): Format messages belong on standard error
6958
6959 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
6960
6961         * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
6962         a generic subprogram that is imported, do not attempt to compile
6963         non-existent body.
6964
6965         * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
6966         imported, do not generate a raise_program_error for the non-existent
6967         body.
6968         (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
6969         perform minimal name resolution on the generic to avoid spurious
6970         warnings.
6971         (Find_Actual_Type): the designated type of the actual in a child unit
6972         may be declared in a parent unit without being an actual.
6973
6974 2008-03-26  Robert Dewar  <dewar@adacore.com>
6975
6976         * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
6977         * sinfo.ads, sinfo.adb (From_At_End): New flag
6978
6979 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
6980
6981         * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
6982         operations that have an interface parameter.
6983         (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
6984         Don't treat No_Return call as raise.
6985
6986         * sem_disp.adb (Check_Dispatching_Operations): apply check for
6987         non-primitive interface primitives to access parameters, not to all
6988         parameters of an access type.
6989
6990 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
6991
6992         * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
6993         declarations of a parent unit are made visible when compiling a child
6994         instance, the parent is not a hidden open scope, even though it may
6995         contain other pending instance.
6996
6997         * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
6998         hidden open scope for some child instance, it does affect the
6999         visibility status of other stach entries.
7000         (Analyze_Object_Renaming): Check that a class-wide object cannot be
7001         renamed as an object of a specific type.
7002
7003 2008-03-26  Robert Dewar  <dewar@adacore.com>
7004
7005         * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
7006         recursion and raise SE directly.
7007         (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
7008         set for formal type for IN mode parameter.
7009
7010 2008-03-26  Robert Dewar  <dewar@adacore.com>
7011
7012         * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
7013         (Initialize): New procedure
7014         (Output_Warnings_Off_Warnings): New procedure
7015         (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
7016         (Output_Non_Modifed_In_Out_Warnings): Ditto
7017         (Warn_On_Unreferenced_Entity): Ditto
7018
7019 2008-03-26  Vincent Celier  <celier@adacore.com>
7020
7021         * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
7022         readable.
7023
7024 2008-03-26  Matthew Heaney  <heaney@adacore.com>
7025
7026         * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads,
7027         a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
7028         Marked with clauses as private, and controlled operations as overriding
7029
7030 2008-03-26  Robert Dewar  <dewar@adacore.com>
7031
7032         * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
7033
7034 2008-03-26  Robert Dewar  <dewar@adacore.com>
7035
7036         * back_end.adb, back_end.ads: Minor reformatting
7037
7038         * bindgen.adb: Minor clarification of comments
7039
7040         * fname.ads: Minor comment fixes
7041
7042         * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
7043         prj-nmsc.adb, sem_aggr.adb: Minor reformatting
7044
7045         * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
7046         xsnames.adb: Remove warnings off pragma no longer needed
7047
7048         * a-catizo.ads, a-calari.ads, a-calfor.adb,
7049         a-calfor.ads: Fix header.
7050
7051 2008-03-26  Tristan Gingold  <gingold@adacore.com>
7052
7053         * init.c: Do not adjust pc for HPARITH on alpha/vms.
7054
7055 2008-03-26  Robert Dewar  <dewar@adacore.com>
7056
7057         * lib-xref.adb: (OK_To_Set_Reference): New function
7058         (Generate_Reference): Don't set referenced from occurrence in Warnings,
7059         Unmodified, or Unreferenced pragma
7060
7061 2008-03-26  Robert Dewar  <dewar@adacore.com>
7062
7063         * alloc.ads: Add entries for Warnings_Off_Pragmas table
7064
7065 2008-03-26  GNAT Script  <nobody@adacore.com>
7066
7067         * Make-lang.in: Makefile automatically updated
7068
7069 2008-03-26  Robert Dewar  <dewar@adacore.com>
7070
7071         * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
7072         par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
7073         removed, use Chars (Pragma_Identifier (..  instead, adjustments
7074         throughout to accomodate this change.
7075
7076         * s-pooglo.ads, s-pooloc.ads: Minor comment updates
7077
7078         * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
7079         Einfo.Set_Needs_Debug_Info)
7080
7081 2008-03-26  Robert Dewar  <dewar@adacore.com>
7082
7083         * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
7084         Add description for the new gnatstub option '--header-file'
7085         clarification of -gnatwz/-gnatwZ
7086         Add a "Irix-Specific Considerations" section to document the need to
7087         set LD_LIBRARY_PATH when using the default shared runtime library.
7088         Added documentation for both gcov and gprof.
7089
7090         * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
7091         messages that are not suppressed when clients are compiled.
7092         Add documentation of s-pooglo s-pooloc
7093         Document the new GNAT.Serial_Communications API.
7094         Add documentation for 'Old attribute
7095         Add description of pragma Optimize_Alignment
7096
7097         * ug_words: Add entries for -gnatw.w -gnatw.W
7098
7099         * usage.adb: Add line for -gnatw.w (warn on warnings off)
7100
7101 2008-03-25  Eric Botcazou  <ebotcazou@adacore.com>
7102
7103         Revert
7104         2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
7105         PR ada/35186
7106         * decl.c (maybe_pad_type): Avoid padding an integral type when
7107         bumping its alignment is sufficient.
7108
7109 2008-03-25  Arnaud Charlet  <charlet@adacore.com>
7110
7111         * exp_ch6.adb, exp_disp.adb: Update copyright notice.
7112         Fix wrong formatting (lines too long)
7113
7114 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7115
7116         * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
7117         a-calend-vms.adb, a-calend.adb, a-calend.ads,
7118         a-calfor.adb, a-chahan.ads, a-chtgke.adb,
7119         a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
7120         a-cohama.ads, a-comlin.ads, a-coorse.adb,
7121         a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
7122         a-except-2005.ads, a-except.adb, a-except.ads,
7123         a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
7124         a-exextr.adb, a-filico.ads, a-finali.ads,
7125         a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
7126         a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
7127         a-sequio.ads, a-strbou.ads, a-strfix.adb,
7128         checks.adb, exp_ch3.adb, exp_ch4.adb,
7129         exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
7130         exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
7131         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
7132         exp_dbug.ads, exp_disp.adb, exp_dist.adb,
7133         exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
7134
7135 2008-03-24  Robert Dewar  <dewar@adacore.com>
7136
7137         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
7138         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
7139         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
7140         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
7141         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
7142         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
7143         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
7144         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
7145         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
7146         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
7147         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
7148         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
7149         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
7150         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
7151         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
7152         double spaced if it fits on one line and otherwise single spaced.
7153
7154 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7155
7156         PR documentation/15479
7157         * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
7158         (doc/gnat_ugn_unw.texi): ... this, and adjusted.
7159         (doc/gnat_ugn.info): Renamed from ...
7160         (doc/gnat_ugn_unw.info): ... this.
7161         (doc/gnat_ugn.dvi): Renamed from ...
7162         (doc/gnat_ugn_unw.dvi): ... this.
7163         (doc/gnat_ugn.pdf): Renamed from ...
7164         (doc/gnat_ugn_unw.pdf): ... this.
7165         (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
7166         Adjusted.
7167         * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
7168         unconditionally to gnat_ugn.info.  Fix cross references to the
7169         GNAT Reference Manual.  Convert links to the GCC, GDB, Emacs,
7170         and GNU make manuals to be proper texinfo links.
7171         * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
7172
7173 2008-03-21  Olivier Hainque  <hainque@adacore.com>
7174
7175         * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
7176         ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
7177
7178 2008-03-21  Eric Botcazou  <ebotcazou@adacore.com>
7179
7180         * trans.c (addressable_p): Add notes on addressability issues.
7181
7182 2008-03-21  Olivier Hainque  <hainque@adacore.com>
7183             Ed Schonberg  <schonberg@adacore.com>
7184
7185         * trans.c (addressable_p): Accept COND_EXPR when both arms
7186         are addressable.
7187         (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
7188         (call_to_gnu): Do not use name reference in the error message
7189         for a misaligned by_reference_parameter. The actual may be a
7190         general expression.
7191
7192 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
7193
7194         * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
7195
7196 2008-03-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7197
7198         * gnat_rm.texi (Implementation Defined Characteristics)
7199         (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
7200         appropriate.
7201         * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
7202         (Switches for gnatchop, Installing a library): Likewise.
7203
7204 2008-03-10  Eric Botcazou  <ebotcazou@adacore.com>
7205
7206         * trans.c (emit_range_check): Do not emit the check if the base type
7207         of the expression is the type against which its range must be checked.
7208
7209 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7210
7211         * decl.c (maybe_pad_type): Use value_factor_p.
7212
7213 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7214
7215         * lang.opt (nostdlib): Move around.
7216         * misc.c (gnat_handle_option): Fix formatting.
7217         (gnat_dwarf_name): Move around.
7218         * trans.c (Case_Statement_to_gnu): Fix formatting.
7219         (gnat_to_gnu): Likewise.
7220         * utils.c (aggregate_type_contains_array_p): Likewise.
7221         (create_subprog_decl): Likewise.
7222
7223 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7224
7225         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
7226         bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
7227
7228 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7229
7230         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
7231         BIGGEST_ALIGNMENT when capping the alignment of records with
7232         strict alignment and size clause.
7233
7234 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7235
7236         * lang-specs.h: Pass -gnatwa if -Wall is passed.
7237         * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
7238         and -Wuninitialized.
7239         (gnat_post_options): Clear warn_unused_parameter.
7240
7241 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7242
7243         * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
7244         aligned bit-fields, bumping the alignment of the record type if deemed
7245         profitable.
7246         (value_factor_p): Return false instead of 0.
7247
7248 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7249
7250         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
7251         for scalar types with small alignment.
7252
7253 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7254
7255         * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
7256         from that of the front-end's end label.
7257         (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
7258         from that of the loop label.
7259
7260 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
7261
7262         * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
7263         comment for the packed array type case.
7264         * utils.c (build_template): Use a loop to strip padding or
7265         containing records for justified modular types.
7266
7267 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
7268
7269         * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
7270         large alignments specified for types.
7271         (validate_alignment): Minor cleanup.
7272
7273 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
7274
7275         * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
7276         (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
7277         the component for packing, if possible, as well as if a component
7278         size clause is specified.
7279         <E_Record_Subtype>: For an array type used to implement a packed
7280         array, get the component type from the original array type.
7281         Try to get a smaller form of the component for packing, if possible,
7282         as well as if a component size clause is specified.
7283         (round_up_to_align): New function.
7284         (make_packable_type): Add in_record parameter.
7285         For a padding record, preserve the size.  If not in_record and the
7286         size is too large for an integral mode, attempt to shrink the size
7287         by lowering the alignment.
7288         Ditch the padding bits of the last component.
7289         Compute sizes and mode manually, and propagate the RM size.
7290         Return a BLKmode record type if its size has shrunk.
7291         (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
7292         Use Original_Array_Type to retrieve the type in case of an error.
7293         Adjust call to make_packable_type.
7294         (gnat_to_gnu_field): Likewise.
7295         (concat_id_with_name): Minor tweak.
7296         * trans.c (larger_record_type_p): New predicate.
7297         (call_to_gnu): Compute the nominal type of the object only if the
7298         parameter is by-reference.  Do the conversion actual type -> nominal
7299         type if the nominal type is a larger record.
7300         (gnat_to_gnu): Do not require integral modes on the source type to
7301         avoid the conversion for types with identical names.
7302         (addressable_p): Add gnu_type parameter.  If it is specified, do not
7303         return true if the expression is not addressable in gnu_type.
7304         Adjust recursive calls.
7305         * utils.c (finish_record_type): Remove dead code.
7306
7307 2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
7308
7309         PR ada/35186
7310         * decl.c (maybe_pad_type): Avoid padding an integral type when
7311         bumping its alignment is sufficient.
7312
7313 2008-03-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7314
7315         * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
7316         * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
7317         statement.
7318         * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
7319         gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
7320         sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
7321         code output strings.
7322         * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
7323         system-vms_64.ads: Fix typos in ada source code comments.
7324         * sinfo-cn.adb: Remove incomplete sentence.
7325
7326         PR documentation/15479
7327         * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
7328
7329 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
7330
7331         PR ada/22255
7332         * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
7333
7334 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
7335
7336         PR ada/34799
7337         * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
7338         that underlying type is present.
7339
7340 2008-02-26  Tom Tromey  <tromey@redhat.com>
7341
7342         * misc.c (internal_error_function): Remove test of
7343         USE_MAPPED_LOCATION.
7344         * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
7345         (Sloc_to_locus): Remove old location code.
7346
7347 2008-02-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7348
7349         * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
7350         `i.e.' by adding comma or `@:' as appropriate.
7351         * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
7352         plain characters `C', use `@samp{C}'.
7353         * gnat_ugn.texi (File Naming Rules, About gnatkr)
7354         (Krunching Method): Likewise.
7355
7356         * gnat_ugn.texi (Conventions): List environment variables and
7357         metasyntactic variables.
7358         (Compiling Programs): Fix notation of metasyntactic variables.
7359         Add @file where appropriate.  Use @file for file extensions,
7360         @samp for strings.
7361         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
7362         instead of @file, @env instead of @code.
7363
7364 2008-02-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7365
7366         PR documentation/15479
7367         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
7368         and `...' with `@dots{}' or `@enddots{}'.
7369
7370         PR documentation/15479
7371         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
7372         use @command instead of @code, @option instead of @samp or @code,
7373         @code instead of @var, @samp instead of @file.
7374
7375         PR documentation/15479
7376         * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
7377         in Makefile rules, by using `&&' rather than `;'.
7378
7379 2008-02-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7380
7381         PR documentation/15479
7382         * gnat_ugn.texi: In non-code, avoid space before colon.
7383         (Regular Expressions in gnatfind and gnatxref): Fix indentation.
7384         (Examples of gnatxref Usage): Use @command{vi} instead of
7385         @file{vi}.
7386         (Character Set Control): Do not use @code for UTF-8.
7387         (Validity Checking): Fix typo "NaNs" instead of "NaN's".  Do not
7388         use @code for IEEE.
7389         * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
7390         sample.
7391         * gnat_rm.texi, gnat_ugn.texi: Fix typos.  Bump copyright years.
7392
7393 2008-02-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
7394
7395         PR ada/35143
7396         * env.c: Add __rtems__ to if defined.
7397         * s-osinte-rtems.adb: Add To_Target_Priority.  Fix formatting.
7398         * s-osinte-rtems.ads: Add To_Target_Priority prototype and
7399         PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants.  Add
7400         pragma Convention as required.
7401         * gsocket.h: Make compile in and out of RTS.
7402         * Makefile.in: Add system-rtems.ads.  Build DEC extensions.
7403         Use g-soccon-rtems.ads.
7404         * g-soccon-rtems.ads, system-rtems.ads: New files.
7405
7406 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7407
7408         PR other/35107
7409         * Make-lang.in (gnat1): Add $(GMPLIBS).
7410
7411 2008-01-26  Eric Botcazou  <ebotcazou@adacore.com>
7412
7413         * decl.c (components_to_record): Improve comment.
7414
7415 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
7416
7417         * decl.c (components_to_record): Do not reuse the empty union type
7418         if there is a representation clause on the record.
7419         * trans.c (addressable_p): Return true for INTEGER_CST.
7420
7421 2008-01-21  Eric Botcazou  <ebotcazou@adacore.com>
7422
7423         * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
7424         in pointer arithmetics.
7425         * utils2.c (build_allocator): Likewise.
7426
7427 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
7428
7429         * utils.c (build_function_stub): Properly build the call expression.
7430
7431 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
7432
7433         * decl.c (gnat_to_gnu_entity) <object>: Process renamings
7434         before converting the expression to the type of the object.
7435         * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
7436         Stabilize constructors for special wrapping types.
7437
7438 2008-01-13  Eric Botcazou  <ebotcazou@adacore.com>
7439
7440         * trans.c (call_to_gnu): Invoke the addressable_p predicate only
7441         when necessary.  Merge some conditional statements.  Update comments.
7442         Rename unchecked_convert_p local variable to suppress_type_conversion.
7443         Do not suppress conversions in the In case.
7444         (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
7445         into account on non strict-alignment platforms.
7446
7447 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
7448
7449         * utils.c (aggregate_type_contains_array_p): New predicate.
7450         (create_field_decl): In a packed record, force byte alignment
7451         for fields without specified position that contain an array.
7452
7453 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
7454
7455         * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
7456
7457 2008-01-10  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
7458
7459         PR ada/34466
7460         * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
7461         sysconf call.
7462         (bit_field): New packed boolean type used by cpu_set_t.
7463         (cpu_set_t): New type corresponding to the C type with
7464         the same name. Note that on the Ada side we use a bit
7465         field array for the affinity mask. There is not need
7466         for the C macro for setting individual bit.
7467         (pthread_setaffinity_np): New imported routine.
7468
7469 2008-01-03  Tero Koskinen  <tero.koskinen@iki.fi>
7470
7471         PR ada/34647
7472         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
7473         on OpenBSD as is done on other BSD systems.
7474
7475         PR ada/34645
7476         * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
7477         getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
7478         I/O.
7479
7480         PR ada/34644
7481         * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
7482         clearenv().
7483
7484         PR ada/34646
7485         * init.c (__gnat_error_handler, __gnat_install_handler,
7486         __gnat_init_float): Define for OpenBSD.
7487
7488         * initialize.c (__gnat_initialize): Define for OpenBSD.
7489
7490 2007-12-27  Samuel Tardieu  <sam@rfc1149.net>
7491
7492         PR ada/34553
7493         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
7494         instead of mktemp() or tmpnam() on NetBSD.
7495
7496 2007-12-23  Eric Botcazou  <ebotcazou@adacore.com>
7497
7498         * trans.c (call_to_gnu): Make the temporary for non-addressable
7499         In parameters passed by reference.
7500         (addressable_p): Return true for STRING_CST and CALL_EXPR.
7501
7502 2007-12-19  Robert Dewar  <dewar@adacore.com>
7503
7504         * g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
7505         Add pragma Warnings (Off) for unassigned IN OUT arguments
7506
7507         * sem_warn.adb (Output_Reference): Suppress messages for internal names
7508         (Check_References): Extensive changes to tune up warnings
7509         (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
7510         (Has_Pragma_Unmodifed_Check_Spec): New function
7511         (Check_References): Implement pragma Unmodified
7512         (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
7513
7514         * par-prag.adb: Dummy entry for pragma Unmodified
7515
7516         * sem_prag.adb: Implement pragma Unmodified
7517
7518         * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
7519         (Proc_Next_Component_Or_Discriminant): Fix typo.
7520         Update comments.
7521
7522         * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
7523         Unmodified.
7524         (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
7525         because the former already takes care of discarding the result.
7526         (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
7527         Add comment.
7528
7529         * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
7530
7531 2007-12-19  Eric Botcazou  <ebotcazou@adacore.com>
7532
7533         * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
7534         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
7535         system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
7536         system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
7537         system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
7538         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
7539         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
7540         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
7541         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
7542         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
7543         (Dynamic_Trampolines_Used): Delete.
7544
7545         * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
7546         Turn on stack probing mechanism on LynxOS.
7547
7548 2007-12-19  Bob Duff  <duff@adacore.com>
7549
7550         * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
7551         the resulting tail recursion by hand. This prevents running out of
7552         memory on deeply nested concatenations, since Field2 is where the left
7553         operand of concatenations is stored.
7554         Fix bug (was returning OK_Orig in some cases). Fix return subtype to
7555         clarify that it can only return OK or Abandon.
7556
7557         * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
7558         operand by iteration, in order to avoid running out of memory on
7559         deeply-nested concatenations. Use the Parent pointer to get back up the
7560         tree.
7561         (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
7562          Resolve_Op_Concat_Rest): New procedures split out of
7563         Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
7564         clearer.
7565
7566         * checks.adb (Remove_Checks): Use Traverse_Proc instead of
7567         Traverse_Func, because the former already takes care of discarding the
7568         result.
7569
7570         * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
7571         because the former already takes care of discarding the result.
7572         (Remove_Warning_Messages): Use appropriate subtype for Status and
7573         Discard
7574
7575 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
7576
7577         * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
7578         discriminants forces expansion of the aggregate into assignments.
7579         (Init_Record_Controller):  If the type of the aggregate is untagged and
7580         is not inherently limited, the record controller is not limited either.
7581
7582 2007-12-19  Robert Dewar  <dewar@adacore.com>
7583
7584         * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
7585         handling compile time known size of record or array (case of front end
7586         layout active, e.g. in GNAAMP).
7587
7588 2007-12-19  Javier Miranda  <miranda@adacore.com>
7589
7590         * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
7591         that forces the construction of static dispatch tables in case of
7592         record subtypes.
7593
7594 2007-12-19  Robert Dewar  <dewar@adacore.com>
7595
7596         * exp_ch9.adb (Null_Statements): Moved to library level
7597         (Trivial_Accept_OK): New function
7598         (Expand_Accept_Declaration): Use Trivial_Accept_OK
7599         (Expand_N_Accept_Statement): Use Trivial_Accept_OK
7600
7601 2007-12-19  Robert Dewar  <dewar@adacore.com>
7602
7603         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
7604         in complex case where array is Volatile.
7605
7606 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
7607
7608         * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
7609         properly the Ada2005 rules concerning when the current instance of a
7610         record type is aliased.
7611
7612 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
7613
7614         * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
7615         mangled declaration
7616         (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
7617         declarations.
7618         (P_Variant_Part): Cleaner patch for parenthesized discriminant
7619
7620 2007-12-19  Vincent Celier  <celier@adacore.com>
7621
7622         * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
7623         package is not known
7624
7625         * prj-attr.ads (Unknown_Package): New constant
7626         Do not crash when an unknown package is in several projects
7627
7628         * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
7629         ignored
7630
7631         * prj-nmsc.adb (Check): Remove obsolete code related to no longer
7632         existing package Language_Processing.
7633
7634 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
7635             Gary Dismukes  <dismukes@adacore.com>
7636             Samuel Tardieu  <sam@rfc1149.net>
7637
7638         PR ada/15803, ada/15805
7639         * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
7640         illegal access subtypes when there is a constrained partial view.
7641         (Check_For_Premature_Usage): New procedure inside
7642         Access_Subprogram_Declaration for checking that an access-to-subprogram
7643         type doesn't reference its own name within any formal parameters or
7644         result type (including within nested anonymous access types).
7645         (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
7646         (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
7647         context is an access_to_variable, the expression cannot be an
7648         access_to_constant.
7649
7650 2007-12-19  Bob Duff  <duff@adacore.com>
7651
7652         * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
7653         (Analyze_Concatenation): Use iteration instead of recursion in order
7654         to avoid running out of stack space for deeply nested concatenations.
7655
7656 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
7657             Gary Dismukes  <dismukes@adacore.com>
7658
7659         * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
7660         whose renamed entity is a subprogram that requires overriding.
7661         (Premature_Usage): Test for the case of N_Full_Type_Declaration when
7662         issuing an error for premature usage and issue a message that says
7663         'type' rather than 'object'.
7664
7665 2007-12-19  Gary Dismukes  <dismukes@adacore.com>
7666
7667         PR ada/34149
7668         * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
7669         presence of a statically tagged operand (Present (Static_Tag)) with
7670         test for Indeterm_Ancestor_Call when determining whether to propagate
7671         the static tag to tag-indeterminate operands (which forces dispatching
7672         on such calls).
7673         (Check_Controlling_Formals): Ada2005, access parameters can have
7674         defaults.
7675         (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
7676         not insert subprogram in list of primitive operations if already there.
7677
7678 2007-12-19  Tristan Gingold  <gingold@adacore.com>
7679
7680         * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
7681         global variable.
7682
7683 2007-12-19  Thomas Quinot  <quinot@adacore.com>
7684
7685         Part of PR ada/33688
7686         * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
7687         datagram info on Linux.
7688
7689 2007-12-19  Vincent Celier  <celier@adacore.com>
7690
7691         * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
7692         that the source path name is always found in the dependencies.
7693
7694 2007-12-19  Robert Dewar  <dewar@adacore.com>
7695
7696         * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
7697         Fix name of Wide_Wide_Latin_1/9 file names
7698         Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
7699         Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
7700         Add missing documentation for Ada.Command_Line.Response_File
7701         Update list of warning letters for Warnings pragma
7702         Add documentation for pragma Unmodified
7703
7704 2007-12-19  Samuel Tardieu  <sam@rfc1149.net>
7705
7706         * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
7707
7708 2007-12-17  Arnaud Charlet  <charlet@adacore.com>
7709
7710         * s-vxwork-alpha.ads: Removed, no longer used.
7711
7712 2007-12-15  Jakub Jelinek  <jakub@redhat.com>
7713
7714         * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
7715
7716 2007-12-13  Samuel Tardieu  <sam@rfc1149.net>
7717
7718         PR ada/34360
7719         * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
7720         mlib-tgt-specific.adb.
7721
7722 2007-12-13  Bob Duff  <duff@adacore.com>
7723
7724         * trans.c (Attribute_to_gnu): Check for violations of the
7725         No_Implicit_Dynamic_Code restriction. This checking used to be done in
7726         the front end, but is moved here so we can make it more accurate.
7727
7728 2007-12-13  Pascal Obry  <obry@adacore.com>
7729
7730         * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
7731          version is provided for older GNU/Linux distribution not
7732          supporting thread affinity sets.
7733
7734         * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
7735         call.
7736         (bit_field): New packed boolean type used by cpu_set_t.
7737         (cpu_set_t): New type corresponding to the C type with
7738         the same name. Note that on the Ada side we use a bit
7739         field array for the affinity mask. There is not need
7740         for the C macro for setting individual bit.
7741         (pthread_setaffinity_np): New imported routine.
7742
7743         * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
7744         no null.
7745         (Create_Task): Set the processor affinity mask if information
7746         is present.
7747
7748         * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
7749
7750 2007-12-13  Robert Dewar  <dewar@adacore.com>
7751
7752         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
7753         s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
7754         s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
7755         s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
7756         s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
7757         s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
7758         s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
7759         i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
7760         for subprogram pointers.
7761
7762         * g-ctrl_c.adb: New file.
7763
7764         * g-ctrl_c.ads (Install_Handler): New body.
7765
7766         * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
7767         instead of obsolete function Is_Always_Inlined.
7768         (Freeze_Entity): check for tagged type in imported C subprogram
7769         (Freeze_Entity): check for 8-bit boolean in imported C subprogram
7770         (Freeze_Entity): check for convention Ada subprogram pointer in
7771         imported C subprogram.
7772         (Freeze_Fixed_Point_Type): In the case of a base type where the low
7773         bound would be chopped off and go from negative to zero, force
7774         Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
7775         bound) so that the size computation for the base type will take
7776         negative values into account.
7777
7778 2007-12-13  Eric Botcazou  <ebotcazou@adacore.com>
7779             Bob Duff  <duff@adacore.com>
7780             Tristan Gingold  <gingold@adacore.com>
7781
7782         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
7783         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
7784         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
7785         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
7786         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
7787         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
7788         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
7789         system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
7790         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
7791         system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
7792         system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
7793         (Always_Compatible_Rep): New flag to control trampolines globally.
7794         (Dynamic_Trampolines_Used): New flag for implementing the
7795         No_Implicit_Dynamic_Code restriction more correctly (not yet used,
7796         and not yet set correctly for some targets).
7797
7798         * s-taprop-vxworks.adb: Use stack limit method of stack checking.
7799         Simply indirectly call s-stchop when a task is created.
7800
7801         * ali.ads:
7802         New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
7803         appears as an argument (entries A) in an ALI file.
7804
7805         * fe.h (Stack_Check_Limits): Declare new target parameter.
7806         (Check_Implicit_Dynamic_Code_Allowed): New procedure.
7807
7808         * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
7809         This variable is declared in C to be sure not subject to elaboration
7810         code.
7811         (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
7812         Storage_Error.
7813
7814         * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
7815         (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
7816
7817         * s-stchop.ads: Add comments.
7818
7819         * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
7820         limit method of stack checking.
7821
7822         * s-stchop-limit.ads: New file.
7823
7824 2007-12-13  Robert Dewar  <dewar@adacore.com>
7825
7826         * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
7827         a-cihama.adb, g-awk.adb,
7828         s-inmaop-posix.adb: Update handling of assigned value/unreferenced
7829         warnings
7830
7831         * exp_smem.adb: Update handling of assigned value/unreferenced warnings
7832
7833         * sem.adb: Update handling of assigned value/unreferenced warnings
7834
7835         * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
7836
7837         * lib-xref.ads: Improve documentation for k xref type
7838
7839         * lib-xref.adb:
7840         Update handling of assigned value/unreferenced warnings
7841         (Generate_Reference): Warning for reference to entity for which a
7842         pragma Unreferenced has been given should be unconditional.
7843         If the entity is a discriminal, mark the original
7844         discriminant as referenced.
7845
7846         * sem_warn.ads, sem_warn.adb
7847         (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
7848         no entities referenced in package
7849         (Check_One_Unit): Don't give message about no entities referenced in
7850         a package if a pragma Unreferenced has appeared.
7851         Handle new warning flag -gnatw.a/-gnatw.A
7852         Update handling of assigned value/unreferenced warnings
7853
7854         * atree.h: Add flags up to Flag247
7855         (Flag231): New macro.
7856
7857 2007-12-13  Jose Ruiz  <ruiz@adacore.com>
7858
7859         * adaint.h: (__gnat_plist_init): Not defined for RTX.
7860
7861         * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
7862         RTX systems.
7863
7864         * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
7865         (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
7866         EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
7867         GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
7868
7869         * mingw32.h:
7870         Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
7871
7872         * sysdep.c (winflush_function for RTX): Procedure that does nothing
7873         since we only have problems with Windows 95/98, which are not
7874         supported by RTX.
7875         (__gnat_ttyname): Return the empty string on Nucleus, just as
7876         done on vxworks.
7877
7878 2007-12-13  Robert Dewar  <dewar@adacore.com>
7879
7880         * a-textio.adb, a-textio.ads:
7881         Extensive changes to private part for wide character encoding
7882
7883         * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
7884         (Look_Ahead): Fix mishandling of encoded sequences
7885         Move declaration of Wch_Con to private part (should not be visible)
7886
7887         * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
7888         UTF-8. Probably this is never used, but if it is, brackets is
7889         clearly correct.
7890
7891         * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
7892         setting wide character encoding for no main program case and when
7893         encoding is specified using -W?
7894         Initialize stack limit of environment task if stack limit method of
7895         stack checking is enabled.
7896         (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
7897         (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
7898         (Get_Main_Unit_Name): New function.
7899         (Gen_Adainit_Ada): Add call to main program for .NET when needed.
7900         (Gen_Output_File): Set Bind_Main_Program to True for .NET
7901
7902         * bindusg.adb: Add line for -Wx switch
7903
7904         * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
7905         Add comments
7906         Add new useful constant WC_Longest_Sequences
7907
7908         * switch-b.adb: Clean up handling of -Wx switch
7909         For -gnatWx, set Wide_Character_Encoding_Method_Specified
7910
7911         * switch-c.adb: -gnatg activates warning on assertion errors
7912         For -gnatWx, set Wide_Character_Encoding_Method_Specified
7913
7914         * s-wchcon.adb: (Is_Start_Of_Encoding): New function
7915
7916 2007-12-13  Robert Dewar  <dewar@adacore.com>
7917             Ed Schonberg  <schonberg@adacore.com>
7918
7919         * a-ngcoty.adb: New pragma Fast_Math
7920
7921         * opt.adb: New pragma Fast_Math
7922
7923         * par-prag.adb:
7924         Add Implemented_By_Entry to the list of pragmas which do not require any
7925         special processing.
7926         (Favor_Top_Level): New pragma.
7927         New pragma Fast_Math
7928
7929         * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
7930         (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
7931         Expand_Allocator_Expression): Take into account VM_Target
7932         (Expand_Attribute, case 'Identity):  Handle properly the case where
7933         the prefix is a task interface.
7934         New pragma Fast_Math
7935
7936         * par.adb (Next_Token_Is): New function
7937         (P_Pragma): Add Skipping parameter
7938         (U_Left_Paren): New procedure
7939         (U_Right_Paren): New procedure
7940         New pragma Fast_Math
7941
7942         * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
7943         subunit
7944         New pragma Fast_Math
7945
7946         * sem_prag.adb: Add significance value to table Sig_Flag for pragma
7947         Implemented_By_Entry.
7948         (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
7949         (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
7950         items, since it can apply to more than one overloadable entity. Set
7951         new flag Has_Pragma_Inline_Always for Inline_Always case.
7952         (Analyze_Pragma, case Complex_Representation): Improve error message.
7953         (Analyze_Pragma, case Assert): When assertions are disabled build the
7954         rewritten code with Sloc of expression rather than pragma, so new
7955         warning about failing is not deleted.
7956         (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
7957         protected types and update error message to reflect that. Test whether
7958         the protected type is allowed for the pragma (an error is issued if the
7959         type has any entries, or components that do not have preelaborable
7960         initialization).
7961         New pragma Fast_Math
7962         (Analyze_Pragma, case No_Return): Handle generic instance
7963
7964         * snames.h, snames.ads, snames.adb:
7965         Add new predefined name for interface primitive _Disp_Requeue.
7966         New pragma Fast_Math
7967
7968         * a-tags.ads, a-tags.adb: New calling sequence for
7969         String_To_Wide_[Wide_]String
7970         (Secondary_Tag): New subprogram.
7971
7972         * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
7973         from Exp_Attr
7974         New calling sequence for String_To_Wide_[Wide_]String
7975         (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
7976         the use of the secondary stack for image routines.
7977
7978         * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
7979         calling sequence for String_To_Wide_[Wide_]String
7980
7981         * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
7982         Ada 95 mode
7983         (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
7984         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
7985
7986         * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
7987         (P_Formal_Part): Use Skipping parameter in P_Pragma call
7988         to improve error recovery
7989
7990         * par-util.adb (Next_Token_Is): New function
7991         (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
7992
7993         * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
7994         semicolon if missing
7995         (P_Pragma): Implement new Skipping parameter
7996         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
7997         Fix location of flag for unrecognized pragma message
7998
7999         * par-tchk.adb (U_Left_Paren): New procedure
8000         (U_Right_Paren): New procedure
8001
8002 2007-12-13  Geert Bosch  <bosch@adacore.com>
8003
8004         * a-tifiio.adb:
8005         (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
8006         the second or later Scaled_Divide would omit leading zeroes,
8007         resulting in too few digits produced and a Layout_Error as result.
8008         (Put): Initialize Pos.
8009
8010 2007-12-13  Robert Dewar  <dewar@adacore.com>
8011
8012         atree.ads, atree.adb (Flag231..Flag247): New functions
8013         (Set_Flag231..Set_Flag247): New procedures
8014         (Basic_Set_Convention): Rename Set_Convention to be
8015         Basic_Set_Convention
8016         (Nkind_In): New functions
8017         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8018
8019         * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
8020         instead
8021          of obsolete function Is_Always_Inlined
8022         (Register_Predefined_DT_Entry): Initialize slots of the second
8023         secondary dispatch table.
8024         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8025         (Expand_N_Function_Call): Remove special provision for stack checking.
8026
8027         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
8028         Include _Disp_Requeue in the list of predefined operations.
8029         (Find_Interface_ADT): Modified to fulfill the new specification.
8030         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8031
8032         * par-ch4.adb, nlists.ads, nlists.adb:
8033         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8034
8035         * sinfo.ads, sinfo.adb: (Nkind_In): New functions
8036         Fix location of flag for unrecognized pragma message
8037
8038         * sem_ch7.adb: Use Nkind_In
8039
8040 2007-12-13  Vincent Celier  <celier@adacore.com>
8041
8042         * opt.ads:
8043         Indicate what flags are used by the Project Manager, gprbuild and
8044         gprclean.
8045         (Opt.Follow_Links_For_Dirs): New flag
8046         (Warn_On_Assertion_Failure): New flag
8047         (Wide_Character_Encoding_Method_Specified): New flag
8048         (Suppress_All_Inlining): New switch set by -fno-inline
8049         (Real_VMS_Target): New flag
8050         New pragma Fast_Math
8051
8052 2007-12-13  Robert Dewar  <dewar@adacore.com>
8053
8054         * back_end.adb: Recognize -fno-inline
8055
8056 2007-12-13  Robert Dewar  <dewar@adacore.com>
8057
8058         * checks.adb: Fix optimization problem with short-circuited form
8059
8060 2007-12-13  Bob Duff  <duff@adacore.com>
8061
8062         * clean.adb (Usage): Add line for -aP
8063         (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
8064         with a parameter "procedure Usage", instead of passing a pointer to a
8065         procedure. This is to eliminate trampolines (since the Usage procedure
8066         is often nested in a main procedure, and it would be inconvenient to
8067         unnest it).
8068
8069         * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
8070         to be generic, with a parameter "procedure Callback (...)", instead of
8071         passing a pointer to a procedure. This is to eliminate trampolines
8072         (since the Callback procedure is usually nested).
8073
8074         * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
8075         gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
8076         (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
8077
8078         * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
8079         Use the generic Heap_Sort_G instead of Heap_Sort_A.
8080
8081 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8082
8083         * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
8084         (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
8085         (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
8086         (Renamed_In_Spec): New flag
8087         (Has_Pragma_Inline_Always): New flag
8088         Add missing doc for pragma Obsolescent_Warning
8089         Add missing doc for 17 additional unused flags (230-247)
8090         (Is_Derived_Type): Remove condition "not Is_Generic_Type".
8091         Alphabetize with clauses.
8092         Separate Is_Thunk and Has_Thunks flags
8093         (Write_Entity_Flags): Add forgotten entry for Has_Thunks
8094         (Related_Interface): Renamed to Related_Type.
8095         (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
8096         (Set_Is_Flag): Restrict the assertion.
8097
8098 2007-12-13  Vincent Celier  <celier@adacore.com>
8099
8100         * errout.adb (Output_Source_Line): Do not keep a trailing space after
8101         the source line number if the source line is empty.
8102
8103 2007-12-13  Geert Bosch  <bosch@adacore.com>
8104
8105         * eval_fat.adb (Decompose_Int): Handle argument of zero.
8106         (Compose): Remove special casing of zero.
8107         (Exponent): Likewise.
8108         (Fraction): Likewise.
8109         (Machine): Likewise.
8110         (Decompose): Update comment.
8111
8112 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
8113
8114         * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
8115         limited ancestor part, initialize controllers of enclosing record
8116         before expanding ancestor aggregate.
8117         (Gen_Assign): If a component of the aggregate is box-initialized, add
8118         code to call Initialize if the component is controlled, and explicit
8119         assignment of null if the component is an access type.
8120
8121         Handle properly aggregates for limited types that appear in object
8122         declarations when the aggregate contains controlled values such as
8123         protected types.
8124         When expanding limited aggregates into individual components, do not
8125         call Adjust on controlled components that are limited.
8126
8127 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
8128
8129         * expander.adb: Take into account N_Subprogram_Renaming_Declaration
8130
8131 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8132
8133         * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
8134         predefined primitive _Disp_Requeue.
8135         (Make_Predefined_Primitive_Specs): Create the spec for predefined
8136         primitive _Disp_Requeue.
8137         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
8138         type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
8139         (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
8140         an interface type. In case of limited interfaces we now declare all the
8141         predefined primitives associated with synchronized interfaces as
8142         abstract.
8143         (Predef_Spec_Or_Body): For interface types generate abstract subprogram
8144         declarations.
8145         (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
8146         tagged type is an interface type and there is no user-defined equality
8147         function.
8148         Add also bodies of predefined primitives associated with synchronized
8149         interfaces.
8150         (Freeze_Record_Type): Do not build bodies of predefined primitives of
8151         interface types because they are now defined abstract.
8152         Add missing documentation.
8153         (Expand_Record_Controller): Update occurrence of Related_Interface
8154         to Related_Type.
8155         (Build_Offset_To_Top_Functions): Do nothing in case of VM.
8156         (Expand_N_Object_Declaration): Take into account VM_Target when handling
8157         class wide interface object declaration.
8158         (Expand_Previous_Access_Type): Do not create a duplicate master entity
8159         if the access type already has one.
8160         (Expand_N_Object_Declaration): Defend against attempt to validity check
8161         generic types. Noticed for -gnatVcf specified with previous errors.
8162
8163 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
8164
8165         * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
8166         Expand_Allocator_Expression): Take into account VM_Target
8167
8168         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
8169         secondary stack when VM_Target /= No_VM
8170
8171 2007-12-13  Javier Miranda  <miranda@adacore.com>
8172             Ed Schonberg  <schonberg@adacore.com>
8173
8174         * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
8175         Is_Complation_Unit by Is_Library_Level_Entity in the code
8176         that decides if the static dispatch tables need to be built.
8177         (Wrap_Transient_Declaration): Do not generate a finalization call if
8178         this is a renaming declaration and the renamed object is a component
8179         of a controlled type.
8180
8181 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
8182
8183         * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
8184         In the case where the renamed subprogram is a dereference, call
8185         Force_Evaluation on the prefix.
8186
8187 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8188             Ed Schonberg  <schonberg@adacore.com>
8189
8190         * exp_ch9.adb (Expand_N_Asynchronous_Select,
8191         Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
8192         comment reformatting.
8193         (Set_Privals): Inherit aliased flag from formal. From code reading.
8194         (Build_Simple_Entry_Call): Out parameters of an access type are passed
8195         by copy and initialized from the actual. This includes entry parameters.
8196         (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
8197         and Ada 2005 models of requeue.
8198         (Null_Statements): Still connsider do-end block null if it contains
8199         Unreferenced and Warnings pragmas.
8200         (Expand_N_Accept_Statement): Do not optimize away null do end if
8201         dispatching policy is other than defaulted.
8202         (Expand_N_Timed_Entry_Call): When the triggering statement is a
8203         dispatching call, manually analyze the delay statement.
8204         (Find_Parameter_Type): Move subprogram to Sem_Util.
8205
8206 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8207             Javier Miranda  <miranda@adacore.com>
8208
8209         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
8210         _Disp_Requeue occupies dispatch table slot number 15. Move
8211         _Disp_Timed_Select to slot 16.
8212         (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
8213         generate the spec and body of _Disp_Reqeueue.
8214         (Make_DT): Build and initialize the second dispatch table.
8215         Handle initialization of RC_Offset when the parent
8216         is a private type with variable size components.
8217         (Make_Secondary_DT): Complete documentation. Add support to
8218         initialize the second dispatch table.
8219         (Make_Tags): Generate the tag of the second dispatch table.
8220         (Register_Primitive): Add support to register primitives in the
8221         second dispatch table.
8222
8223 2007-12-13  Pascal Obry  <obry@adacore.com>
8224
8225         * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
8226         Windows. This signal is used by gnatmake to kill child processes for
8227         example.
8228
8229 2007-12-13  Javier Miranda  <miranda@adacore.com>
8230
8231         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
8232         support for generic dispatching constructor calls in which we need to
8233         locate the tag of a secondary dispatch table associated with an
8234         interface type to properly dispatch the call.
8235         (Expand_N_Attribute_Reference [case Address],
8236         Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
8237         handling of VM targets.
8238
8239 2007-12-13  Robert Dewar  <dewar@adacore.com>
8240             Ed Schonberg  <schonberg@adacore.com>
8241
8242         * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
8243         assert fail
8244
8245         * ug_words: Add entries for -gnatw.a -gnatw.A
8246
8247         * sem_res.adb (Set_String_Literal_Subtype): If the context of the
8248         literal is a subtype with non-static constraints, use the base type of
8249         the context as the base of the string subtype, to prevent type
8250         mismatches in gigi.
8251         (Resolve_Actuals): If the actual is an entity name, generate a
8252         reference before the actual is resolved and expanded, to prevent
8253         spurious warnings on formals of enclosing protected operations.
8254         (Analyze_Overloaded_Selected_Component): If type of prefix if
8255         class-wide, use visible components of base type.
8256         (Resolve_Selected_Component): Ditto.
8257         (Resolve_Short_Circuit): Detect case of pragma Assert argument
8258         evaluating to False, and issue warning message.
8259
8260         * usage.adb: Add lines for -gnatw.a and -gnatw.A
8261
8262 2007-12-13  Emmanuel Briot  <briot@adacore.com>
8263
8264         * g-calend.ads (No_Time): New constant, to represent an uninitialized
8265         time value
8266
8267         * g-catiio.ads, g-catiio.adb (Value): Added support for more date
8268         formats.
8269         (Month_Name_To_Number): New subprogram
8270
8271         * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
8272         letter to upper-case.
8273
8274 2007-12-13  Robert Dewar  <dewar@adacore.com>
8275             Ed Schonberg  <schonberg@adacore.com>
8276
8277         * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
8278
8279         * layout.adb (Resolve_Attribute, case 'Access): If designated type of
8280         context is a limited view, use non-limited view when available. If the
8281         non-limited view is an unconstrained array, this enforces consistency
8282         requirements in 3.10.2 (27).
8283         (Layout_Type): For an access type whose designated type is a limited
8284         view, examine its declaration to determine if it is an unconstrained
8285         array, and size the access type accordingly.
8286         (Layout_Type): Do not force 32-bits for convention c subprogram
8287         pointers in -gnatdm mode, only if real vms target.
8288
8289         * sem_attr.adb (Analyze_Access_Attribute): Use new flag
8290         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
8291         (Analyze_Access_Attribute,Attribute_Address): Remove checks for
8292         violations of the No_Implicit_Dynamic_Code restriction.
8293         (Resolve_Attribute, case 'Access): If designated type of context is a
8294         limited view, use non-limited view when available. If the non-limited
8295         view is an unconstrained array, this enforces consistency requirements
8296         in 3.10.2 (27).
8297         (Layout_Type): For an access type whose designated type is a limited
8298         view, examine its declaration to determine if it is an unconstrained
8299         array, and size the access type accordingly.
8300
8301 2007-12-13  Vincent Celier  <celier@adacore.com>
8302
8303         * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
8304         object directory of main project does not exist.
8305         On VMS, correctly set then environment variable for the source
8306         directories.
8307
8308 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
8309
8310         * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
8311         set to True this procedure will create the value of type REG_EXPAND_SZ.
8312         It was only possible to create REG_SZ values before.
8313
8314 2007-12-13  Robert Dewar  <dewar@adacore.com>
8315
8316         * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
8317         g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
8318         namet-sp.adb, namet-sp.ads: New files.
8319
8320         * g-speche.adb: Use generic routine in g-spchge
8321
8322         * s-wchcnv.ads, s-wchcnv.adb:
8323         Minor code cleanup (make formal type consistent with spec)
8324
8325         * namet.adb: Update comments.
8326
8327         * par-endh.adb (Evaluate_End_Entry): Use new
8328         Namet.Sp.Is_Bad_Spelling_Of function
8329
8330         * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
8331
8332         * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
8333         ancestor is an access type initialized with a box, set its type
8334         explicitly, for use in subsequent expansion.
8335         (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
8336         function
8337
8338 2007-12-13  Robert Dewar  <dewar@adacore.com>
8339
8340         * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
8341         access Vstring)
8342
8343 2007-12-13  Robert Dewar  <dewar@adacore.com>
8344
8345         * inline.adb (Back_End_Cannot_Inline): Use new flag
8346         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
8347
8348         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
8349         Has_Pragma_Inline_Always instead.
8350         of obsolete function Is_Always_Inlined
8351         (Build_Body_To_Inline): Same change
8352         (Cannot_Inline): Same change
8353         Do not give warning on exception raise in No_Return function
8354
8355         * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
8356         component has two inconsistent component clauses in the same record
8357         representation clause, favor the message that complains about
8358         duplication rather than inconsistency.
8359         Update comments.
8360         (Record_Representation_Clause): Do not warn on missing component
8361         clauses for inherited components of a type extension.
8362         (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
8363         an overloadable item if it is a pragma that can apply to multiple
8364         overloadable entities (e.g. Inline) because a pragma cannot be on
8365         more than one chain at a time.
8366         (Validate_Unchecked_Conversion): Add code to warn on unchecked
8367         conversion where one of the operands is Ada.Calendar.Time.
8368         (Analyze_Attribute_Definition_Clause): Fix typo in error message.
8369         For now, ignore Component_Size clause on VM targets, as done for
8370         pragma Pack.
8371
8372 2007-12-13  Emmanuel Briot  <briot@adacore.com>
8373             Vincent Celier  <celier@adacore.com>
8374
8375         * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
8376         string
8377         (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
8378         prj.ads
8379         (Hash): Move instantiation of System.HTable.Hash from spec to body
8380         (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
8381         systems, since we do not need to recompute the Name_Id for the canonical
8382         file name.
8383         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
8384         as a parameter. This parameter is in fact always "ada" in all calls, and
8385         we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
8386         while loading a project with 40000 files
8387
8388         * prj-attr.adb: Fix name of attribute Dependency_Driver
8389         Change the kind of indexing for attribute Root
8390
8391         * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
8392         variables already declared, in case constructions.
8393
8394         * prj-env.adb (Initialize): Reset Current_Source_Path_File and
8395         Current_Object_Path_File to No_Path.
8396
8397         * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
8398         ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
8399
8400         * prj-makr.adb: new parameter Current_Dir
8401
8402         * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
8403         Ada sources when language is not Ada.
8404         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
8405         (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
8406         (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
8407         (Locate_Directory): Always resolve links when computing Canonical_Path
8408         (Look_For_Sources): Make sure that Name_Buffer contains the file name
8409         in Source_Files before checking for the presence of a directory
8410         separator.
8411         Optimize calls to Name_Find when on case sensitive systems.
8412         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
8413         as a parameter.
8414         (Prj.Nmsc.Check): new parameter Current_Dir
8415         (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
8416         cannot be empty and the spec suffix cannot be the same as the body or
8417         separate suffix.
8418         (Get_Unit): When a file name can be of several unit kinds (spec, body or
8419         subunit), always consider the longest suffix.
8420         (Check_Configuration): Do not issue an error if there is no compiler
8421         for a language. Just issue a warning and ignore the sources for the
8422         language.
8423         (Check_Library_Attributes): Only check Library_Dir if Library_Name is
8424         not empty.
8425         (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
8426         (Unit_Exceptions): New hash table
8427         (Check_Naming_Schemes): Check if a file that could be a unit because of
8428         the naming scheme is not in fact a source because there is an exception
8429         for the unit.
8430         (Look_For_Sources): Put the unit exceptions in hash table
8431         Unit_Exceptions
8432         (Get_Unit_Exceptions): Give initial value No_Source to local variable
8433         Other_Part to avoid exception when code is compiled with validity
8434         checking.
8435         (Get_Sources_From_File): Check that there is no directory information
8436         in the file names.
8437         (Look_For_Sources): Check that there is no directory information in the
8438         list of file names in Source_Files.
8439         (Look_For_Sources): In multi-language mode, do not allow exception file
8440         names that are excluded.
8441         (Excluded_Sources_Htable): New hash table
8442         (Search_Directories.Check_File): New procedure to simplify
8443         Search_Directories.
8444         (Search_Directories): Do not consider excluded sources
8445         (Look_For_Sources): Populate Excluded_Sources_Htable before calling
8446         Search_Directories.
8447         (Get_Exceptions): Set component Lang_Kind of Source_Data
8448         (Get_Unit_Exceptions): Ditto
8449         (Search_Directories): Ditto
8450
8451         * prj-pars.adb: new parameter Current_Dir
8452
8453         * prj-part.ads, prj-part.adb:
8454         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
8455         (Opt.Follow_Links_For_Dirs): New flag
8456         (Project_Path_Name_Of): Cache information returned by this routine as
8457         Locate_Regular_File is a costly routine. The code to output a log
8458         information and the effective call to Locate_Regular_File is now
8459         factorized into a routine (code clean-up).
8460         (Parse, Parse_Single_Project): new parameter Current_Dir
8461         When main project file cannot be found, indicate in the error
8462         message the project path that was used to do the search.
8463
8464         * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
8465         (Prj.Proc.Process*): new parameter Current_Dir
8466
8467         * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
8468
8469 2007-12-13  Bob Duff  <duff@adacore.com>
8470
8471         * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
8472         procedure to be called from the back end to check the
8473         No_Implicit_Dynamic_Code restriction.
8474
8475 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
8476
8477         * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
8478         Fixes another case where RTE_Available_Call was ignored instead of being
8479         taken into account.
8480         (Load_Fail): Ditto.
8481
8482         * rtsfind.ads: Add new entries.
8483
8484 2007-12-13  Robert Dewar  <dewar@adacore.com>
8485
8486         * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
8487         g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
8488
8489         * scn.adb: Implement BOM recognition
8490
8491 2007-12-13  Thomas Quinot  <quinot@adacore.com>
8492             Ed Schonberg  <schonberg@adacore.com>
8493
8494         * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
8495         subprogram body that acts as its own spec may not have a non-private
8496         WITH clause on a private sibling.
8497         (Build_Unit_Name): If the parent unit in the name in a with_clause on a
8498         child unit is a renaming, create an implicit with_clause on that
8499         parent, and not on the unit it renames, to prevent visibility errors
8500         in the current unit.
8501
8502 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
8503
8504         * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
8505         renaming declaration, use the Slocs of the formal parameters from the
8506         declaration of the formal subprogram when creating the formal parameter
8507         entities in the renaming declaration.
8508         (Analyze_Formal_Type_Declaration): Change the placement of the error
8509         message concerning illegal known discriminants. It is now posted on the
8510         type rather than on the first discriminant. This change ensures early
8511         error report.
8512         (Freeze_Subprogram_Body): If the generic subprogram is nested within
8513         the package body that contains the instance, do not generate an
8514         out-of-place freeze node for the enclosing package.
8515         (Collect_Previous_Instantiations): Ignore internal instantiations
8516         generated for formal packages.
8517         (Validate_Derived_Type_Instance): Add a check that when a formal
8518         derived type is Known_To_Have_Preelab_Init then the actual type must
8519         have preelaborable initialization, and issue an error when this
8520         condition is violated.
8521
8522 2007-12-13  Robert Dewar  <dewar@adacore.com>
8523
8524         * s-imenne.adb, s-imenne.ads: New files.
8525
8526         * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
8527         s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
8528         s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
8529         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
8530         s-imgwch.ads: New calling sequence for Image routines to avoid sec
8531         stack usage.
8532
8533 2007-12-13  Javier Miranda  <miranda@adacore.com>
8534             Ed Schonberg  <schonberg@adacore.com>
8535
8536         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
8537         generation of spurious error if parent is an interface type; caused
8538         because predefined primitive bodies will be generated later by
8539         Freeze_Record_Type.
8540         (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
8541         flag.
8542         (Derive_Subprograms): Handle derivations of predefined primitives
8543         after all the user-defined primitives to ensure that they are
8544         found in proper order in instantiations.
8545         (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
8546         of Related_Interface to Related_Type.
8547         (Record_Type_Declaration): Minor reordering of calls to decorate the
8548         Tag component because the entity must have set its Ekind attribute
8549         before setting its Is_Tag attribute.
8550         (Analyze_Subtype_Declaration): In the case of subtypes with
8551         Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
8552
8553 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8554             Ed Schonberg  <schonberg@adacore.com>
8555
8556         * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
8557         statement to the list of contexts where a selected component with a
8558         concurrent tagged type prefix should yield a primitive operation.
8559         (Find_Primitive_Operation): Handle case of class-wide types.
8560         (Analyze_Overloaded_Selected_Component): If type of prefix is
8561         class-wide, use visible components of base type.
8562         (Resolve_Selected_Component): Ditto.
8563         (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
8564         formal of a generic subprogram. find candidate interpretations by
8565         scanning the list of generic formal declarations.:
8566         (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
8567         type from a limited_with_clause, and the full view is available, use it
8568         for subsequent semantic checks.
8569         (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
8570         (Find_Primitive_Operation): New function.
8571         (Analyze_Overloaded_Selected_Component): insert explicit dereference
8572         only once if several interpretations of the prefix yield an access type.
8573         (Try_Object_Operation): Code and comment cleanup.
8574         (Analyze_Selected_Component): Reorder local variables. Minot comment and
8575         code reformatting. When the type of the prefix is tagged concurrent, a
8576         correct interpretation might be available in the primitive and
8577         class-wide operations of the type.
8578
8579 2007-12-13  Robert Dewar  <dewar@adacore.com>
8580             Ed Schonberg  <schonberg@adacore.com>
8581
8582         * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
8583         renaming entry as subprogram using rename-as-body if subprogram spec
8584         frozen.
8585         (Use_One_Type): The clause is legal on an access type whose designated
8586         type has a limited view.
8587         (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
8588         (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
8589         (Analyze_Renamed_Primitive_Operation): new procedure to determine the
8590         operation denoted by a selected component.
8591         (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
8592         it can be an expression, possibly overloaded, that returns a task or
8593         an access to one.
8594
8595 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8596             Gary Dismukes  <dismukes@adacore.com>
8597
8598         * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
8599         requeue statement is dispatching. Do not emit an error when the name is
8600         not an entry and the context is a dispatching select. Add code to
8601         perform subtype conformance between the formals of the current entry
8602         and those of the target interface primitive.
8603         (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
8604         Timed_Entry_Call): Analyze the triggering statement as the first step of
8605         the processing. If this is a dispatching select, postpone the analysis
8606         of all select statements until the Expander transforms the select. This
8607         approach avoids generating duplicate identifiers after the Expander has
8608         replicated some of the select statements. In case the Expander is
8609         disabled, perform regular analysis.
8610         (Check_Triggering_Statement): New routine.
8611         (Analyze_Requeue): Exclude any interpretations that are not entries when
8612         checking overloaded names in a requeue. Also test type conformance for
8613         matching interpretations rather than requiring subtype conformance at
8614         that point to conform with the RM's resolution rule for requeues.
8615
8616 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
8617
8618         * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
8619         inherited operation is a defaulted tag-indeterminate call, and there is
8620         a statically tagged actual, use the static tag as a controlling actual
8621         for the defaulted actual.
8622
8623 2007-12-13  Geert Bosch  <bosch@adacore.com>
8624
8625         * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
8626         context, so do not call Check_Non_Static_Context.
8627
8628 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8629
8630         * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
8631         whether formal E is an entity which may have parameters.
8632
8633 2007-12-13  Bob Duff  <duff@adacore.com>
8634             Javier Miranda  <miranda@adacore.com>
8635             Robert Dewar  <dewar@adacore.com>
8636
8637         * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
8638         (Set_Convention): New procedure to set the Convention flag, and in
8639         addition make sure the Favor_Top_Level flag is kept in sync (all
8640         foreign-language conventions require Favor_Top_Level = True).
8641         (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
8642         to Related_Type.
8643         (Collect_Interfaces_Info): Minor update to handle the two secondary
8644         dispatch tables. Update occurrence of Related_Interface to Related_Type.
8645         (Generate_Parent_Ref): Add parameter to specify entity to check
8646         (Is_Preelaborable_Expression): Allow the name of a discriminant to
8647         initialize a component of a type with preelaborable initialization.
8648         This includes the case of a discriminal used in such a context.
8649         (Is_Dependent_Component_Of_Mutable_Object): Take into account the
8650         latest Ada 2005 rules about renaming and 'Access of
8651         discriminant-dependent components.
8652         (Check_Nested_Access): Add handling when there are no enclosing
8653         subprograms (e.g. case of a package body).
8654         (Find_Parameter_Type): Factor routine from several other compiler files.
8655         Remove routine from Find_Overridden_Synchronized_Primitive.
8656
8657 2007-12-13  Thomas Quinot  <quinot@adacore.com>
8658
8659         * sinput.adb (Get_Source_File_Index): Add assertion to guard against
8660         an invalid access to an uninitialized slot in the
8661         Source_File_Index_Table.
8662
8663 2007-12-13  Thomas Quinot  <quinot@adacore.com>
8664
8665         * sinput-l.adb (Load_File): Disable style checks when preprocessing.
8666
8667 2007-12-13  Bob Duff  <duff@adacore.com>
8668
8669         * s-soflin.ads: Apply new pragma Favor_Top_Level to all
8670         access-to-subprogram types in this package.
8671
8672 2007-12-13  Olivier Hainque  <hainque@adacore.com>
8673
8674         * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
8675         with Stack_Grows_Down in System.Parameters. Rename Array_Address into
8676         Stack_Overlay_Address and document that we are using an internal
8677         abstraction.
8678         (Byte_Size, Unsigned_32_Size): Remove, now useless.
8679         (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
8680         consistently throughout the various implementation pieces.
8681
8682         * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
8683         overlay we are using to fill the stack area with patterns.
8684         (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
8685         (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
8686         (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
8687
8688 2007-12-13  Robert Dewar  <dewar@adacore.com>
8689
8690         * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
8691
8692 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
8693
8694         * s-tassta.adb:
8695         (Create_Task): Take into account tasks created by foreign threads.
8696         Code clean up: use constants instead of hard coded values.
8697
8698 2007-12-13  Robert Dewar  <dewar@adacore.com>
8699
8700         * styleg.adb (Check_Comment): More liberal rules for comment placement
8701
8702 2007-12-13  Olivier Hainque  <hainque@adacore.com>
8703
8704         * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
8705         of Procedure Value instead of Frame Pointer as the invocation
8706         identifier associated with the instruction pointer in each traceback
8707         entry.
8708
8709         * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
8710         TB_Entry_For): Revert back to use of Procedure Value instead of Frame
8711         Pointer as the invocation identifier passed to tbk$symbolize.
8712
8713         * s-traent-vms.ads, s-traent-vms.adb
8714         (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
8715         Procedure Value instead of Frame Pointer as the invocation identifier
8716         passed to tbk$symbolize.
8717
8718 2007-12-13  Robert Dewar  <dewar@adacore.com>
8719
8720         * tbuild.ads, tbuild.adb:
8721         Fix location of flag for unrecognized pragma message
8722
8723 2007-12-13  Robert Dewar  <dewar@adacore.com>
8724
8725         * treepr.ads, treepr.adb: (pl): implement use of positive value
8726         shorthands
8727
8728 2007-12-13  Robert Dewar  <dewar@adacore.com>
8729
8730         * xeinfo.adb: Remove warnings
8731         * xnmake.adb: Remove warnings
8732         * xsinfo.adb: Remove warnings
8733         * xtreeprs.adb: Remove warnings
8734         * xsnames.adb: Remove warnings
8735
8736         * a-ngcoar.adb: Fix typo.
8737         * s-interr.adb: Minor reformatting
8738         * env.c: Minor reformatting.
8739         * g-bytswa.adb: Minor reformatting.
8740         * g-rannum.ads: Minor documentation improvements
8741         * s-tasinf-mingw.adb: Minor header fix
8742         * a-clrefi.adb: Minor reformatting
8743         * g-sttsne.ads: Minor documentation improvement
8744         * g-sttsne-locking.ads: Minor documentation improvement
8745         * g-soliop-solaris.ads: Minor documentation improvement
8746         * g-soliop-mingw.ads: Minor documentation improvement
8747         * g-soliop.ads: Minor documentation improvement
8748         * exp_aggr.ads: Minor reformatting
8749         * debug.adb: Add documentation for the gprbuild debug flags
8750         * exp_ch2.adb: Use Nkind_In to simplify code throughout
8751         * exp_pakd.adb: Minor reformatting
8752
8753         * g-altive.ads, g-alleve.adb: Remove assertions.
8754         Add comment about minor differences between targets regarding
8755         floating-point operations.
8756
8757         * g-thread.adb: Remove pragma unreferenced.
8758         * lib.ads: Minor reformatting
8759         * par-ch9.adb: Minor reformatting of error messages
8760         * sem_case.adb: Minor reformatting
8761         * s-fileio.adb: Minor reformattinng
8762         * s-vmexta.ads: Minor typo
8763         * vxaddr2line.adb:
8764         Take into account 'Success' value as per new GNAT warning.
8765
8766 2007-12-13  Vincent Celier  <celier@adacore.com>
8767
8768         * a-direct.adb (Create_Path): Always take '/' as a directory separator,
8769         even on Windows
8770
8771 2007-12-13  Robert Dewar  <dewar@adacore.com>
8772             Bob Duff  <duff@adacore.com>
8773
8774         * gnat_ugn.texi: Dcoument new rules for style check comment alignment
8775         Document that suffixes may be terminations of each others
8776         Add doc for -gnatw.a and -gnatw.A
8777         Document gnatbind -Wx switch
8778         Document BOM recognition
8779         Document pragma Implemented_By_Entry.
8780         Document new units.
8781
8782         * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
8783         Add doc for pragma Unreferenced suppressing no entities referenced msg
8784         Add documentation of GNAT.Directory_Operations.Iteration
8785         Add documentation of GNAT.Random_Numbers
8786         Add documentation for pragma Shared.
8787         Correct documentation for Bit_Order
8788         Add documentation for the Pool_Address attribute.
8789         Fix and improve documentation of pragma machine_attribute.
8790         New pragma Fast_Math
8791         Document BOM recognition
8792
8793         * vms_data.ads: Add entries for -gnatw.a -gnatw.A
8794         Add /Wide_Character_Encoding for binder
8795         Add qualifier for the new gnatpp option --no-separate-loop-then
8796
8797 2007-12-13  Matthew Heaney  <heaney@adacore.com>
8798
8799         * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
8800         which generic formal operations are called for each operation.
8801
8802 2007-12-13  Olivier Hainque  <hainque@adacore.com>
8803
8804         * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
8805         (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
8806
8807 2007-12-13  Emmanuel Briot  <briot@adacore.com>
8808
8809         * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
8810         Reference_Dir unless we actually need it.
8811
8812 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
8813             Tristan Gingold  <gingold@adacore.com>
8814
8815         * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
8816
8817         * s-osprim-vms.adb,
8818         a-calend-vms.adb: Remove pragma warning off and add pragma
8819         unreferenced.
8820
8821 2007-12-13  Robert Dewar  <dewar@adacore.com>
8822
8823         * impunit.adb: Add entries for missing units
8824
8825         * Makefile.rtl: Add new run-time units.
8826
8827         * Make-lang.in:  Update dependencies.
8828
8829 2007-12-13  Bob Duff  <duff@adacore.com>
8830
8831         * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
8832         types, set Can_Use_Internal_Rep appropriately, based on
8833         Always_Compatible_Rep_On_Target.
8834
8835 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
8836             Arnaud Charlet  <charlet@adacore.com>
8837
8838         * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
8839         it to the front end and setting the aamp_target environment variable
8840         to the switch's argument to ensure that gnaampbind and gnaamplink will
8841         take the specified library into account.
8842         (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
8843         target, since the CIL compiler supports an "object" file (.il files).
8844
8845 2007-12-13  Vincent Celier  <celier@adacore.com>
8846
8847         * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
8848         (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
8849
8850 2007-12-13  Geert Bosch  <bosch@adacore.com>
8851
8852         * s-parame-vxworks.adb:
8853         Update comments to reflect usage of this package by Nucleus.
8854
8855 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
8856
8857         * i-vxwork.ads: Kill new warning on Convention C, since changing the
8858         spec would break code.
8859
8860         * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
8861
8862         * system-vxworks-alpha.ads: Removed.
8863
8864 2007-12-10  Eric Botcazou  <ebotcazou@adacore.com>
8865
8866         * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
8867
8868 2007-12-09  Samuel Tardieu  <sam@rfc1149.net>
8869
8870         PR ada/34366
8871         * sem_ch3.adb (Designates_T): New function.
8872         (Mentions_T): Factor reusable part of the logic into Designates_T.
8873         Consider non-access parameters and access and non-access result.
8874         (Check_Anonymous_Access_Components): Set ekind of anonymous access to
8875         E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
8876
8877         * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
8878
8879 2007-12-07  Ludovic Brenta  <ludovic@ludovic-brenta.org>
8880
8881         PR ada/34361
8882         * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
8883         the new implementation of target-specific calls.
8884
8885 2007-12-07  Olivier Hainque  <hainque@adacore.com>
8886
8887         * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
8888         the designated full view, only follow a second level Full_View link
8889         for Non_Limited_Views of from_limited_with references.
8890
8891 2007-12-07  Samuel Tardieu  <sam@rfc1149.net>
8892
8893         PR ada/15805
8894         * sem_ch6.adb (Process_Formals): Prevent an access type formal
8895         to be initialized with an access to constant object.
8896
8897         * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
8898         when an access to constant is used to initialize an access
8899         value.
8900
8901         PR ada/21346
8902         * a-direct.adb (Compose): Containing_Directory can be an empty string.
8903
8904 2007-12-07  Olivier Hainque  <hainque@adacore.com>
8905
8906         PR ada/34173
8907         * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
8908         the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
8909         this is from an alignment clause on the GNAT entity.
8910         * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
8911         to distinguish the case where we set it from the type's alignment.
8912         When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
8913         whether this alignment was set from an explicit alignment clause.
8914
8915 2007-12-06  Eric Botcazou  <ebotcazou@adacore.com>
8916
8917         * decl.c (make_packable_type): Revert last change.
8918         (gnat_to_gnu_field): Avoid setting size and position multiple times.
8919         * utils.c (finish_record_type): Retrieve the real name of the type.
8920
8921 2007-12-05  Eric Botcazou  <ebotcazou@adacore.com>
8922
8923         * trans.c (lvalue_required_p): Take base node directly instead
8924         of its parent.  Rename second parameter to 'gnu_type'.
8925         <N_Indexed_Component>: Return 0 if the node isn't the prefix.
8926         <N_Slice>: Likewise.
8927         (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
8928         Adjust calls to lvalue_required_p.
8929
8930 2007-12-05  Samuel Tardieu  <sam@rfc1149.net>
8931
8932         PR ada/21489
8933         * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
8934         parameters of an entry call.
8935
8936 2007-12-03  Robert Dewar  <dewar@adacore.com>
8937             Samuel Tardieu  <sam@rfc1149.net>
8938
8939         PR ada/34287
8940         * sem_util.adb (Safe_To_Capture_Value): Do not capture values
8941         of variables declared in a library-level package.
8942
8943 2007-12-02  Samuel Tardieu  <sam@rfc1149.net>
8944
8945         * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
8946         of Empty_String'Unchecked_Access.
8947
8948         * Makefile.in: Add support for sh4-linux.
8949
8950         * system-linux-sh4.ads: New file.
8951
8952 2007-12-01  Kostik Belousov  <kostikbel@ukr.net>
8953
8954         PR ada/33722
8955         * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
8956         and its argument must not be free()ed.
8957
8958 2007-11-29  Eric Botcazou  <ebotcazou@adacore.com>
8959
8960         * decl.c (make_packable_type): Retrieve the real name of the type.
8961         (maybe_pad_type): Simplify similar code.
8962
8963 2007-11-28  Samuel Tardieu  <sam@rfc1149.net>
8964
8965         PR ada/15804
8966         * par-ch3.adb (P_Variant_Part): Signal an error when anything other
8967         than an identifier is used after "case" in a variant_part.
8968
8969         PR ada/17318
8970         * par-ch4.adb (Is_Parameterless_Attribute): New map.
8971         (P_Name, Scan_Apostrophe block): Parse left parenthesis following
8972         attribute name or not depending on the new map.
8973
8974         * sem-attr.adb (Analyze_Attribute): Parameterless attributes
8975         returning a string or a type will not be called with improper
8976         arguments.
8977
8978         * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
8979
8980         * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
8981
8982         PR ada/32792
8983         * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
8984         Signal an error when attribute argument is a fixed-point value of
8985         an unknown type.
8986
8987         PR ada/22559
8988         * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
8989         a derived ordinary fixed point type.
8990
8991         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
8992         RM_Size when a Small clause is found.
8993
8994 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
8995
8996         PR 34081/C++
8997         * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
8998         Pass 'false' for the new allocate_struct_function parameter.
8999         * utils.c (build_function_stub): Likewise.
9000
9001 2007-11-25  Richard Guenther  <rguenther@suse.de>
9002
9003         * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
9004         (gnat_poplevel): Likewise.
9005
9006 2007-11-25  Eric Botcazou  <ebotcazou@adacore.com>
9007
9008         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
9009         strict alignment, no alignment clause and a known static size, cap
9010         the type alignment to the greatest power of 2 factor of the size.
9011         (gnat_to_gnu_field): If the field has a component clause, is aliased
9012         or of a type with strict alignment, require that its size be equal to
9013         that of the type.
9014         (validate_size): Use the type size as the minimum size for a type with
9015         strict alignment.
9016
9017 2007-11-23  Samuel Tardieu  <sam@rfc1149.net>
9018
9019         * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
9020         s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
9021         s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
9022         Use 'Access instead of 'Unchecked_Access in second and third
9023         arguments of pthread_sigmask.
9024
9025 2007-11-23  Eric Botcazou  <ebotcazou@adacore.com>
9026
9027         * decl.c (ceil_alignment): New function.
9028         (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
9029         (make_packable_type): Likewise.
9030
9031 2007-11-22  Olivier Hainque  <hainque@adacore.com>
9032
9033         * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
9034         to fit in 80 columns.
9035
9036 2007-11-21  Aurelien Jarno  <aurelien@aurel32.net>
9037
9038         * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
9039         * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
9040
9041 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
9042
9043         PR ada/34098
9044         * misc.c (gnat_adjust_rli): Delete.
9045         (gnat_init): Do not initialize the translation code here.
9046         Do not call set_lang_adjust_rli.
9047         * trans.c (init_code_table): Make static.
9048         (gnat_init_stmt_group): Delete.
9049         (gigi): Initialize the translation code entirely here.
9050         Emit debug info for the common types here instead of...
9051         * utils.c (gnat_init_decl_processing): ...here.
9052         * gigi.h (init_code_table): Delete.
9053         (gnat_init_stmt_group): Likewise.
9054
9055 2007-11-16  Olivier Hainque  <hainque@adacore.com>
9056
9057         * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
9058         retrieving an allocator return value from a super-aligned address from
9059         here to ...
9060         * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
9061         expect a super-aligned address for a fat or thin pointer.
9062
9063 2007-11-14  Eric Botcazou  <ebotcazou@adacore.com>
9064
9065         * trans.c (call_to_gnu): Always set the source location on the call
9066         expression.  If the function returns-by-target, also set it on the
9067         address expression.
9068
9069 2007-11-14  Samuel Tardieu  <sam@rfc1149.net>
9070
9071         * adaint.c, init.c, initialize.c, link.c: Remove system-specific
9072         sections of non-supported Interix target.
9073
9074         * s-osinte-interix.ads: Removed.
9075
9076         * i-cstrin.ads (chars_ptr): Make it a C convention type.
9077
9078 2007-11-13  Samuel Tardieu  <sam@rfc1149.net>
9079
9080         * a-tasatt.adb: Add a comment at the beginning of the package
9081         explaining why in general 'Unchecked_Access must be used instead
9082         of 'Access.
9083
9084         * sem_prag.adb (Process_Convention): Move the test for the
9085         entity on which the Convention pragma applies down to also
9086         forbid pragma Convention on enumeration literals reached
9087         through renamings.
9088
9089 2007-11-10  Samuel Tardieu  <sam@rfc1149.net>
9090
9091         * a-tasatt.adb: Revert previous change for this file as it will
9092         generate an error when this package is instantiated from a
9093         local context.
9094
9095 2007-11-07  Samuel Tardieu  <sam@rfc1149.net>
9096
9097         * a-tasatt.adb: Type Wrapper should be declared in comment instead
9098         of already declared type Node_Access.
9099         Use 'Access instead of 'Unchecked_Access when applicable. Local
9100         lifetime is the one of the package.
9101         (Set_Value): W is allocated on the heap.
9102
9103         * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
9104         applicable.
9105         (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
9106         access type.
9107         (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
9108         access type.
9109
9110         * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
9111         applicable.
9112         (elaboration code): Timer_Queue lifetime is the one of the
9113         package.
9114
9115         * tracebak.c (i386 alternative): Remove useless comparaison
9116         which is always false; LOWEST_ADDRESS is 0 and is never greater
9117         than an unsigned integer.
9118
9119         * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
9120         embedded check for "Ada_Version >= Ada_05".
9121
9122 2007-11-07  Olivier Hainque  <hainque@adacore.com>
9123
9124         * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
9125         craft and expand comment.
9126
9127 2007-11-01  Eric Botcazou  <ebotcazou@adacore.com>
9128
9129         * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
9130
9131 2007-10-23  Eric Botcazou  <ebotcazou@adacore.com>
9132
9133         * misc.c (gnat_handle_option): Replace call to abort with
9134         call to gcc_unreachable.
9135         (gnat_init): Likewise.
9136         (gnat_expand_expr): Likewise.
9137         (fp_prec_to_size): Likewise.
9138         (fp_size_to_prec): Likewise.
9139
9140 2007-10-23  Richard Guenther  <rguenther@suse.de>
9141
9142         PR bootstrap/33608
9143         * tracebak.c: #undef abort after including system.h.
9144
9145 2007-10-20  Danny Smith  <dannysmith@users.sourceforge.net>
9146
9147         * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
9148         s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
9149         for win32 targets.
9150         (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
9151
9152 2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
9153
9154         * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
9155         Set the protection status of the guard page based on the value of On.
9156
9157         * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
9158
9159         * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
9160         (Exit_Task): Pass False to Hide_Yellow_Zone.
9161
9162 2007-10-15  Robert Dewar  <dewar@adacore.com>
9163
9164         * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
9165         s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
9166         a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
9167         checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
9168         freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
9169         gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
9170         mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
9171         prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
9172         sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
9173         s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
9174         uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
9175         a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
9176         a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
9177         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
9178         a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
9179         a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
9180         Minor reformatting.
9181         Add Unreferenced and Warnings (Off) pragmas for cases of
9182         variables modified calls where they are IN OUT or OUT parameters and
9183         the resulting values are not subsequently referenced. In a few cases,
9184         we also remove redundant code found by the new warnings.
9185
9186         * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
9187         sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
9188         sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
9189         sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
9190         warning controlled by -gnatw.o that warns on cases of out parameter
9191         values being ignored.
9192
9193 2007-10-15  Geert Bosch  <bosch@adacore.com>
9194
9195         * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
9196
9197         * expect.c: Initial port to arm-mentor-nucleus.
9198         Use kill for __gnat_kill() on VMS.
9199
9200 2007-10-15  Emmanuel Briot  <briot@adacore.com>
9201
9202         * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
9203         value.
9204         (Xref_Record): Change type for Line, since in the case of a reference to
9205         a predefined entity (as happens for array index types), the line is set
9206         to 0.
9207         Add support for parsing multiple array index types info, or
9208         multiple inherited interfaces info. This information cannot be stored
9209         in Xref_Entity_Record, which only supports a single instance of Tref_*,
9210         and is therefore stored in the list of references instead. It has a
9211         special treatement later on in tools that use this information.
9212
9213 2007-10-15  Tristan Gingold  <gingold@adacore.com>
9214
9215         * debug.adb: Document use of -gnatd.a and -gnatd.I
9216
9217         * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
9218
9219 2007-10-15  Javier Miranda  <miranda@adacore.com>
9220
9221         * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
9222         Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
9223         care of access to class-wide interface types plus removal of bizarre
9224         conversion of tagged object to access type (reported by Gary
9225         Dismukes). After this patch there is no need to perform any
9226         additional management on these nodes in Expand_Interface_Actuals.
9227
9228         * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
9229         that handles use of 'Access and 'Unchecked_Access applied to
9230         actuals covering interface types. Such code is now
9231         centralized in Expand_N_Attribute_Reference.
9232
9233 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
9234
9235         * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
9236         of tagged types whose ultimate ancestor is a CPP type.
9237         (Freeze_Array_Type): For a packed array type, generate an initialization
9238         procedure if the type is public, to handle properly a client that
9239         specifies Normalize_Scalars.
9240
9241 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
9242
9243         * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
9244         inside a generic body, retrieve the full view of the entry family
9245         discrete subtype if available.
9246
9247 2007-10-15  Thomas Quinot  <quinot@adacore.com>
9248
9249         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
9250         attempt to generate stubs for hidden primitive operations.
9251
9252 2007-10-15  Vincent Celier  <celier@adacore.com>
9253
9254         * mlib-tgt-specific.adb (Support_For_Libraries): New function,
9255         returning None, used when there is no platform specific body for
9256         MLib.Tgt.Specific.
9257
9258 2007-10-15  Bob Duff  <duff@adacore.com>
9259
9260         * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
9261         (passing'Unrestricted_Access of nested subprograms to Sort) with use of
9262         the generic Heap_Sort_G, in order to avoid trampolines.
9263
9264 2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
9265             Jose Ruiz  <ruiz@adacore.com>
9266
9267         * vx_stack_info.c: New file.
9268
9269         * i-forbla-unimplemented.ads: New file.
9270
9271         * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
9272         for unsupported configurations; use it on VMS targets instead of the
9273         real one.
9274         (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
9275         vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
9276         used by VxWorks targets to have access to task-specific data and be
9277         able to extract the stack boundaries for stack checking.
9278         Use system-vms-ia64.ads on ivms.
9279
9280         * Make-lang.in: Update dependencies.
9281
9282         * sysdep.c (__gnat_get_stack_info): Move to a standalone file
9283         (vx_stack_info.c).
9284
9285 2007-10-15  Vincent Celier  <celier@adacore.com>
9286
9287         * snames.adb, snames.ads: Add new standard name runtime_library_dir
9288
9289         * prj.ads (Language_Config): Add new component Runtime_Library_Dir
9290
9291         * prj-attr.adb: Add project level attribute Runtime_Library_Dir
9292
9293         * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
9294         the source is unknown.
9295
9296         * prj-ext.adb: Spelling error fix
9297
9298         * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
9299         95 reserved word in its name.
9300         (Process_Project_Level_Array_Attributes): Process new attribute
9301         Runtime_Library_Dir.
9302
9303         * prj-part.adb (Parse_Single_Project): Do not check the name of the
9304         config project against the user project names.
9305
9306         * prj-proc.adb (Expression): In multi-language mode, indexes that do
9307         not include a dot are always case insensitive.
9308         (Process_Declarative_Items): Ditto
9309         (Process_Project_Tree_Phase_1): Set Success to False in case an error is
9310         detected.
9311
9312         * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
9313         True, compare both indexes in lower case.
9314
9315 2007-10-15  Robert Dewar  <dewar@adacore.com>
9316
9317         * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
9318
9319 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
9320
9321         * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
9322         association for an access component, add an association with null as
9323         the expression. Remove testing for array subtypes and the setting in
9324         that case of Ctyp to the array component type, which prevented proper
9325         inclusion of an association for null-initialized arrays. Collapse
9326         condition that tests for array subtypes into just a test of
9327         Is_Partially_Initialized_Type (which already covers arrays anyway).
9328
9329 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
9330
9331         * sem_ch12.adb: Minor code reformatting.
9332         (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
9333         find the parent package which may have been hidden by local
9334         declarations.
9335
9336 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
9337
9338         * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
9339         flag of derived concurrent types, taking into account the flag setting
9340         on the parent subtype and any new set of discriminants.
9341
9342 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
9343
9344         * sem_ch4.adb: Minor code and comment reformatting.
9345         (Analyze_Allocator): When the designated type of an unconstrained
9346         allocator is a record with unknown discriminants or an array with
9347         unknown range bounds, emit a detailed error message depending on the
9348         compilation mode and whether the designated type is limited.
9349
9350 2007-10-15  Tristan Gingold  <gingold@adacore.com>
9351
9352         * system-vms-ia64.ads: New file.
9353
9354         * system-vms_64.ads: Minor comment fix.
9355
9356 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
9357
9358         * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
9359         body generated for a function with a controlling result that is a null
9360         extension, discard the generated body in favor of the current explicit
9361         one.
9362
9363 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
9364
9365         * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
9366         examining its original form, to handle properly operator calls that
9367         have been rewritten.
9368
9369 2007-10-15  Olivier Hainque  <hainque@adacore.com>
9370
9371         * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
9372         instead of a procedure value in each traceback entry.
9373
9374         * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
9375         instead of procedure value to TBK$SYMBOLIZE.
9376
9377         * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
9378         field.
9379         (TB_Entry_For): Account for the PV/FP renaming.
9380
9381         * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
9382         add comment.
9383         (Null_TB_Entry): Account for change of component name.
9384         (PV_For): Rename as FP_For.
9385
9386 2007-10-15  Tristan Gingold  <gingold@adacore.com>
9387
9388         * trans.c (gnat_to_gnu): Remove the padding structure more often.
9389         This optimize assignment to over-aligned record.
9390
9391 2007-10-15  Emmanuel Briot  <briot@adacore.com>
9392
9393         * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
9394         interfaces.
9395
9396         * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
9397         type, for dispatching calls.
9398
9399 2007-10-15  Vincent Celier  <celier@adacore.com>
9400             Robert Dewar  <dewar@adacore.com>
9401
9402         * gnat_ugn.texi: Add documentation for switches --version and --help
9403         for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
9404         gnatxref, gnatfind, gnatls, and gnatclean.
9405         Document -gnatw.o.
9406         Mention attribute Excluded_Source_Dirs
9407         Replace obsolescent attribute Locally_Removed_Files with attribute
9408         Excluded_Source_Files.
9409         Improve documentation of -u (gnatbind)
9410         Document how to do reliable stack checking for the environmental task
9411         on iVMS.
9412
9413         * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
9414         Document attribute Excluded_Source_Files and indicate that attribute
9415         Locally_Removed_Files is obsolescent.
9416
9417 2007-10-15  Thomas Quinot  <quinot@adacore.com>
9418
9419         * g-soccon-vms.ads: Fix value of MSG_WAITALL.
9420
9421         * gen-soccon.c:
9422         Update documentation to note that OpenVMS 8.3 or later must be used
9423         to generate g-soccon-vms.ads.
9424
9425         * atree.adb: Add ??? comment
9426
9427         * exp_util.adb: Minor reformatting.
9428         Add ??? comment in Kill_Dead_Code.
9429
9430 2007-10-15  Robert Dewar  <dewar@adacore.com>
9431
9432         * errout.ads: Comment clarification
9433
9434         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
9435         (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
9436
9437         * lib.ads: Comment update
9438
9439         * init.c: Minor reformatting.
9440
9441         * sem_attr.adb: Minor formatting
9442
9443         * osint-b.ads: Minor reformatting
9444
9445         * sem_ch9.adb: Implement -gnatd.I switch
9446
9447         * g-comlin.adb: (Start): Fix handling of empty command line.
9448
9449         * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
9450         even when -rules follows the -cargs section.
9451
9452 2007-10-08  Ollie Wild  <aaw@google.com>
9453
9454         * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
9455         gnat_return_tree.
9456         (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
9457         gnat_return_tree.
9458         (gnat_eh_runtime_type): Removed.
9459         (gnat_return_tree): New function.
9460
9461 2007-10-08  Ben Elliston  <bje@au.ibm.com>
9462
9463         PR ada/33454
9464         Revert:
9465         2007-08-31  Ben Elliston  <bje@au.ibm.com>
9466
9467         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
9468         when compiling for powerpc64-*-linux.
9469         * system-linux-ppc64.ads: New file.
9470
9471 2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
9472
9473         Mapped location support
9474         * back_end.adb (Call_Back_End): Pass information about source
9475         files instead of units to gigi.
9476         * gigi.h (struct File_Info_Type): New.
9477         (gigi): Rename and change type of number_units parameter, change
9478         type of file_info_ptr parameter.
9479         * trans.c (number_files): New global variable.
9480         (gigi): Rename and change type of number_units parameter, change
9481         type of file_info_ptr parameter.
9482         If mapped location support is enabled, create the isomorphic mapping
9483         between source files and line maps.
9484         (Sloc_to_locus): If mapped location support is enabled, translate
9485         source location into mapped location.
9486         (annotate_with_node): Rename into set_expr_location_from_node.
9487         Call set_expr_location instead of annotate_with_locus.
9488         (Pragma_to_gnu): Adjust for above change.
9489         (Loop_Statement_to_gnu): Likewise.
9490         (call_to_gnu): Likewise.
9491         (Handled_Sequence_Of_Statements_to_gnu): Likewise.
9492         (gnat_to_gnu): Likewise.
9493         (add_stmt_with_node): Likewise.
9494         (add_cleanup): Likewise.
9495         * utils.c (gnat_init_decl_processing): Do not set input_line.
9496
9497 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
9498
9499         * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
9500         (Applicable_Use): Emit a warning when a package tries to use itself.
9501         (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
9502         is already in use or the package where it is declared is in use or is
9503         declared in the current package.
9504         (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
9505
9506         * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
9507         s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
9508         s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
9509
9510 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
9511
9512         * a-calend-vms.adb, a-calend.adb:
9513         Add a section on leap seconds control along with two entities used to
9514         enable and disable leap seconds support. The array Leap_Second_Times is
9515         now constant and contains hard time values pre-generated. Remove
9516         all elaboration code used to populate the table of leap seconds.
9517
9518         * bindgen.adb:
9519         Add entity Leap_Seconds_Support to the list of global run-time variables
9520         along with a comment on its usage and values.
9521         (Gen_Adainit_Ada): Add code to generate the declaration and import of
9522         Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
9523         or one (enabled) depending on the presence of binder switch "-y".
9524         (Gen_Adainit_C): Add code to generate the declaration of external int
9525         __gl_leap_seconds_support. Set is value to zero (disabled) or one
9526         (enabled) depending on the presence of binder switch "-y".
9527
9528         * init.c: Add __gl_leap_seconds_support to the list of global values
9529         computed by the binder.
9530
9531 2007-09-26  Jerome Guitton  <guitton@adacore.com>
9532
9533         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
9534         s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
9535          s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
9536         s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
9537
9538         * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
9539
9540         * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
9541         function which can be called by the debugger to interrupt the tasks of
9542         an Ada application asynchronously, as needed on VxWorks.
9543         (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
9544
9545         * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
9546         renamed from Stop_All_Tasks. Update comments.
9547         (Stop_All_tasks): New function declaration.
9548
9549 2007-09-26  Olivier Hainque  <hainque@adacore.com>
9550
9551         * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
9552         #include <utime.h> and #define GCC_RESOURCE_H before
9553         #include <sys/wait.h>.
9554         Add more protections in __gnat_translate_vms.
9555
9556         * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
9557         #include <sys/wait.h>.
9558
9559 2007-09-26  Thomas Quinot  <quinot@adacore.com>
9560             Sergey Rybin  <rybin@adacore.com>
9561
9562         * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
9563
9564         * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
9565         where it belongs.
9566
9567         * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
9568
9569         * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
9570         where it belongs.
9571
9572         * sem_dist.ads: Minor comment fix
9573
9574         * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
9575
9576 2007-09-26  Javier Miranda  <miranda@adacore.com>
9577             Eric Botcazou  <ebotcazou@adacore.com>
9578
9579         * a-tags.adb:
9580         (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
9581          indirection added to the HT_Link component of the TSD. This is required
9582          to statically allocate the TSD.
9583
9584         * a-tags.ads:
9585         Minor reordering of the declarations in the private part. Required to
9586         add a level of indirection to the contents of the TSD component HT_Link.
9587         This is required to statically allocate the TSD.
9588
9589         * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
9590         Is_Statically_Allocated set from constant objects.
9591         Do not make exported constants created by the compiler volatile.
9592         (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
9593         as read-only.
9594
9595         * trans.c (Identifier_to_gnu): For constants, unshare initializers
9596         before returning them.
9597
9598         * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
9599         public part of the package.
9600         (Make_DT): Move HT_Link component out of the TSD record. For this
9601         purpose Make_DT now declares a separate object that stores the
9602         HT_Link value, and initializes the TSD component with the address
9603         of this new object. The addition of this level of indirection is
9604         required to statically allocate the TSD because the TSD cannot
9605         have variable components.
9606         (Expand_Interface_Conversion): Improve the expanded code.
9607         (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
9608
9609         * sem_disp.adb (Check_Dispatching_Operation): In case of a body
9610         declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
9611         if we are building static dispatch tables then we must not generate
9612         extra code to register the primitive because the dispatch table will
9613         be built at the end of the library package; otherwise we notify that
9614         we cannot build the static dispatch table.
9615
9616 2007-09-26  Robert Dewar  <dewar@adacore.com>
9617
9618         * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
9619         overlays.
9620
9621         * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
9622         (Analyze_Record_Representation_Clause): Suppress junk warning for
9623         missing component clause.
9624         (Analyze_Attribute_Definition_Clause, case Address): Apply the special
9625         tests for controlled type overlay to composites with controlled
9626         components.
9627         (Analyze_Record_Representation_Clause): Add reference for component name
9628
9629 2007-09-26  Javier Miranda  <miranda@adacore.com>
9630             Gary Dismukes  <dismukes@adacore.com>
9631
9632         * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
9633         for thunks associated with interface types.
9634
9635         * einfo.ads: Improve documentatation of Is_Internal
9636         (Is_Thunk): New attribute applicable to subprograms. True for thunks
9637         associated with interface types.
9638         Extensive comment fixes regarding flags that appear in all entities. The
9639         documentation is now consistent for all such flags (there were a number
9640         of errors in the documentation in this regard).
9641
9642         * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
9643
9644         * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
9645         of these procedures are passed a function call that already has
9646         build-in-place actuals (testing new flag
9647         Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
9648         the case where processing continues.
9649         (Expand_Call): If the call is generated from a thunk body then we
9650         propagate the extra actuals associated with the accessibility
9651         level of the access type actuals.
9652
9653         * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
9654         of each extra formal of a protected operation to reference the
9655         corresponding extra formal of the subprogram denoted by the
9656         operation's Protected_Body_Subprogram.
9657
9658         * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
9659         N_Function_Call nodes.
9660
9661 2007-09-26  Robert Dewar  <dewar@adacore.com>
9662
9663         * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
9664
9665         * debug.adb: Add d.s flag.
9666
9667 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
9668
9669         * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
9670         debug variable so that it won't be initialized when pragma
9671         Initialize_Scalars is in effect.
9672
9673 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
9674
9675         * freeze.adb (Freeze_Entity): Remove check for preelaborable
9676         initialization of a full view. This is moved to
9677         Analyze_Package_Specification.
9678
9679         * sem_ch7.adb (Analyze_Package_Specification): Add check for
9680         preelaborable initialization of a full view in entity loop.
9681         (Uninstall_Declarations): If entity is a use-visible compilation unit,
9682         its child units are use-visible only if they are visible child units.
9683
9684         * sem_util.adb (Is_Preelaborable_Expression): New function to determine
9685         whether an expression can be used within a type declaration that
9686         requires preelaborable init.
9687         (Check_Components): Replace inline code that does partial checking for
9688         preelaborable default expressions with call to
9689         Is_Preelaborable_Expression.
9690         (Has_Preelaborable_Initialization): In the case of a generic actual
9691         subtype, (that is, Is_Generic_Actual is True), return the result of
9692         applying Has_Preelaborable_Initialization to the generic actual's base
9693         type.
9694
9695 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
9696
9697         * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
9698         call to Jan_1_Day _Of_Week to optimize its performance.
9699         (Is_Leap): Move the routine to the scope of Week_In_Year.
9700         (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
9701         weekday on which January 1 falls of Year - 1 and Year + 1. This function
9702         avoids calling Time_Of and Split, thus making it more efficent.
9703         (Week_In_Year): Reimplemented in oder to follow ISO 8601.
9704
9705         * g-calend.ads (Week_In_Year): Change comment to reflect new
9706         implementation.
9707
9708 2007-09-26  Emmanuel Briot  <briot@adacore.com>
9709
9710         * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
9711         Command_Line): New types
9712         (Define_Alias, Define_Prefix, Free): New subprograms. These provide
9713         support for defining how switches can be grouped on a command line (as
9714         is the case for -gnatw... for GNAT), and how simple switches can be
9715         used as aliases for more complex switches (-gnatwa is same as
9716         -gnatwbcef...)
9717         (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
9718         (Start, Current_*): New subprograms
9719         Added support for parsing an array of strings in addition to the real
9720         command line.
9721         (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
9722          be moved from the body to the private part of the spec.
9723         (*): All subprograms now have an extra parameter with default value to
9724         specify which parser should be used. For backward compatibility, it
9725         defaults to parsing the command line of the application. They were also
9726         modified to properly handle cases where each of the argument does not
9727         start at index 1 (which is always true for Ada.Command_Line, but not
9728         when processing any Argument_List).
9729         (Free): New subprogram
9730         (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
9731         Argument): New subprograms
9732         (Switch_Parameter_Type): New enum, which clarifies the code. The extra
9733         special characters like ':', '=',... are now handled in a single place,
9734         which makes the code more extensible eventually.
9735         (Getopt, Full_Switch): When the switch was returned as part of the
9736         special character '*', make sure it is prepended by the switch character
9737         ('-' in general), so that the application knows whether "foo" or "-foo"
9738         was specified on the command line.
9739
9740 2007-09-26  Florian Villoing  <villoing@adacore.com>
9741
9742         * g-dirope.adb (Remove_Dir): In case we are removing directories
9743         recursively, make sure that if an exception is raised during the
9744         processing, the current working directory is reset to its initial
9745         value before propagating the exception.
9746
9747 2007-09-26  Vincent Celier  <celier@adacore.com>
9748
9749         * gnatbind.adb: If there are several ALI files specified and there is
9750         a main program to bind, the first ALI is expected to contain the main
9751         subprogram and the names of the binder generated files will be derived
9752         from the first ALI file name.
9753         (Gnatbind): Fix insertion character in invocation of Error_Msg
9754
9755 2007-09-26  Vincent Celier  <celier@adacore.com>
9756
9757         * gnatcmd.adb (Check_Files): Do not include sources that have been
9758         removed by attributes Exclude_Source_Files or Locally_Removed_Files.
9759
9760 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
9761
9762         * lib-xref.ads, lib-xref.adb: The entry for array types now carries
9763         information about each of its index types, following the type
9764         reference for its component type.
9765
9766 2007-09-26  Vincent Celier  <celier@adacore.com>
9767
9768         * make.adb: (Kill): New procedure (__gnat_kill imported)
9769         (Running_Compile, Outstanding_Compiles): Global variables that
9770         were previously local to procedure Compile_Sources.
9771         (Sigint_Intercepted): Send signal SIGINT to all outstanding
9772         compilation processes.
9773
9774         (Gnatmake): If project files are used, create the mapping of all the
9775         sources, so that the correct paths will be found.
9776
9777         * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
9778
9779 2007-09-26  Vincent Celier  <celier@adacore.com>
9780
9781         * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
9782
9783         * prj.ads, prj.adb (Default_Language): Remove function, no longer used
9784         Replace components Compiler_Min_Options and Binder_Min_Options with
9785         Compiler_Required_Switches and Binder_Required_Switches in record
9786         Language_Config.
9787         Remove components Default_Language and Config in Project_Tree_Data,
9788         no longer used.
9789
9790         * prj-attr.adb: New attributes Required_Switches (<language>) in
9791         packages Compiler and Binder.
9792
9793         * prj-nmsc.adb: Major rewrite of the processing of configuration
9794         attributes for gprbuild. No impact on GNAT tools.
9795
9796         * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
9797         process configuration attributes: this is done in Prj.Nmsc.Check.
9798         (Recursive_Process): Make a full copy of packages inherited from project
9799         being extended, instead of a shallow copy.
9800         (Process_Project_Tree_Phase_1): New procedure
9801         (Process_Project_Tree_Phase_1): New procedure
9802         (Process): Implementation now uses the two new procedures
9803
9804         * prj-util.adb (Executable_Of): Get the suffix and the default suffix
9805         from the project config, not the tree config that no longer exists.
9806
9807 2007-09-26  Vincent Celier  <celier@adacore.com>
9808
9809         * Make-lang.in: Update dependencies..
9810
9811 2007-09-26  Vincent Celier  <celier@adacore.com>
9812
9813         * osint.adb, osint.ads: Minor reformatting
9814
9815         * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
9816
9817 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
9818
9819         * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
9820         message to cite use of <> in aggregate component associations rather
9821         than wrongly indicating use of limited aggregates.
9822
9823 2007-09-26  Robert Dewar  <dewar@adacore.com>
9824
9825         * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
9826         Address_Taken.
9827
9828 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
9829
9830         * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
9831         ancestor of the derived type, the operations are inherited from the
9832         primary dispatch table of the parent.
9833         (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
9834         when the context is an explicit type conversion.
9835
9836 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
9837
9838         * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
9839         rule for qualified expressions properly, to detect improper conversions
9840         and resolve some cases of overloading.
9841
9842 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
9843
9844         * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
9845         proper kind of reference to the primitive operation, for better source
9846         navigation.
9847         (Valid_Conversion): A tagged conversion is legal if both operands are
9848         tagged.
9849
9850 2007-09-26  Robert Dewar  <dewar@adacore.com>
9851
9852         * sem_warn.adb (Check_References): Catch more cases of unreferenced
9853         packages.
9854
9855 2007-09-26  Vincent Celier  <celier@adacore.com>
9856
9857         * snames.adb, snames.ads: Change Include_Option to Include_Switches
9858
9859 2007-09-26  Robert Dewar  <dewar@adacore.com>
9860
9861         * s-wchstw.adb: provide messages for run time unit exceptions
9862
9863         * a-witeio.adb: Minor reformatting
9864
9865         * exp_ch13.adb: Minor reformatting
9866
9867 2007-09-26  Sergey Rybin  <rybin@adacore.com>
9868
9869         * vms_data.ads: Revise gnatmetric qualifiers.
9870         Add qualified for the new gnatbind option '-y'
9871
9872         * gnat_ugn.texi: Revise the gnatmetric section.
9873         Add entry for new gnatbind option '-y'.
9874
9875         * gnat_rm.texi: Minor spelling correction.
9876         Document restriction on overlaying controlled types
9877
9878 2007-09-26  Vincent Celier  <celier@adacore.com>
9879
9880         * makegpr.adb (Link_Executables): Do not fail when the root project has
9881         no sources, but is an extending project.
9882
9883 2007-09-25  Eric Botcazou  <ebotcazou@adacore.com>
9884
9885         * trans.c: Fix misplaced #define.
9886
9887 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
9888
9889         * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
9890         the TYPE_REF_CAN_ALIAS_ALL flag to the result.
9891
9892 2007-09-21  Olivier Hainque  <hainque@adacore.com>
9893
9894         * utils.c (type_for_nonaliased_component_p): Return false for
9895         all AGGREGATE_TYPEs.
9896
9897 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
9898
9899         * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
9900         object covered by 13.3(19) volatile.
9901
9902 2007-09-12  Eric Botcazou  <ebotcazou@adacore.com>
9903
9904         PR ada/26797
9905         PR ada/32407
9906         * utils.c (unchecked_convert): Use a subtype as the intermediate type
9907         in the special VIEW_CONVERT_EXPR case.
9908
9909 2007-09-12  Robert Dewar  <dewar@adacore.com>
9910
9911         * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
9912
9913         * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
9914         lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
9915         s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
9916         s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
9917         s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
9918         s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
9919         s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
9920         s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
9921         a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
9922         g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
9923         s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
9924         s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
9925         snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
9926         s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
9927         s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
9928         s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
9929         s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
9930         pragma Compiler_Unit and adds it to relevant library units.
9931
9932 2007-09-12  Ed Schonberg  <schonberg@adacore.com>
9933
9934         * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
9935         a box need not correspond to any component.
9936
9937 2007-09-12  Robert Dewar  <dewar@adacore.com>
9938
9939         * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
9940         the tasking version of the Ada run time when foreign threads are
9941         present and there are no explicit Ada tasks or tasking constructs.
9942
9943         * gnat_rm.texi: Clarify documentation of GNAT.Threads.
9944
9945 2007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>
9946
9947         * bindusg.adb (Display): Correct comment for switch -X. Add a line for
9948         the usage of switch -y.
9949
9950         * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
9951         when switch -y is present.
9952
9953         * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
9954         leap seconds in Ada.Calendar and its children.
9955
9956 2007-09-12  Jose Ruiz  <ruiz@adacore.com>
9957
9958         * a-extiti.ads (Timer): The discriminant is a "not null access
9959         constant" in the Reference Manual.
9960         (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
9961
9962 2007-09-12  Robert Dewar  <dewar@adacore.com>
9963
9964         * a-swuwha.adb: Remove junk RM header
9965
9966 2007-09-12  Vincent Celier  <celier@adacore.com>
9967
9968         * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
9969         indicator
9970
9971         * g-bytswa.ads: Minor reformatting
9972
9973 2007-09-12  Thomas Quinot  <quinot@adacore.com>
9974
9975         * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
9976         Add new constant Thread_Blocking_IO, always True by default, set False
9977         on a per-runtime basis.
9978         (Need_Netdb_Buffer): New constant.
9979
9980 2007-09-12  Arnaud Charlet  <charlet@adacore.com>
9981
9982         * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
9983         Added renames for corresponding functions in System.Partition_Interface.
9984
9985 2007-09-12  Doug Rupp  <rupp@adacore.com>
9986
9987         * Makefile.in: Remove VMS specific System.CRTL packages which are no
9988         longer needed.
9989
9990         * s-crtl-vms64.ads: Removed.
9991
9992 2007-09-12  Olivier Hainque  <hainque@adacore.com>
9993
9994         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
9995         with discriminant constraints, generalize the code for BIT_FIELDs
9996         to PACKED fields of constant size and propagate DECL_PACKED.
9997
9998 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
9999
10000         * decl.c (array_type_has_nonaliased_component): New predicate.
10001         (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
10002         set the TYPE_NONALIASED_COMPONENT flag on the type.
10003         <E_Array_Subtype>: Likewise.
10004         * gigi.h (type_for_nonaliased_component_p): Declare.
10005         * utils.c (type_for_nonaliased_component_p): New predicate.
10006         (create_field_decl): Invoke the above predicate to set the
10007         DECL_NONADDRESSABLE_P flag on the field.
10008
10009 2007-09-11  Javier Miranda  <miranda@adacore.com>
10010
10011         * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
10012         in library level record type entities if we are generating statically
10013         allocated dispatch tables.
10014
10015         * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
10016         importing/exporting the _tag declaration by new code
10017         importing/exporting the dispatch table wrapper. This change allows us
10018         to statically allocate of the TSD.
10019         (Make_DT.Export_DT): New procedure.
10020         (Build_Static_DT): New function.
10021         (Has_DT): New function.
10022
10023         * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
10024         True_Constant and Current_Value. Required to statically
10025         allocate the dispatch tables.
10026         (Check_Allocator): Make function iterative instead of recursive.
10027         Also return inner allocator node, when present, so that we do not have
10028         to look for that node again in the caller.
10029
10030 2007-09-11  Jan Hubicka  <jh@suse.cz>
10031
10032         * misc.c (gnat_expand_body): Kill.
10033         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
10034
10035 2007-09-10  Robert Dewar  <dewar@adacore.com>
10036
10037         * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
10038         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
10039         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
10040         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
10041         ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
10042         bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
10043         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
10044         butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
10045         comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
10046         elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
10047         err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
10048         exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
10049         exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
10050         exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
10051         exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
10052         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
10053         exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
10054         exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
10055         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
10056         exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
10057         exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
10058         exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
10059         fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
10060         get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
10061         gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
10062         gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
10063         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
10064         gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
10065         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
10066         gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
10067         inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
10068         lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
10069         lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
10070         make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
10071         mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
10072         mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
10073         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
10074         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
10075         osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
10076         osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
10077         par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
10078         par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
10079         par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
10080         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
10081         par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
10082         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
10083         prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
10084         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
10085         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
10086         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
10087         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
10088         prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
10089         rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
10090         scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
10091         sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
10092         sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
10093         sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
10094         sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
10095         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
10096         sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
10097         sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
10098         sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
10099         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
10100         sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
10101         sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
10102         sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
10103         sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
10104         sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
10105         stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
10106         styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
10107         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
10108         switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
10109         tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
10110         treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
10111         types.h, uintp.h, urealp.h, usage.adb, usage.ads,
10112         validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
10113         xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
10114         xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
10115         gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
10116         mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
10117         symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
10118         mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
10119         mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
10120
10121 2007-09-10  Emmanuel Briot  <briot@adacore.com>
10122
10123         * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
10124         classes ("[]").
10125
10126 2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>
10127
10128         * adaint.c (__gnat_translate_vms): new function.
10129
10130 2007-09-10  Gary Dismukes  <dismukes@adacore.com>
10131             Thomas Quinot  <quinot@adacore.com>
10132
10133         * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
10134         create an abstract subprogram in the case of 'Input. For 'Output we now
10135         create a real spec/body when the type is abstract, since it can
10136         potentially be called.
10137         (Predefined_Primitive_Bodies): Now allow the creation of a predefined
10138         body for 'Output when the type is abstract (only the creation of the
10139         body for 'Input is excluded when the type is abstract).
10140         (Stream_Operation_OK): Add an additional condition in the return
10141         statement, so that False will be returned for TTS_Stream_Input if the
10142         associated tagged type is an abstract extension. Add comments for
10143         return statement.
10144         (Expand_N_Object_Declaration): For the case of a shared passive
10145         variable, insert init proc call only after the shared variable
10146         procedures have been processed, because the IP call needs to undergo
10147         shared passive variable reference expansion, which requires these
10148         procedures to be available (and elaborated).
10149
10150 2007-09-10  Vincent Celier  <celier@adacore.com>
10151
10152         * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
10153         parameter Runtime_Project.
10154
10155 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
10156
10157         * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
10158         given a box association, the type of the component is discriminated,
10159         and the value of the discriminant is the discriminant of the enclosing
10160         type, retrieve its value from the aggregate itself, where it must have
10161         been supplied.
10162
10163         * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
10164         to remove other spurious ambiguities on arithmetic operations involving
10165         literals and addresses, on systems where Address is a visible integer
10166         type, when the operator is called in functional notation.
10167         (Try_Primitive_Operation): Within an instance, a call in prefixed form
10168         is legal when the types match, even if the operation is currently
10169         hidden.
10170
10171 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
10172
10173         * sem_ch12.adb (Build_Local_Package): A formal package with no
10174         associations is legal if all formals have defaults. It is not
10175         equivalent to a formal declared with a box.
10176
10177 2007-09-10  Sergey Rybin  <rybin@adacore.com>
10178
10179         * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
10180
10181 2007-09-10  Sergey Rybin  <rybin@adacore.com>
10182
10183         * gnat_ugn.texi: Add description of the new '-lratio' option
10184         Update 7.3.1 section about availability of the feature.
10185
10186 2007-09-10  Thomas Quinot  <quinot@adacore.com>
10187
10188         * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
10189         inserted node.
10190
10191 2007-09-10  Olivier Hainque  <hainque@adacore.com>
10192
10193         * Makefile.in: (mips-irix section): Activate build of libgmem.
10194
10195 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
10196
10197         * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
10198         x87 registers.
10199
10200 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
10201
10202         * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
10203         a debug renaming declaration specially.
10204
10205 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
10206
10207         * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
10208         which a constant renaming is treated as a normal object declaration.
10209         * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
10210         the N_Indexed_Component case.
10211         <N_Indexed_Component>: Fall through to above case.
10212         <N_Object_Renaming_Declaration>: Return true for all composite types.
10213
10214 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
10215
10216         * decl.c (make_packable_type): If the new type has been given BLKmode,
10217         try again to get an integral mode for it.
10218
10219 2007-09-07  Eric Botcazou  <ebotcazou@adacore.com>
10220
10221         Re-apply accidentally reverted change:
10222
10223         2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
10224
10225         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
10226         get_action_description_for): Replace _Unwind_Word with _uleb128_t
10227         and _Unwind_SWord with _sleb128_t.
10228
10229 2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>
10230
10231         * trans.c (convert_with_check): Update call to real_2expN.
10232
10233 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
10234
10235         * trans.c (Compilation_unit_to_gnu): Use set_cfun.
10236         * utils.c (end_subprog_body): Likewise.
10237
10238 2007-09-03  Nick Clifton  <nickc@redhat.com>
10239
10240         * Make-lang.in: Change copyright header to refer to version 3 of
10241         the GNU General Public License and to point readers at the
10242         COPYING3 file and the FSF's license web page.
10243         * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
10244         Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
10245         namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
10246         treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
10247         Likewise.
10248
10249 2007-08-31  Vincent Celier  <celier@adacore.com>
10250
10251         PR ada/4720
10252
10253         * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
10254         gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
10255         (Check_Version_And_Help): New procedure in package Switch to process
10256         switches --version and --help.
10257         Use Check_Version_And_Help in GNAT tools
10258
10259         * make.adb:  Ditto.
10260         (Compile_Sources): Make sure that sources that are "excluded" are not
10261         compiled.
10262         (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
10263         project file is used.
10264         (Version_Switch): Remove, moved to Switch
10265         (Help_Switch): Remove, moved to Switch
10266         (Display_Version): Remove, moved to Switch
10267
10268         * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
10269         package Switch to process switches --version and --help.
10270         (Display_Version): New procedure
10271
10272         * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
10273
10274 2007-08-31  Javier Miranda  <miranda@adacore.com>
10275
10276         * a-tags.adb (Internal_Tag): Protect the run-time against wrong
10277         internal tags.
10278
10279 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
10280
10281         * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
10282         (Mark_Non_Null): If the node for which we just generated an access check
10283         is a reference to an *in* parameter and the reference appears in the
10284         declarative part of a subprogram body, mark the node as known non null.
10285
10286 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
10287
10288         * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
10289         structure of E_Exception to reflect the new flag.
10290         (Is_Raised, Set_Is_Raised): New inlined routines.
10291         Update the usage of available flag to reflect the addition of Is_Raised.
10292         (Is_Raised, Set_Is_Raised): Bodies of new routines.
10293         (Write_Entity_Flags): Write the status of flag Is_Raised.
10294         (Is_Descendent_Of_Address): New entity flag, to simplify handling of
10295         spurious ambiguities when integer literals appear in the context of an
10296         address type that is a visible integer type.
10297
10298         * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
10299         exceptions never being raised.
10300         (Analyze_Raise_Statement): When analyzing an exception, mark it as being
10301         explicitly raised.
10302
10303 2007-08-31  Javier Miranda  <miranda@adacore.com>
10304
10305         * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
10306         statement when compiling under restriction No_Exceptions_Proparation.
10307
10308 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
10309
10310         * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
10311         initialization aggregate for the type, generate itype references for
10312         thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
10313
10314 2007-08-31  Gary Dismukes  <dismukes@adacore.com>
10315
10316         * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
10317         library-level package renaming, pass the declaration associated with
10318         the renaming's special debug variable to Qualify_Entity_Names to ensure
10319         that its encoded name is properly qualified.
10320
10321         * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
10322         occurring in the list of entities to qualify, and do not attempt to
10323         traverse an entity list in that case. Variables associated with
10324 `       library-level package renamings can now occur in the table.
10325
10326         * exp_dbug.ads: Revise documentation of the encoding for renaming
10327         declarations.
10328
10329 2007-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10330
10331         * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
10332         access type points to an unconstrained array.
10333
10334 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
10335
10336         * restrict.adb, namet.adb, par-util.adb: Remove redundant type
10337         conversion.
10338
10339         * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
10340         simple redundant qualifications. The check is performed whenever the
10341         expression is a non-overloaded identifier.
10342         (Resolve_Type_Conversion): Enchance the redundant type conversion check
10343         to include loop parameters.
10344         (Valid_Conversion): Avoid generation of spurious error message.
10345
10346 2007-08-31  Bob Duff  <duff@adacore.com>
10347
10348         * par-ch4.adb (P_Simple_Expression): Fold long sequences of
10349         concatenations of string literals into a single literal, in order to
10350         avoid very deep recursion in the front end, which was causing stack
10351         overflow.
10352
10353         * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
10354         string, and the right operand is a string literal (the case of "" &
10355         "..."), optimize by avoiding copying the right operand -- just use the
10356         value of the right operand directly.
10357
10358         * stringt.adb (Store_String_Chars): Optimize by growing the
10359         String_Chars table all at once, rather than appending characters one by
10360         one.
10361         (Write_String_Table_Entry): If the string to be printed is very long,
10362         just print the first few characters, followed by the length. Otherwise,
10363         doing "pn(n)" in the debugger can take an extremely long time.
10364
10365         * sem_prag.adb (Process_Interface_Name): Replace loop doing
10366         Store_String_Char with Store_String_Chars.
10367
10368 2007-08-31  Vincent Celier  <celier@adacore.com>
10369
10370         * prj-attr.adb: Add new attribute Excluded_Source_Files
10371
10372         * prj-nmsc.adb: Use attribute Excluded_Source_Files before
10373         Locally_Removed_Files.
10374
10375         * snames.ads, snames.adb: New standard name Excluded_Source_Files
10376
10377 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
10378
10379         * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
10380         clauses of subunits, ignore limited_with_clauses that are illegal and
10381         have not been fully analyzed.
10382
10383 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
10384
10385         * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
10386         flag, for effiency. It is called when analyzing arithmetic operators
10387         and also for actuals in calls that are universal_integers. The flag is
10388         set for the predefined type address, and for any type or subtype
10389         derived from it.
10390
10391         * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
10392         Universal_Integer, when the formal is a descendent of address and the
10393         call appears in user code.
10394         (Analyze_Selected_Component): if the prefix is a private extension, the
10395         tag component is visible.
10396
10397         * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
10398         entity flag.
10399
10400 2007-08-31  Robert Dewar  <dewar@adacore.com>
10401
10402         * s-fileio.adb (Open): Normalize file name to lower case in non-case
10403         sensitive file name systems to avoid unexpected mismatch in Vista.
10404
10405 2007-08-31  Vincent Celier  <celier@adacore.com>
10406
10407         * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
10408
10409 2007-08-31  Vincent Celier  <celier@adacore.com>
10410
10411         * symbols-vms.adb (Initialize): Read symbol files with continuation
10412         lines
10413         (Finalize): If symbol is long, split the line
10414
10415 2007-08-31  Vincent Celier  <celier@adacore.com>
10416
10417         * fmap.ads: Minor comment updates
10418
10419 2007-08-31  GNAT Script  <nobody@adacore.com>
10420
10421         * Make-lang.in: Makefile automatically updated
10422
10423 2007-08-31  Bob Duff  <duff@adacore.com>
10424
10425         * sinfo.ads: Minor comment fix.
10426
10427 2007-08-31  Thomas Quinot  <quinot@adacore.com>
10428
10429         * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
10430         with implementation.
10431         Documentation cleanup only.
10432
10433 2007-08-31  Sergey Rybin  <rybin@adacore.com>
10434
10435         * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
10436         gnatpp '--separate-stmt-name' option.
10437         Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
10438         option.
10439
10440         * gnat_ugn.texi: Add description for the new gnatpp
10441         '--separate-stmt-name' and '--use-on-new-line' options.
10442
10443 2007-08-31  Ben Elliston  <bje@au.ibm.com>
10444
10445         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
10446         when compiling for powerpc64-*-linux.
10447         * system-linux-ppc64.ads: New file.
10448
10449 2007-08-22  Krister Walfridsson  <cato@df.lth.se>
10450
10451         * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
10452         NetBSD.
10453
10454 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10455
10456         * misc.c (gnat_type_max_size): Constify.
10457
10458 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
10459
10460         * cstand.adb (Create_Standard): Create an entity for a zero-sized type
10461         associated with Standard_Debug_Renaming_Type, to be used as the type of
10462         the special variables whose names provide debugger encodings for
10463         renaming declarations.
10464
10465         * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
10466         (Set_Debug_Renaming_Link): Change to set Node25.
10467         (Write_Field13_Name): Remove case for E_Enumeration_Literal.
10468         (Write_Field25_Name): Add case for E_Variable to output
10469         "Debug_Renaming_Link".
10470         (Write_Field23_Name): Correct the output string for "Limited_View".
10471
10472         * exp_dbug.adb: Add with and use of Tbuild.
10473         (Debug_Renaming_Declaration): Replace creation of an enumeration type
10474         and literal with creation of a variable of type
10475         Standard_Debug_Renaming_Type whose name encodes both the renamed object
10476         and the entity of the renaming declaration.
10477         (Qualify_Entity_Name): Add the delayed qualification of the entity name
10478         part of the name of a variable that has a Debug_Renaming_Link.
10479
10480         * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
10481         special type to be associated with variables that provide debugger
10482         encodings for renaming declarations.
10483
10484 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
10485             Ed Schonberg  <schonberg@adacore.com>
10486             Javier Miranda  <miranda@adacore.com>
10487
10488         * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
10489         ancestor part given by an aggregate to test for an unchecked conversion,
10490         since this can occur in some cases when the ancestor part is a function
10491         call, and we don't want to fall into the recursive call to this
10492         procedure in that case.
10493
10494         * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
10495         stream attributes on limited types to account for user-specified
10496         attributes as well as whether Input (resp. Output) becomes available
10497         due to Read (resp. Write) being available for the type. Change Boolean
10498         variable to the more accurate name
10499         Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
10500         double-"not" predicate at beginning of return statement to more
10501         understandable form.
10502
10503         * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
10504         return has an associated N_Handled_Sequence_Of_Statements, then wrap it
10505         in a block statement and use that as the first statement of the
10506         expanded return rather than incorrectly using the handled sequence as
10507         the first statement.
10508
10509         * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
10510         operation, generate an explicit freeze node for it rather than
10511         generating extra formals, to ensure that gigi has the proper order of
10512         elaboration for anonymous subtypes in the signature of the subprograms.
10513         (Build_In_Place_Formal): Move assertion to beginning of loop.
10514         (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
10515         applied to a function call (occurs for some cases of 'Input).
10516         (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
10517         applied to a function call (occurs for some cases of 'Input).
10518
10519         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
10520         2005, generate an extended return statement enclosing the result object
10521         and 'Read call.
10522
10523         * freeze.adb (Freeze_Record_Type): Extend the current management of
10524         components that are access type with an allocator as default value: add
10525         missing support to the use of qualified expressions of the
10526         allocator (which also cause freezing of the designated type!)
10527         (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
10528         dispatching operation, since extra formals may be needed by calls to
10529         build-in-place functions (such as stream 'Input).
10530
10531         * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
10532         formals for 'Constrained and accessibility level in the case of a
10533         predefined dispatching operation.
10534
10535         * exp_util.adb (Insert_Actions): A protected body is a valid insertion
10536         point, no need to find the parent node.
10537
10538 2007-08-16  Javier Miranda  <miranda@adacore.com>
10539
10540         * exp_attr.adb (Attribute_Priority): Add missing support for entries
10541         and entry barriers.
10542
10543 2007-08-16  Javier Miranda  <miranda@adacore.com>
10544
10545         * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
10546         is not really required and can introduce regression with the debugger.
10547         The original problem is fixed with the patch written for checks.adb.
10548
10549 2007-08-16  Thomas Quinot  <quinot@adacore.com>
10550
10551         * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
10552         Range_Check on Allocated_Table.
10553
10554 2007-08-16  Vincent Celier  <celier@adacore.com>
10555
10556         * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
10557         Including_Non_Switch set to False.
10558         (Gnatmake): For the compiler, call Test_If_Relative_Path with
10559         Including_Non_Switch set to False.
10560
10561         * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
10562         parameter Including_Non_Switch, defaulted to True. When
10563         Including_Non_Switch is False, options that are not switches and
10564         appear as relative path are not converted to absolute paths.
10565
10566 2007-08-16  Nicolas Roche  <roche@adacore.com>
10567
10568         * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
10569         makefiles
10570
10571         * Make-lang.in: Update dependencies
10572
10573 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
10574
10575         * sem_ch10.adb (Has_With_Clause): If the name of the with clause
10576         currently inspected is a selected component, retrieve the entity of
10577         its selector.
10578         (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
10579         from the immediate ancestor of Main_Unit_Entity.
10580         (Install_Limited_Withed_Unit): Do not install the limited view of
10581         package P if P is reachable through an ancestor chain from package C
10582         and C also has a with clause for P in its body.
10583         (Has_Limited_With_Clause): New routine.
10584         (Has_With_Clause): New routine.
10585
10586 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
10587
10588         * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
10589         generic for an enclosing instance is a global reference, even though
10590         its scope is the enclosing instance.
10591
10592 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
10593             Javier Miranda  <miranda@adacore.com>
10594
10595         * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
10596         initialize a limited object.
10597         (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
10598         13/2 and 14/2.
10599         Make sure Has_Complex_Representation is inherited by derived type.
10600
10601 2007-08-16  Robert Dewar  <dewar@adacore.com>
10602
10603         * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
10604         exception case
10605
10606 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
10607
10608         * sem_disp.adb (Check_Dispatching_Operation): If the operation
10609         implements an operation inherited from a progenitor interface, verify
10610         that they are subtype-conformant.
10611
10612 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
10613             Bob Duff  <duff@adacore.com>
10614             Nicolas Setton  <setton@adacore.com>
10615
10616         * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
10617         (Resolve): Alphabetize local variables. Add new variable From_Lib. When
10618         the statement which is being resolved comes from a predefined library
10619         unit, all non-predefined library interpretations are skipped.
10620         (Resolve_Op_Concat): If string concatenation was folded in the parser,
10621         but the "&" is user defined, give an error, because the folding would
10622         be wrong.
10623
10624         * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
10625         the parser has folded a long sequence of concatenations of string
10626         literals.
10627
10628         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
10629         and "JMP_BUF" variables as artificial.
10630         (N_String_Literal): Do not use alloca for very long string literals. Use
10631         xmalloc/free instead. Otherwise the stack might overflow.
10632
10633         * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
10634         compiler.
10635
10636 2007-08-16  Vincent Celier  <celier@adacore.com>
10637
10638         * vms_conv.adb (Process_Argument): Ensure that project related options
10639         are not put in the -cargs section when using GNAT COMPILE.
10640
10641 2007-08-16  Robert Dewar  <dewar@adacore.com>
10642
10643         * gnat_ugn.texi: Add note on preprocessing (output file not written)
10644
10645 2007-08-16  Thomas Quinot  <quinot@adacore.com>
10646
10647         * a-tags.adb: Minor reformatting.
10648
10649 2007-08-16  Bob Duff  <duff@adacore.com>
10650
10651         * sem_type.ads, sem_ch4.adb: Minor reformatting.
10652
10653 2007-08-14  Thomas Quinot  <quinot@adacore.com>
10654
10655         * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
10656         s-osinte-interix.ads, system-interix.ads: Removed.
10657
10658 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
10659
10660         * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
10661         calls to Check_Within_Time_Bounds.
10662         ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
10663         (Difference): Account for possible rounding of the resulting difference
10664
10665 2007-08-14  Robert Dewar  <dewar@adacore.com>
10666
10667         * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
10668         par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
10669         s-osinte-solaris.adb, s-osinte-solaris.ads,
10670         s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
10671
10672         * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
10673         switch -gnatyS. Enable -gnatyS in GNAT style check mode
10674
10675 2007-08-14  Robert Dewar  <dewar@adacore.com>
10676             Ed Schonberg  <schonberg@adacore.com>
10677
10678         * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
10679         Suppress unmodified in-out parameter warning in some cases
10680         This patch is a also fairly significant change to the way suppressible
10681         checks are handled.
10682
10683         * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
10684         needed for access to concurrent record types generated by the expander.
10685         (Generate_Range_Check): When generating a temporary to capture the
10686         value of a conversion that requires a range check, set the type of the
10687         temporary before rewriting the node, so that the type is always
10688         properly placed for back-end use.
10689         (Apply_Float_Conversion_Check): Handle case where the conversion is
10690         truncating.
10691         (Get_Discriminal): Code reformatting. Climb the scope stack looking
10692         for a protected type in order to examine its discriminants.
10693
10694 2007-08-14  Robert Dewar  <dewar@adacore.com>
10695             Gary Dismukes  <dismukes@adacore.com>
10696             Ed Schonberg  <schonberg@adacore.com>
10697             Thomas Quinot  <quinot@adacore.com>
10698
10699         * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
10700         a-stwisu.adb, a-strsup.adb: Fix warnings for range
10701         tests optimized out.
10702
10703         * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
10704         (Get_Allocator_Final_List): For the case of an anonymous access type
10705         that has a specified Associated_Final_Chain, do not go up to the
10706         enclosing scope.
10707         (Expand_N_Type_Conversion): Test for the case of renamings of access
10708         parameters when deciding whether to apply a run-time accessibility
10709         check.
10710         (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
10711         aggregate code before allocator, and ahead of declaration for
10712         temporary, to prevent access before elaboration when the allocator is
10713         an actual for an access parameter.
10714         (Expand_N_Type_Conversion): On an access type conversion involving an
10715         access parameter, do not apply an accessibility check when the
10716         operand's original node was an attribute other than 'Access. We now
10717         create access conversions for the expansion of 'Unchecked_Access and
10718         'Unrestricted_Access in certain cases and clearly accessibility should
10719         not be checked for those.
10720
10721         * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
10722         includes a type conversion of a packed component that has been expanded,
10723         recover the original expression for the object, and use this expression
10724         in the post-call assignment statement, so that the assignment is made
10725         to the object and not to a back-end temporary.
10726         (Freeze_Subprogram): In case of primitives of tagged types not defined
10727         at the library level force generation of code to register the primitive
10728         in the dispatch table. In addition some code reorganization has been
10729         done to leave the implementation clear.
10730         (Expand_Call): When expanding an inherited implicit conversion,
10731         preserve the type of the inherited function after the intrinsic
10732         operation has been expanded.
10733
10734         * exp_ch2.ads, exp_ch2.adb
10735         (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
10736         of an entry formal appearing in an assignment statement does not assign
10737         to the formal.
10738         (Expand_Current_Value): Instead of calling a routine to determine
10739         whether the prefix of an attribute reference should be optimized or
10740         not, prevent the optimization of such prefixes all together.
10741
10742         * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
10743         component whose prefix is known to be of an access type is an implicit
10744         dereference and does not assign to the prefix.
10745
10746 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
10747             Robert Dewar  <dewar@adacore.com>
10748
10749         * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
10750         itype is visited, make an entry into table to link associated node and
10751         new itype.
10752         Add comments and correct harmless error in Build_NCT_Hash_Tables
10753         (Array_Aggr_Subtype): Associate each itype created for an index type to
10754         the corresponding range construct, and not to the aggregate itself. to
10755         maintain a one-to-one correspondence between itype and its associated
10756         node, to prevent errors when complex expression is copied.
10757         Fix mishandling of multiple levels of parens
10758
10759         * sem_aggr.adb: Create a limited view of an incomplete type, to make
10760         treatment of limited views uniform for all visible declarations in a
10761         limited_withed package.
10762         (New_Copy_Tree): If hash table is being used and itype is visited,
10763         make an entry into table to link associated node and new itype.
10764         (Resolve_Record_Aggregate): Do not add an others box association for a
10765         discriminated record component that has only discriminants, when there
10766         is a box association for the component itself.
10767
10768         * par-ch4.adb: Fix mishandling of multiple levels of parens
10769
10770 2007-08-14  Robert Dewar  <dewar@adacore.com>
10771
10772         * comperr.adb: Fix problem with suppressing warning messages from gigi
10773
10774         * erroutc.ads, erroutc.adb, errout.ads,
10775         errout.adb (Write_Eol): Remove trailing spaces before writing the line
10776         (Write_Eol_Keep_Blanks): New procedure to write a line, including
10777         possible trailing spaces.
10778         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
10779         Fix problem with suppressing warning messages from back end
10780         Improve handling of deleted warnings
10781
10782         * gnat1drv.adb:
10783         Fix problem with suppressing warning messages from back end
10784         Handle setting of Static_Dispatch_Tables flag.
10785
10786         * prepcomp.adb:
10787         Fix problem with suppressing warning messages from back end
10788
10789         * exp_intr.adb: Improve handling of deleted warnings
10790
10791 2007-08-14  Robert Dewar  <dewar@adacore.com>
10792
10793         * debug.adb: Improve -gnatdI to cover all cases of serialization
10794         Add documentation of dZ, d.t
10795
10796         * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
10797         serialization.
10798         (Sprint_Node_Actual): Generate new output associated with implicit
10799         importation and implicit exportation of object declarations.
10800
10801 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
10802             Robert Dewar  <dewar@adacore.com>
10803             Javier Miranda  <miranda@adacore.com>
10804             Gary Dismukes  <dismukes@adacore.com>
10805
10806         * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
10807         to make treatment of limited views uniform for all visible declarations
10808         in a limited_withed package.
10809         Improve warnings for in out parameters
10810         (Set_Related_Interaface/Related_Interface): Allow the use of this
10811         attribute with constants.
10812         (Write_Field26_Name): Handle attribute Related_Interface in constants.
10813         Warn on duplicate pragma Preelaborable_Initialialization
10814
10815         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
10816         generation of a freezing node to ensure proper management of null
10817         excluding access types in the backend.
10818         (Create_Extra_Formals): Test base type of the formal when checking for
10819         the need to add an extra accessibility-level formal. Pass the entity E
10820         on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
10821         originally being done in a couple of cases), to ensure that the
10822         Extra_Formals list gets set on the entity E when the first entity is
10823         added.
10824         (Conforming_Types): Add missing calls to Base_Type to the code that
10825         handles anonymous access types. This is required to handle the
10826         general case because Process_Formals builds internal subtype entities
10827         to handle null-excluding access types.
10828         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
10829         functions that need it, even when not marked Requires_Overriding.
10830         Improve warnings for in out parameters
10831         (Analyze_Function_Return): Warn for disallowed null return
10832         Warn on return from procedure with unset out parameter
10833         Ensure consistent use of # in error messages
10834         (Check_Overriding_Indicator): Add in parameter Is_Primitive.
10835         (Analyze_Function_Return): Move call to Apply_Constraint_Check before
10836         the implicit conversion of the expression done for anonymous access
10837         types. This is required to generate the code of the null excluding
10838         check (if required).
10839
10840         * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
10841         A formal parameter is never publicly referenceable outside of its body.
10842         (Check_References): For an unreferenced formal parameter in an accept
10843         statement, use the same warning circuitry as for subprogram formal
10844         parameters.
10845         (Warn_On_Unreferenced_Entity): New subprogram, taken from
10846         Output_Unreferenced_Messages, containing the part of that routine that
10847         is now reused for entry formals as described above.
10848         (Goto_Spec_Entity): New function
10849         (Check_References): Do not give IN OUT warning for dispatching operation
10850         Improve warnings for in out parameters
10851         (Test_Ref): Check that the entity is not undefinite before calling
10852         Scope_Within, in order to avoid infinite loops.
10853         Warn on return from procedure with unset out parameter
10854         Improved warnings for unused variables
10855
10856 2007-08-14  Robert Dewar  <dewar@adacore.com>
10857             Javier Miranda  <miranda@adacore.com>
10858             Gary Dismukes  <dismukes@adacore.com>
10859
10860         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
10861         (Expand_N_Attribute_Reference): Further unify the handling of the
10862         three forms of access attributes, using common code now for all three
10863         cases. Add a test for the case of applying an access attribute to
10864         an explicit dereference when the context is an access-to-interface
10865         type. In that case we need to apply the conversion to the prefix
10866         of the explicit dereference rather than the prefix of the attribute.
10867         (Attribute_Version, UET_Address): Set entity as internal to ensure
10868         proper dg output of implicit importation.
10869         (Expand_Access_To_Type): Removed.
10870         (Expand_N_Attribute_Reference): Merge the code from the three cases
10871         of access attributes, since the processing is largely identical for
10872         these cases. The substantive fix here is to process the case of a
10873         type name prefix (current instance case) before handling the case
10874         of interface prefixes.
10875
10876 2007-08-14  Thomas Quinot  <quinot@adacore.com>
10877             Ed Schonberg  <schonberg@adacore.com>
10878             Javier Miranda  <miranda@adacore.com>
10879             Robert Dewar  <dewar@adacore.com>
10880
10881         * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
10882         (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
10883         type that is an anonymous access to controlled object, establish
10884         an associated finalization chain to avoid corrupting the global
10885         finalization list when a dynamically allocated object designated
10886         by such a component is deallocated.
10887         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
10888         functions that need it, even when not marked Requires_Overriding.
10889         (Initialize_Tag): Replace call to has_discriminants by call to
10890         Is_Variable_Size_Record in the circuitry that handles the
10891         initialization of secondary tags.
10892         (Is_Variable_Size_Record): New implementation.
10893         (Expand_N_Object_Declaration): Suppress call to init proc if there is a
10894         Suppress_Initialization pragma for a derived type.
10895         (Is_Variable_Size_Record): New subprogram.
10896         (Build_Offset_To_Top_Functions): New implementation that simplifies the
10897         initial version of this routine and also fixes problems causing
10898         incomplete initialization of the table of interfaces.
10899         (Build_Init_Procedure): Improve the generation of code to initialize the
10900         the tag components of secondary dispatch tables.
10901         (Init_Secondary_Tags): New implementation that simplifies the previous
10902         version of this routine.
10903         (Make_DT): Add parameter to indicate when type has been frozen by an
10904         object declaration, for diagnostic purposes.
10905         (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
10906         diagnose attemps to freeze a subprogram when some untagged type of its
10907         profile is a private type whose full view has not been analyzed yet.
10908         (Freeze_Array_Type): Generate init proc for packed array if either
10909         Initialize or Normalize_Scalars is set.
10910         (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
10911         constructing the new profile, copy the null_exclusion indicator for each
10912         parameter, to ensure full conformance of the new body with the spec.
10913
10914         * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
10915         Create wrappers for constructor functions that need it, even when not
10916         marked Requires_Overriding.
10917         (Covers): Handle properly designated types of anonymous access types,
10918         whose non-limited views are themselves incomplete types.
10919         (Add_Entry): Use an entity to store the abstract operation which hides
10920         an interpretation.
10921         (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
10922         (Collect_Interps): Use Empty as an actual for Abstract_Op in the
10923         initialization aggregate.
10924         (Function_Interp_May_Be_Hidden): Rename to
10925         Function_Interp_Has_Abstract_Op.
10926         (Has_Compatible_Type): Remove machinery that skips interpretations if
10927         they are labeled as potentially hidden by an abstract operator.
10928         (Has_Hidden_Interp): Rename to Has_Abstract_Op.
10929         (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
10930         (Write_Overloads): Output the abstract operator if present.
10931         (Add_Entry): Before inserting a new entry into the interpretation table
10932         for a node, determine whether the entry will be disabled by an abstract
10933         operator.
10934         (Binary_Op_Interp_May_Be_Hidden): New routine.
10935         (Collect_Interps): Add value for flag May_Be_Hidden in initialization
10936         aggregate.
10937         (Function_Interp_May_Be_Hidden): New routine.
10938         (Has_Compatible_Type): Do not consider interpretations hidden by
10939         abstract operators when trying to determine whether two types are
10940         compatible.
10941         (Has_Hidden_Interp): New routine.
10942         (Set_May_Be_Hidden_Interp): New routine.
10943         (Write_Overloads): Write the status of flag May_Be_Hidden.
10944
10945 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
10946             Javier Miranda  <miranda@adacore.com>
10947
10948         * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
10949         types declared in the declarative part of a nested package body or in
10950         the proper body of a stub.
10951         (Set_All_DT_Position): Add missing check to avoid wrong assignation
10952         of the same dispatch table slot to renamed primitives.
10953         (Make_Select_Specific_Data_Table): Handle private types.
10954         (Tagged_Kind): Handle private types.
10955         (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
10956         output of implicit importation and exportation.
10957         (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
10958         first formal of the thunk is always associated with the controlling
10959         type. In addition perform the following code cleanup: remove formal
10960         Thunk_Alias which is no longer required, cleanup evaluation of the
10961         the controlling type, and update the documentation.
10962         Replace occurrence of Default_Prim_Op_Count by
10963         Max_Predef_Prims. Addition of compile-time check to verify
10964         that the value of Max_Predef_Prims is correct.
10965         (Check_Premature_Freezing): Apply check in Ada95 mode as well.
10966         (Make_DT): Add parameter to indicate when type has been frozen by an
10967         object declaration, for diagnostic purposes.
10968         (Build_Static_Dispatch_Tables): New subprogram that takes care of the
10969         construction of statically allocated dispatch tables.
10970         (Make_DT): In case of library-level tagged types export the declaration
10971         of the primary tag. Remove generation of tags (now done by Make_Tags).
10972         Additional modifications to handle non-static generation of dispatch
10973         tables. Take care of building tables for asynchronous interface types
10974         (Make_Tags): New subprogram that generates the entities associated with
10975         the primary and secondary tags of Typ and fills the contents of Access_
10976         Disp_Table. In case of library-level tagged types imports the forward
10977         declaration of the primary tag that will be declared later by Make_DT.
10978         (Expand_Interface_Conversion): In case of access types to interfaces
10979         replace an itype declaration by an explicit type declaration to avoid
10980         problems associated with the scope of such itype in transient blocks.
10981
10982 2007-08-14  Robert Dewar  <dewar@adacore.com>
10983             Ed Schonberg  <schonberg@adacore.com>
10984             Javier Miranda  <miranda@adacore.com>
10985
10986         * exp_util.ads, exp_util.adb:
10987         This patch replaces a number of occurrences of explicit tests for N_Null
10988         with calls to Known_Null. This improves tracking of null values, since
10989         Known_Null also catches null constants, and variables currently known to
10990         be null, so we get better tracking.
10991         (Ensure_Defined): create an itype reference only in the scope of the
10992         itype.
10993         (Side_Effect_Free): A selected component of an access type that
10994         denotes a component with a rep clause must be treated as not
10995         side-effect free, because if it is part of a linked structure its
10996         value may be affected by a renaming.
10997         (Expand_Subtype_From_Expr): For limited objects initialized with build
10998         in place function calls, do nothing; otherwise we prematurely introduce
10999         an N_Reference node in the expression initializing the object, which
11000         breaks the circuitry that detects and adds the additional arguments to
11001         the called function. Bug found working in the new patch for statically
11002         allocated dispatch tables.
11003         (Is_Library_Level_Tagged_Type): New subprogram.
11004         (Remove_Side_Effects): If the expression of an elementary type is an
11005         operator treat as a function call.
11006         (Make_Literal_Range): If the index type of the array is not integer, use
11007         attributes properly to compute the constraint on the resulting aggregate
11008         which is a string.
11009
11010         * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
11011         class-wide type whose base type is an incomplete private type, leave
11012         class-wide type unfrozen so that freeze nodes can be generated
11013         properly at a later point.
11014         (Freeze_Entity, array case): Handle case of pragma Pack and component
11015         size attributre clause for same array.
11016
11017 2007-08-14  Vincent Celier  <celier@adacore.com>
11018
11019         * prj.ads, prj.adb: Update Project Manager to new attribute names for
11020         gprbuild.
11021         Allow all valid declarations in configuration project files
11022         (Reset): Initialize all tables and hash tables in the project tree data
11023         Major update of the Project Manager and of the project aware tools,
11024         including gprmake, so that the same sources in the GNAT repository
11025         can be used by gprbuild.
11026         (Slash_Id): Change type to be Path_Name_Type
11027         (Slash): Return a Path_Name_Type instead of a File_Name_Type
11028
11029         * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
11030         gprbuild.
11031         Update Project Manager to new attribute names for ghprbuild
11032         Allow all valid declarations in configuration project files
11033         Major update of the Project Manager and of the project aware tools,
11034         including gprmake, so that the same sources in the GNAT repository
11035         can be used by gprbuild.
11036
11037         * prj-com.ads:
11038         Major update of the Project Manager and of the project aware tools,
11039         including gprmake, so that the same sources in the GNAT repository
11040         can be used by gprbuild.
11041
11042         * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
11043         insensitive flag for attributes with optional index.
11044         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
11045         array attribute, put the index in lower case.
11046         Update Project Manager to new attribute names for ghprbuild
11047         Allow all valid declarations in configuration project files
11048         Major update of the Project Manager and of the project aware tools,
11049         including gprmake, so that the same sources in the GNAT repository
11050         can be used by gprbuild.
11051
11052         * prj-env.ads, prj-env.adb:
11053         Major update of the Project Manager and of the project aware tools,
11054         including gprmake, so that the same sources in the GNAT repository
11055         can be used by gprbuild.
11056         (Get_Reference): Change type of parameter Path to Path_Name_Type
11057
11058         * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
11059         removing '-' from the path to start with the first character of the
11060         next directory.
11061         Major update of the Project Manager and of the project aware tools,
11062         including gprmake, so that the same sources in the GNAT repository
11063         can be used by gprbuild.
11064         Major update of the Project Manager and of the project aware tools,
11065         including gprmake, so that the same sources in the GNAT repository
11066         can be used by gprbuild.
11067
11068         * prj-nmsc.ads, prj-nmsc.adb:
11069         Update Project Manager to new attribute names for ghprbuild
11070         Allow all valid declarations in configuration project files
11071         (Search_Directories): Detect subunits that are specified with an
11072         attribute Body in package Naming. Do not replace a source/unit in the
11073         same project when the order of the source dirs are known. Detect
11074         duplicate sources/units in the same project when the order of the
11075         source dirs are not known.
11076         (Check_Ada_Name): Allow all identifiers that are not reserved words
11077         in Ada 95.
11078         Major update of the Project Manager and of the project aware tools,
11079         including gprmake, so that the same sources in the GNAT repository
11080         can be used by gprbuild.
11081         (Look_For_Sources): If the list of sources is empty, set the object
11082         directory of non extending project to nil.
11083         Change type of path name variables to be Path_Name_Type
11084         (Locate_Directory): Make sure that on Windows '/' is converted to '\',
11085         otherwise creating missing directories will fail.
11086
11087         * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
11088         prj-part.ads, prj-part.adb:
11089         Major update of the Project Manager and of the project aware tools,
11090         including gprmake, so that the same sources in the GNAT repository
11091         can be used by gprbuild.
11092
11093         * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
11094         insensitive flag for attributes with optional index.
11095         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
11096         array attribute, put the index in lower case.
11097         (Parse_Variable_Reference): Allow the current project name to be used in
11098         the prefix of an attribute reference.
11099
11100         * prj-util.ads, prj-util.adb
11101         (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
11102         defaulted to False. When True, always check against indexes in lower
11103         case.
11104
11105         * snames.ads, snames.h, snames.adb:
11106         Update Project Manager to new attribute names for gprbuild
11107         Allow all valid declarations in configuration project files
11108
11109 2007-08-14  Robert Dewar  <dewar@adacore.com>
11110             Ed Schonberg  <schonberg@adacore.com>
11111
11112         * opt.ads: Warning for non-local exception propagation now off by
11113         default
11114         New switch -gnatI to disable representation clauses
11115         Implement new pragma Implicit_Packing
11116
11117         * usage.adb:
11118         Warning for non-local exception propagation now off by default
11119         Add warning for unchecked conversion of pointers wi different
11120         conventions.
11121         New switch -gnatI to disable representation clauses
11122
11123         * usage.adb: new switch -gnatyS
11124
11125         * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
11126         note that aggregates of anonymous array types are not flagged.
11127         -gnatwc now includes membership tests optimized away
11128         -gnatw.x warnings are now off by default
11129         Added conditional compilation Appendix
11130         Add documentation of -gnatI
11131         Add documentation for new -gnatyS style check
11132         Update documentation about SAL and auto-init on Windows.
11133
11134         * gnat_rm.texi:
11135         Add documentation for pragma Check_Name and 'Enabled attribute
11136         Document that Eliminate on dispatching operation is ignored
11137         Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
11138         Document pragma Main
11139         Document pragma Implicit_Packing
11140
11141         * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
11142         different conventions
11143         New switch -gnatI to disable representation clauses
11144
11145         * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
11146         recognized, report the invalid characters including "-gnat" instead of
11147         just the first character in the switch.
11148         New switch -gnatI to disable representation clauses
11149         Set Warn_On_Object_Renames_Function true for -gnatg
11150
11151         * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
11152         Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
11153         Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
11154         to switch -aP (add directory to project search dir).
11155
11156         * par-prag.adb: Implement new pragma Implicit_Packing
11157
11158         * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
11159         type as having a non-standard representation, to force expansion on
11160         conversion to related types.
11161         (Analyze_Pragma): Warn on misspelled pragma
11162         (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
11163         Ensure consistent use of # in error messages
11164         Implement pragma Implicit_Packing
11165
11166 2007-08-14  Olivier Hainque  <hainque@adacore.com>
11167             Eric Botcazou  <ebotcazou@adacore.com>
11168
11169         * targtyps.c (get_target_maximum_default_alignment): New function.
11170         Maximum alignment
11171         that the compiler might choose by default for a type or object.
11172         (get_target_default_allocator_alignment): New function. Alignment known
11173         to be honored by the target default allocator.
11174         (get_target_maximum_allowed_alignment): New function. Maximum alignment
11175         we might accept for any type or object on the target.
11176         (get_target_maximum_alignment): Now synonym of maximum_default_alignment
11177
11178         * gigi.h (get_target_maximum_default_alignment): Declare new function.
11179         (get_target_default_allocator_alignment): Likewise.
11180         (get_target_maximum_allowed_alignment): Likewise.
11181
11182         PR ada/19037
11183         * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
11184         result of a function call, first try to use a stabilized reference for
11185         a constant renaming too.
11186         (validate_alignment): Use target_maximum_allowed_alignment instead of
11187         MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
11188         (gnat_to_gnu_entity): Use common nodes directly.
11189         (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
11190         alignment and size for the object.
11191         (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
11192         and N_Procedure_Call_Statement.
11193         (takes_address): Rename to lvalue_required_p, add third parameter
11194         'aliased' and adjust recursive calls.
11195         <N_Indexed_Component>: Update 'aliased' from the array type.
11196         <N_Selected_Component>: New case.
11197         <N_Object_Renaming_Declaration>: New Likewise.
11198         (Identifier_to_gnu): Adjust for above changes.
11199         (maybe_stabilize_reference) <CONST_DECL>: New case.
11200
11201         * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
11202         between type variants.
11203         (build_simple_component_ref): Likewise.
11204         (build_call_alloc_dealloc): Use target_default_allocator_alignment
11205         instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
11206         aligning type circuitry for allocations from the default storage pool.
11207         (build_allocator): Likewise.
11208         (build_simple_component_ref): Manually fold the reference for a
11209         constructor if the record type contains a template.
11210
11211         * utils.c (value_zerop): Delete.
11212         (gnat_init_decl_processing): Emit debug info for common types.
11213         (rest_of_record_type_compilation): If a union contains a field
11214         with a non-constant qualifier, treat it as variable-sized.
11215         (finish_record_type): Give the stub TYPE_DECL a name.
11216         (rest_of_record_type_compilation): Likewise.
11217         (convert) <CONSTRUCTOR>: New case.  Build a new constructor if
11218         types are equivalent array types.
11219         (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
11220         even if the type is not passed by reference.
11221         (static_ctors, static_dtors): Delete.
11222         (end_subprog_body): Do not record constructors and destructors.
11223         (build_global_cdtor): Delete.
11224         (gnat_write_global_declarations): Do not call build_global_cdtor.
11225
11226         * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
11227         -fRTS=rtp is specified.
11228         If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
11229         specified.
11230
11231         * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
11232         of the personality function with SJLJ exceptions.
11233
11234         * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
11235         the name of the personality function with SJLJ exceptions.
11236
11237 2007-08-14  Robert Dewar  <dewar@adacore.com>
11238             Ed Schonberg  <schonberg@adacore.com>
11239
11240         * par.ads, par.adb: Improve handling of extra right parens.
11241         (Par): Remove flag From_Limited_With_Clause.
11242
11243         * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
11244         Improve handling of extra right parens.
11245
11246 2007-08-14  Robert Dewar  <dewar@adacore.com>
11247
11248         * par-tchk.adb (TF_Semicolon): Improve error recovery
11249
11250 2007-08-14  Robert Dewar  <dewar@adacore.com>
11251             Ed Schonberg  <schonberg@adacore.com>
11252
11253         * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
11254         enumeration type, mark all literals as referenced.
11255         (Eval_Attribute, case 'Image): If the argument is an enumeration
11256         literal and names are available, constant-fold but mark nevertheless as
11257         non-static.
11258         Clean up function names.
11259         (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
11260         comment.
11261         (Requires_Simple_Name_Prefix): Removed.
11262
11263 2007-08-14  Robert Dewar  <dewar@adacore.com>
11264             Ed Schonberg  <schonberg@adacore.com>
11265
11266         * sem_ch11.adb: Improved warnings for unused variables
11267
11268         * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
11269         is a synchronized interface, the derived type is limited.
11270         (Analyze_Object_Declaration): Mark the potential coextensions in the
11271         definition and expression of an object declaration node.
11272         (Build_Derived_Type): For the completion of a private type declaration
11273         with a derived type declaration, chain the parent type's representation
11274         items to the last representation item of the derived type (not the
11275         first one) if they are not present already.
11276         (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
11277         object declaration of forward references to tags.
11278         (Access_Subprogram_Declaration): In Ada2005, anonymous access to
11279         subprogram types can appear as access discriminants of synchronized
11280         types.
11281         (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
11282         given in prefixed form as a selected component.
11283         (Process_Discriminants): If not all discriminants have defaults, place
11284         error message on a default that is present.
11285         (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
11286         extend a synchronized tagged type.
11287         Improved warnings for unused variables
11288         (Is_Visible_Component): Fix a visibility hole on a component inherited
11289         by a private extension when parent is itself declared as a private
11290         extension, and the derivation is in a child unit.
11291         (Find_Hidden_Interface): Move spec from the package body.
11292
11293 2007-08-14  Robert Dewar  <dewar@adacore.com>
11294             Ed Schonberg  <schonberg@adacore.com>
11295
11296         * sem_ch5.adb: Improve warnings on redundant assignments
11297
11298         * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
11299         parameter
11300         (Is_Synchronized_Tagged_Type): New subprogram that returns true
11301         in case of synchronized tagged types (AARM 3.9.4 (6/2)).
11302         (Safe_To_Capture_Value): Can now return True for constants, even if Cond
11303         is set to False. Improves handling of Known_[Not_]Null.
11304         (Wrong_Type): Special case address arithmetic attempt
11305         (Collect_Abstract_Interfaces): Add new formal to allow collecting
11306         abstract interfaces just using the partial view of private types.
11307         (Has_Abstract_Interfaces): Add new formal to allow checking types
11308         covering interfaces using the partial view of private types.
11309         (Is_Fully_Initialized_Type): Special VM case for uTag component. This
11310         component still needs to be defined in this case, but is never
11311         initialized as VMs are using other dispatching mechanisms.
11312         (Abstract_Interface_List): For a protected type, use base type to get
11313         proper declaration.
11314         Improve warnings on redundant assignments
11315         (Is_Variable): Handle properly an implicit dereference of a prefixed
11316         function call.
11317         (Build_Actual_Subtype): If this is an actual subtype for an
11318         unconstrained formal parameter, use the sloc of the body for the new
11319         declaration, to prevent anomalises in the debugger.
11320
11321 2007-08-14  Robert Dewar  <dewar@adacore.com>
11322
11323         * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
11324         dispatching operation
11325
11326 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11327             Gary Dismukes  <dismukes@adacore.com>
11328
11329         * exp_aggr.ads,
11330         exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
11331         expanded aggregate code before allocator, and ahead of declaration for
11332         temporary, to prevent access before elaboration when the allocator is
11333         an actual for an access parameter.
11334         (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
11335         the TSD and the table of interfaces.
11336         (Convert_To_Assignments): Augment the test for delaying aggregate
11337         expansion for limited return statements to include the case of extended
11338         returns, to prevent creation of an unwanted transient scope.
11339         (Is_Static_Dispatch_Table_Aggregate): New subprogram.
11340         (Expand_Array_Aggregate): Handle aggregates associated with
11341         statically allocated dispatch tables.
11342         (Expand_Record_Aggregate): Handle aggregates associated with
11343         statically allocated dispatch tables.
11344         (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
11345         of anonymous access type.
11346
11347 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11348
11349         * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
11350         is a variable that renames a slice, use the variable itself in the
11351         expannsion when the renamed expression itself may be modified between
11352         the declaration of the renaming and the array assignment.
11353
11354 2007-08-14  Jerome Guitton  <guitton@adacore.com>
11355
11356         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
11357         s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
11358         s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
11359         New functions; dummy implementations.
11360
11361         * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
11362         functions, used to implement the multi-tasks mode routines on VxWorks.
11363
11364         * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
11365         New functions, thin
11366         binding to the VxWorks routines which have changed between VxWorks 5
11367         and 6.
11368         (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
11369         which are not callable from a RTP.
11370
11371         * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
11372         implemented for the multi-tasks mode on VxWorks 5 and 6.
11373
11374         * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
11375
11376         * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
11377         functions.
11378
11379 2007-08-14  Vincent Celier  <celier@adacore.com>
11380
11381         * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
11382         gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
11383         mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
11384         mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
11385         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
11386         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
11387         mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
11388         procedure.
11389         (Major_Id_Name): New function.
11390         mlib-tgt.ads/mlib.tgt.adb:
11391         (Library_Major_Minor_Id_Supported): New function, default returns True
11392         Most mlib-tgt-*.adb that support shared libraries and symbolic links:
11393         (Build_Dynamic_Library): Add support for major/minor ids for shared libs
11394         Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
11395         Implementation of Library_Major_Minor_Id_Supported returns False
11396         clean.adb:
11397         (Clean_Library_Directory): If major/minor ids are supported, clean all
11398         library files.
11399         Major update of the Project Manager and of the project aware tools,
11400         including gprmake, so that the same sources in the GNAT repository
11401         can be used by gprbuild.
11402
11403 2007-08-14  Olivier Hainque  <hainque@adacore.com>
11404
11405         * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
11406         (GCC_ZCX_Support): Switch to True.
11407
11408         * s-intman-solaris.adb (Notify_Exception): Call
11409         Adjust_Context_For_Raise before raising, as expected for signal
11410         handlers in general.
11411
11412         * s-intman-posix.adb (Notify_Exception): Remove declaration of
11413         Adjust_Context_For_Raise, moved to the spec of this unit to be visible
11414         to other implementation bodies.
11415
11416         * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
11417         be visible by multiple implementation bodies.
11418
11419         * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
11420         only for conditions coming from hardware.
11421         [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
11422         adjustments to signal context prior to exception raise from signal
11423         handler.
11424         (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
11425         mode.
11426         Solaris section: (__gnat_adjust_context_for_raise): New function.
11427         Implementation of the machine context adjustments to perform prior to
11428         raise from a signal handler. Version for both sparc and x86.
11429         (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
11430         (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
11431         prior to raising as expected for any handler, before possible nested
11432         faults to make sure all the contexts in a chain have been adjusted by
11433         the time we propagate.
11434
11435 2007-08-14  Pascal Obry  <obry@adacore.com>
11436
11437         * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
11438         (SYSTEM_INFO): New record.
11439         (SetThreadIdealProcessor): New imported routine needed for supporting
11440         task_info pragma on Windows.
11441
11442         * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
11443         info can be applied to the current host.
11444         (Create_Task): Set the ideal processor if information is present.
11445
11446         * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
11447         a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
11448
11449 2007-08-14  Olivier Hainque  <hainque@adacore.com>
11450
11451         * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
11452         stack size and initial stack pointer value for a given task.
11453         (Enter_Task): Get the stack attributes of the task we are entering and
11454         let the stack checking engine know about them.
11455
11456         * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
11457         Let the stack-checking engine know about the initial sp value and stack
11458         size associated with the current task.
11459         (Set_Stack_Info): If a stack base has been notified for the current
11460         task, honor it. Fallback to the previous less accurate method otherwise.
11461
11462         * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
11463
11464 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11465
11466         * sem_ch10.adb: Create a limited view of an incomplete type, to make
11467         treatment of limited views uniform for all visible declarations in a
11468         limited_withed package.
11469         Set flag indicating that a subprogram body for a child unit has a
11470         generated spec.
11471         (Analyze_Compilation_Unit): If unit is a subprogram body that has no
11472         separate declaration, remove the unit name from visibility after
11473         compilation, so that environment is clean for subsequent compilations.
11474         (Install_Limited_Context_Clauses): Do not install a
11475         limited_private_with_clause unless the current unit is a body or a
11476         private child unit.
11477         (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
11478         in the same fashion.
11479         (Install_Limited_Withed_Unit): Do not install a limited with clause if
11480         it applies to the declaration of the current package body.
11481         (Remove_Private_With_Clauses): If there is a regular with_clause for
11482         the unit, delete Private_With_Clause from context, to prevent improper
11483         hiding when processing subsequent nested packages and instantiations.
11484
11485 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
11486
11487         * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
11488         dir/file, device:/dir/file, and device:drive_letter:/dir/file as
11489         representing absolute path names.
11490         __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
11491
11492         * cstreams.c (__gnat_full_name for VxWorks): Use
11493         __gnat_is_absolute_path to detect whether we need to add the current
11494         directory to normalize the path.
11495
11496 2007-08-14  Javier Miranda  <miranda@adacore.com>
11497
11498         * a-tags.ads,
11499         a-tags.adb (Displace): Associate a message with the raised CE
11500         exception.
11501         (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
11502         To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
11503         To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
11504         spec.
11505         (Default_Prim_Op_Count): Removed.
11506         (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
11507         Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
11508         Remove pragma Inline_Always.
11509
11510         * rtsfind.ads (Default_Prim_Op_Count): Removed
11511         (Max_Predef_Prims): New entity
11512         (RE_Expanded_Name): Removed
11513         (RE_HT_Link): Removed
11514         (RE_Iface_Tag): Remmoved
11515         (RE_Ifaces_Table): Removed
11516         (RE_Interfaces_Array): Removed
11517         (RE_Interface_Data_Element): Removed
11518         (RE_Nb_Ifaces): Removed
11519         (RE_RC_Offset): Removed
11520         (RE_Static_Offset_To_Top): Removed
11521
11522         * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
11523         formal.
11524         (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
11525         Prim_Op_Count by Max_Predef_Prims.
11526
11527 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11528             Vincent Celier  <celier@adacore.com>
11529
11530         * binde.adb (Elab_All_Links): Remove unnecessary call to
11531         Generic_Separately_Compiled (if a unit satisfies this predicate, there
11532         won't be an associated Afile).
11533         (Elab_All_Links): Fail if a referenced unit cannot be found
11534
11535         * bindgen.adb:
11536         Fix comments in bindgen regarding consistency checks done in Bcheck:
11537         the checks are made across units within a partition, not across several
11538         partitions.
11539         Fix generation of C binder file for VxWorks.
11540
11541         * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
11542         Generic_May_Lack_ALI, more descriptive of the current use of the
11543         predicate, and update documentation.
11544
11545         * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
11546         reorganization and documentation update for the case of predefined
11547         library generics (for which we do not reference an Afile).
11548
11549 2007-08-14  Robert Dewar  <dewar@adacore.com>
11550
11551         * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
11552         s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
11553         s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
11554         s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
11555         s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
11556         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
11557         s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
11558         s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
11559         exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
11560         s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
11561         s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
11562         a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
11563         s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
11564         g-altcon.adb: Minor reformatting
11565
11566         ada-tree.h: Delete empty line.
11567
11568         ali.ads: Minor reformatting
11569         Clarification of comments.
11570         Minor spelling correction
11571
11572         * exp_dbug.adb: Add Warnings Off to suppress new warning
11573
11574         * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
11575         formal
11576
11577         * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
11578         value
11579
11580         * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
11581
11582         * a-textio.ads: Reorder the standard input/output/error declarations
11583         for consistency.
11584
11585         * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
11586
11587         * par-ch2.adb: Recognize RM specially in errout
11588         Change 'R'M to RM in all error messages
11589
11590         * scng.adb: Recognize RM specially in errout
11591
11592         * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
11593         N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
11594
11595         * s-direio.adb: Add missing routine header box.
11596
11597         * sem_attr.ads: Add ??? comments
11598
11599         * sem_eval.adb: Recognize RM specially in errout
11600         Change 'R'M to RM in all error messages
11601
11602         * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
11603
11604         * s-tasinf.ads: Fix minor comment typo.
11605
11606         * a-cihama.adb: Minor comment addition
11607
11608         * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
11609         formal
11610
11611         * s-tasinf-tru64.ads: Fix minor comment typo.
11612
11613         * itypes.ads: Comment update.
11614
11615         * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
11616         anymore.
11617
11618         * argv.c: Added protection against null gnat_argv and gnat_envp.
11619
11620         * bcheck.adb (Check_Consistency): Use correct markup character ({) in
11621         warning message when Tolerate_Consistency_Errors is True.
11622
11623         * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
11624         Any_Id, as this subprogram is only applicable to *type* entities (it
11625         sets RM_Size). Instead initialize just Esize and Alignment.
11626
11627 2007-08-14  Bob Duff  <duff@adacore.com>
11628
11629         * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
11630         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
11631         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
11632         a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
11633         a-coorse.ads (Next): Applied pragma Inline.
11634         Make all Containers packages Remote_Types (unless they are already
11635         Pure).
11636         (Previous): applied pragma Inline
11637         (Elements_Type): is now a record instead of an array
11638
11639 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11640
11641         * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
11642         of Set_Item.
11643         (Set_Item): When the new item is an element of the currently allocated
11644         table passed by reference, save a copy on the stack if we're going
11645         to reallocate. Also, in Table.Set_Item, make sure we test the proper
11646         variable to determine whether to call Set_Last.
11647
11648         * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
11649         symbols-vms.adb, symbols-processing-vms-alpha.adb,
11650         symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
11651         some occurrences of the pattern
11652            T.Increment_Last;
11653            T.Table (T.Last) := Value;
11654         with a cleaner call to
11655            T.Append (Value);
11656
11657 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11658             Gary Dismukes  <dismukes@adacore.com>
11659             Thomas Quinot  <quinot@adacore.com>
11660
11661         * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
11662         derived type with interface progenitors use the analyzed formal as the
11663         parent of the actual, to create renamings for all the inherited
11664         operations in Derive_Subprograms.
11665         (Collect_Previous_Instances): new procedure within of
11666         Load_Parent_Of_Generic, to instantiate all bodies in the compilation
11667         unit being loaded, to ensure that the generation of global symbols is
11668         consistent in different compilation modes.
11669         (Is_Tagged_Ancestor): New function testing the ancestor relation that
11670         takes progenitor types into account.
11671         (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
11672         traversing over the primitives of the formal and actual types to locate
11673         any abstract subprograms of the actual type that correspond to a
11674         nonabstract subprogram of the formal type's ancestor type(s), and issue
11675         an error if such is found.
11676         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
11677         Instantiate_Package_Body, Instantiate_Subprogram_Body):
11678         Remove bogus guard around calls to Inherit_Context.
11679         (Reset_Entity): If the entity is the selector of a selected component
11680         that denotes a named number, propagate constant-folding to the generic
11681         template only if the named number is global to the generic unit.
11682         (Set_Instance_Env): Only reset the compilation switches when compiling
11683         a predefined or internal unit.
11684
11685 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11686
11687         * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
11688         parameter to determine whether operation applies to the prefix.
11689         (Complete_Object_Operation): If actual has an access type and
11690         controlling formal is not an in_parameter, reject the actual if it is
11691         an access_to_constant type.
11692         (Try_Primitive_Operation): If the type of the prefix is a formal tagged
11693         type, the candidate operations are found in the scope of declaration of
11694         the type, because the type has no primitive subprograms.
11695         (Analyze_Selected_Component): If prefix is class-wide, and root type is
11696         a private extension, only examine visible components before trying to
11697         analyze as a prefixed call.
11698         Change Entity_List to Type_To_Use, for better readability.
11699         (Has_Fixed_Op): Use base type when checking whether the type of an
11700         operator has a user-defined multiplication/division
11701         (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
11702         user-defined operators are available for fixed-point types.
11703
11704 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11705             Ed Schonberg  <schonberg@adacore.com>
11706
11707         * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
11708         formal At_Any_Place indicating, when True, that we want to test for
11709         availability of the stream attribute at any place (as opposed to the
11710         current visibility context only).
11711         (Missing_Read_Write_Attributes): A stream attribute is missing for the
11712         purpose of enforcing E.2.2(8) only if it is not available at any place.
11713         Take into account the Ada2005 pragma Has_Preelaborable_Initialization
11714         when checking the legality of an extension aggregate in a preelaborable
11715         package. Treat the literal null as a valid default expression in a
11716         component declaration for a type with preelaborable initialization.
11717         A limited interface is a legal progenitor for the designated type of a
11718         remote access to class-wide type.
11719
11720 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11721             Ed Schonberg  <schonberg@adacore.com>
11722
11723         * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
11724         reference): Use correct entity as denoted entity for the selector of
11725         the rewritten node.
11726         (Find_Direct_Name): Add comment about Generate_Reference incorrectly
11727         setting the Referenced_As_LHS flag for entities that are implicitly
11728         dereferenced.
11729         (Find_Type): If the type is an internally generated incomplete type,
11730         mark the full view as referenced, to prevent spurious warnings.
11731         (Find_Selected_Component, Has_Components): Handle properly non-limited
11732         views that are themselves incomplete types.
11733         Handle interfaces visible through limited-with clauses.
11734         (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
11735         subprogram generic actual for which we have generated a renaming.
11736         Warn when the renaming introduces a homonym of
11737         the renamed entity, and the renamed entity is directly visible.
11738
11739 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11740             Hristian Kirtchev  <kirtchev@adacore.com>
11741
11742         * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
11743         appear in the subtree to the current allocator if it is not a static
11744         coextension.
11745         (Resolve_Allocator): Perform cleanup if resolution has determined that
11746         the allocator is not a coextension.
11747         (Resolve): Skip an interpretation hidden by an abstract operator only
11748         when the type of the interpretation matches that of the context.
11749         (Resolve): When looping through all possible interpretations of a node,
11750         do not consider those that are hidden by abstract operators.
11751         (Resolve_Actuals): When verifying that an access to class-wide object
11752         is an actual  for a controlling formal, ignore anonymous access to
11753         subprograms whose return type is an access to class_wide type.
11754         (Resolve_Slice): If the prefix of the slice is a selected component
11755         whose type depends on discriminants, build its actual subtype before
11756         applying range checks on the bounds of the slice.
11757         (Valid_Conversion): In an instance or inlined body, compare root types,
11758         to prevent anomalies between private and public views.
11759         (Resolve): Improve error message for ambiguous fixed multiplication
11760         expressions that involve universal_fixed multiplying operations.
11761
11762 2007-08-14  Javier Miranda  <miranda@adacore.com>
11763             Hristian Kirtchev  <kirtchev@adacore.com>
11764
11765         * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
11766         location to allow the correct generation of errors in case of
11767         restrictions applied to the expanded code.
11768         (Expand_Entry_Barrier): Remove all generated renamings for a barrier
11769         function if the condition does not reference them.
11770         (Expand_Entry_Body_Declarations): Mark the index constant as having a
11771         valid value.
11772
11773 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11774             Pablo Oliveira  <oliveira@adacore.com>
11775
11776         * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
11777         typecode parameters for a union (in a variant record), remove
11778         extraneous layer of Any wrapping for member label.
11779         (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
11780         elabration statements, register the package with the name server
11781         at the beginning, not at the end, of the elaboration statements so
11782         that they can create remote access to subprogram values that designate
11783         remote subprograms from the package.
11784
11785 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
11786
11787         * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
11788         values to compute the number of seconds since the Unix Epoc in order to
11789         account for Daylight Savings Time. Perform special processing for dates
11790         that are earlier than the Unix Epoc to obtain a negative number.
11791
11792 2007-08-14  Emmanuel Briot  <briot@adacore.com>
11793
11794         * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
11795         switches.
11796
11797 2007-08-14  Eric Botcazou  <ebotcazou@adacore.com>
11798
11799         * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
11800         binder-generated file is not in Ada.
11801         Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
11802         recorded in the ALI file.
11803         Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
11804
11805 2007-08-14  Vincent Celier  <celier@adacore.com>
11806
11807         * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
11808         (Output_Source): Do nothing if parameter is No_Sdep_Id
11809
11810         * make.adb (Gnatmake): Do not rebuild an archive simply because a
11811         shared library it imports has a later time stamp.
11812         (Check): Resolve the symbolic links in the path name of the object
11813         directory.
11814         Check that the ALI file is in the correct object directory
11815         Check if a file name does not correspond to the mapping of units
11816         to file names.
11817         (Display_Version): New procedure
11818         (Initialize): Process switches --version and --help
11819         Use type Path_Name_Type for path name
11820
11821 2007-08-14  Paul Hilfinger  <hilfinger@adacore.com>
11822
11823         * impunit.adb: Re-organize System.Random_Numbers and
11824         GNAT.Random_Numbers and add to builds.
11825
11826         * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
11827
11828         * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
11829
11830         * a-assert.ads, a-assert.adb: New files.
11831
11832 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
11833
11834         * layout.adb (Layout_Type): In the case of access-to-subprogram types,
11835         if AAMP_On_Target is True, then the size of the type encompasses two
11836         addresses (a static link and a subprogram address), except in the case
11837         of library-level access types.
11838
11839 2007-08-14  Vincent Celier  <celier@adacore.com>
11840
11841         * output.ads, output.adb (Write_Eol): Remove trailing spaces before
11842         writing the line.
11843         (Write_Eol_Keep_Blanks): New procedure to write a line, including
11844         possible trailing spaces.
11845         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
11846
11847 2007-08-14  Javier Miranda  <miranda@adacore.com>
11848
11849         * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
11850         null-excluding access types.
11851
11852 2007-08-14  Javier Miranda  <miranda@adacore.com>
11853
11854         * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
11855         that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
11856         of private types add missing check on matching interfaces in the
11857         partial and full declarations.
11858         (Analyze_Protected_Type): Code cleanup.
11859         (Analyze_Task_Type): Code cleanup.
11860
11861 2007-08-14  Javier Miranda  <miranda@adacore.com>
11862
11863         * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
11864         generated interface thunk.
11865
11866 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11867
11868         * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
11869         obsolescent warning on application of 'Class to an incomplete type.
11870
11871         * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
11872         prevent obsolescent warning on application of 'Class to an incomplete
11873         type.
11874
11875 2007-08-14  Pascal Obry  <obry@adacore.com>
11876
11877         * s-fileio.adb (Is_Open): Add check for usability of the underlying
11878         file stream.
11879
11880 2007-08-14  Cyrille Comar  <comar@adacore.com>
11881
11882         * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
11883         since it is potentially used in cases implying double finalization of
11884         the same object.
11885
11886 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
11887
11888         * s-tasini.adb (Get_Stack_Info): Move this function to
11889         System.Soft_Links.Tasking because it is common to the full and the
11890         restricted run times.
11891         (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
11892         in SSL.Tasking.Init_Tasking_Soft_Links.
11893
11894         * s-solita.adb (Get_Stack_Info): Function moved from
11895         System.Tasking.Initialization because it is common to the full and the
11896         restricted run times.
11897         (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
11898
11899 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
11900
11901         * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
11902         s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
11903         (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
11904         parameter.
11905
11906         * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
11907         guard to 12K.
11908
11909 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
11910
11911         * s-veboop.adb (SU): New named number initialized to
11912         System.Storage_Unit.
11913         (True_Val): The initialization expression is revised to use SU (=
11914         Storage_Unit) rather than assuming 8 for the component size of an
11915         unpacked Boolean array.
11916
11917 2007-08-14  Tristan Gingold  <gingold@adacore.com>
11918
11919         * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
11920
11921         * tb-ivms.c: New file.
11922
11923         * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
11924
11925 2007-08-14  Geert Bosch  <bosch@adacore.com>
11926
11927         * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
11928         s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
11929         Add required linker pragmas for automatically linking with the gnalasup
11930         linear algebra support library, and the systems math library.
11931         Rename cdot to cdotu and zdot to zdotu.
11932         Update header comment to describe purpose of package.
11933
11934 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11935
11936         * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
11937         an explicitly specified Associated_Final_Chain, use that list.
11938         (Expand_N_Package_Body): Build dispatch tables of library level tagged
11939         types.
11940         (Expand_N_Package_Declaration): Build dispatch tables of library level
11941         tagged types. Minor code cleanup.
11942
11943 2007-08-14  Vincent Celier  <celier@adacore.com>
11944
11945         * gnatchop.adb (Terminate_Program): Remove exception and use
11946         Types.Terminate_Program instead.
11947
11948         * osint.ads, osint.adb (Current_Exit_Status): New global variable
11949         (Find_Program_Name): Added protection against empty name.
11950         (OS_Exit_Through_Exception): New procedure
11951
11952         * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
11953         (OS_Exit_Default): New procedure that contains the previous
11954         implementation of procedure OS_Exit.
11955         (Final_Value): Remove obsolete Interix stuff.
11956
11957 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11958
11959         * g-socket.ads: Reorganize example code so that it also works on
11960         Windows XP.
11961
11962 2007-08-14  Tristan Gingold  <gingold@adacore.com>
11963
11964         * g-trasym.ads: AIX now supports symbolic backtraces.
11965
11966 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11967
11968         * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
11969         units being loaded to detect circularities. A circularity may be
11970         present even if the current chain of pending units to load starts from
11971         a limited_with_clause.
11972
11973         * lib-load.ads: Change profile of Load_Unit to use a with_clause
11974         rather than a boolean flag, in order to detect circularities in
11975         with_clauses.
11976
11977         * par-load.adb: Use current with_clause in calls to Load_Unit, rather
11978         than propagating the From_Limited_With flag, in order to handle
11979         properly circularities involving with_clauses.
11980
11981 2007-08-14  Nicolas Setton  <setton@adacore.com>
11982
11983         * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
11984         warnings.
11985
11986 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
11987
11988         * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
11989         to build for libgnala.
11990         libgnat: Add rules to build libgnala.a
11991         (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
11992         target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
11993         Add s-osinte-vxworks-kernel.adb to the target pairs of the
11994         kernel run-time lib for VxWorks 6, which would provide a different
11995         implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
11996         x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
11997         running ZCX by default.
11998         Add g-sttsne-locking to LynxOS version.
11999         Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
12000         On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
12001
12002         * system-darwin-x86.ads: New file.
12003
12004         * Make-lang.in: Delete files before copying onto them, so if they are
12005         read-only, the copy won't fail.
12006         Update dependencies
12007
12008 2007-08-14  Pascal Obry  <obry@adacore.com>
12009
12010         * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
12011         naming scheme.
12012
12013 2007-08-14  Vincent Celier  <celier@adacore.com>
12014
12015         * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
12016         (Gcc): Initialize Gcc_Name at the first call
12017
12018 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
12019
12020         * sem_ch7.adb (Analyze_Package_Specification): Do not install private
12021         with_clauses of the enclosing unit when analyzing the package
12022         specification of a nested instance.
12023
12024 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
12025
12026         * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
12027         (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
12028         Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
12029         layout of N_Allocator.
12030
12031 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12032
12033         * rtsfind.adb (Check_RPC): Add PCS version check.
12034
12035         * gnatvsn.ads, gnatvsn.adb: Add PCS version.
12036         (Gnat_Free_Software): New function.
12037
12038         * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
12039         the PCS_Version value from s-parint, used to check that it is consistent
12040         with what exp_dist expects.
12041
12042         * s-parint.ads (PCS_Version): New entity for checking consistency
12043         between exp_dist and PCS.
12044
12045         * gen-soccon.c: (SO_REUSEPORT): New constant.
12046
12047 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
12048
12049         * a-calfor.adb (Image (Duration; Boolean)): Change type of local
12050         variable Sub_Second to Duration in order to accomodate a larger range
12051         of arithmetic operations.
12052
12053 2007-08-14  Bob Duff  <duff@adacore.com>
12054
12055         * g-sttsne-locking.ads: Move comments from spec to body.
12056         * g-sttsne-locking.adb: Move comments from spec to body.
12057         * g-sttsne-vxworks.ads: Removed.
12058         * g-sttsne-vxworks.adb: Removed.
12059
12060 2007-08-11  Ian Lance Taylor  <iant@google.com>
12061
12062         * misc.c (gnat_get_alias_set): Change return type to
12063         alias_set_type.
12064
12065 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12066
12067         * decl.c, utils2.c: Fix whitespace in last change.
12068
12069 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12070
12071         * decl.c (compare_field_bitpos): Constify.
12072         * utils2.c (compare_elmt_bitpos): Likewise.
12073
12074 2007-07-27  Aurelien Jarno  <aurelien@aurel32.net>
12075
12076         * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
12077         anonymous access type.
12078         (pthread_sigmask): Now take an access sigset_t.
12079
12080 2007-07-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
12081
12082         * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
12083
12084 2007-06-21  Eric Botcazou  <ebotcazou@adacore.com>
12085
12086         PR tree-optimization/25737
12087         * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
12088
12089 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12090
12091         * trans.c (Attribute_to_gnu): When subtracting an
12092         offset from a pointer, use POINTER_PLUS_EXPR with
12093         NEGATE_EXPR instead of MINUS_EXPR.
12094         (gnat_to_gnu): Likewise.
12095         * utils.c (convert): When converting between
12096         thin pointers, use POINTER_PLUS_EXPR and sizetype
12097         for the offset.
12098         * utils2.c (known_alignment): POINTER_PLUS_EXPR
12099         have the same semantics as PLUS_EXPR for alignment.
12100         (build_binary_op): Add support for the semantics of
12101         POINTER_PLUS_EXPR's operands.
12102         When adding an offset to a pointer, use POINTER_PLUS_EXPR.
12103
12104 2007-06-11  Rafael Ávila de Espíndola  <espindola@google.com>
12105
12106         * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
12107         of get_signed_or_unsigned_type.
12108         * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
12109
12110 2007-06-11  Bob Duff  <duff@adacore.com>
12111             Thomas Quinot  <quinot@adacore.com>
12112
12113         * g-stsifd-sockets.adb (Create): Work around strange behavior of
12114         'bind' on windows that causes 'connect' to fail intermittently, by
12115         retrying the 'bind'.
12116         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12117
12118 2007-06-10  Duncan Sands  <baldrick@free.fr>
12119
12120         * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
12121         than to void, for the fields when making a new fat pointer type.
12122         (gnat_substitute_in_type): Now substitute_in_type.
12123         * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
12124         * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
12125         * utils.c (update_pointer_to): Update fat pointers by updating the
12126         dummy node pointers used for the fields.
12127
12128 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12129             Bob Duff  <duff@adacore.com>
12130
12131         * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
12132         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
12133         g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
12134         constant Thread_Blocking_IO, always True by default, set False
12135         on a per-runtime basis.
12136         (Need_Netdb_Buffer): New constant.
12137
12138         * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
12139         g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
12140         files.
12141
12142         * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
12143         g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
12144         Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
12145         child package Task_Safe_NetDB
12146         (Host_Error_Messages): Add stub body.
12147         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12148
12149         * g-soccon-mingw.ads: Add Windows-specific constants.
12150         (Need_Netdb_Buffer): New constant.
12151         (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
12152         wrapper and import inet_addr(3) from the standard sockets library
12153         directly instead.
12154         (In_Addr): Add alignment clause.
12155         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12156
12157 2007-06-06  Robert Dewar  <dewar@adacore.com>
12158
12159         * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
12160         s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
12161         s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
12162         s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
12163         s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
12164         s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
12165         a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
12166         a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
12167         a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
12168         g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
12169         g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
12170         i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
12171         s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
12172         s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
12173         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
12174         s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
12175         s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
12176         s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
12177         s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
12178         s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
12179         s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
12180         s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
12181         s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
12182         s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
12183         s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
12184         s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
12185         s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
12186         s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
12187         s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
12188         s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
12189         s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
12190         a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
12191         Unchecked_* by Ada.Unchecked_*
12192
12193 2007-06-06  Robert Dewar  <dewar@adacore.com>
12194
12195         * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
12196         s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
12197         g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
12198         output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
12199         g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
12200         a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
12201
12202         * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
12203         s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
12204         s-tasloc.adb, s-tasloc.ads: New files.
12205
12206 2007-06-06  Bob Duff  <duff@adacore.com>
12207
12208         * g-expect-vms.adb:
12209         (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
12210         * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
12211         (Send_Signal, Close): Raise Invalid_Process if the process id is
12212         invalid.
12213         (Pattern_Matcher_Access): Is now a general access type to be able to
12214         use aliased string.
12215
12216 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12217             Arnaud Charlet  <charlet@adacore.com>
12218
12219         * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
12220         (SIGEMT is now used instead of SIGTERM on AIX).
12221
12222         * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
12223         (Time_Slice_Supported): Set to True.
12224         Use SIGEMT instead of SIGTERM as SIGADAABORT.
12225
12226 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
12227
12228         * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
12229         (Time, Time)): Use To_Relative_Time rather than manual calculation to
12230         express the bounds of Duration as Time. Raise Time_Error when the
12231         result is greater or equal to the higher bound of Duration (on the
12232         margin case).
12233         ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
12234         Ada_High_And_Leaps.
12235         ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
12236         Ada_High_And_Leaps.
12237         ("-" (Time, Time)): Reorder code.
12238         (All_Leap_Seconds): Removed.
12239         (Arithmetic_Operations.Add): Remove sign related kludge.
12240         (Arithmetic_Operations.Difference): Control the leaps seconds processing
12241         with flag Leap_Support.
12242         (Arithmetic_Operations.Subtract): Remove sign related kludge.
12243         (Check_Within_Time_Bounds): New procedure.
12244         (Clock): Control the leap seconds processing with flag Leap_Support.
12245         (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
12246         (Formatting_Operations.Split): Control the leap seconds processing with
12247         flag Leap_Support.
12248         (Formatting_Operations.Time_Of): Control the leaps seconds processing
12249         with flag Leap_Support. Adjust the year, month and day (if applicable)
12250         when the value of day seconds designates a new day.
12251         (Split): Use parameter associations for better readability. Integrate
12252         flag Is_Ada_05.
12253         (Time_Of): Use parameter associations for better readability. Integrate
12254         flag Is_Ada_05.
12255
12256         * a-calfor.adb (Split): Use parameter associations for better
12257         readability. Integrate flag Is_Ada_05.
12258         (Time_Of): Remove flag Leap_Checks. Use parameter associations for
12259         better readability. Integrate flag Is_Ada_05.
12260
12261 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12262
12263         * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
12264         s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
12265         s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
12266         s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
12267         s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
12268         s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
12269         s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
12270         s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
12271         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
12272         s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
12273         s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
12274         time when entering this routine to detect a backward clock setting
12275         (manual setting or DST adjustment), to avoid waiting for a longer delay
12276         than needed.
12277         (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
12278         Remove handling of deferred priority change, and replace by setting the
12279         task priority directly, as required by AI-188.
12280         Update comments.
12281         (Max_Task_Image_Length): New constant.
12282         Replace Warnings (Off) by Unreferenced pragma, cleaner.
12283         (Dynamic_Priority_Support): Removed, no longer needed.
12284         (Poll_Base_Priority_Change): Ditto.
12285         (Set_Ceiling): Add this procedure to change the ceiling priority
12286         associated to a lock. This is a dummy implementation because dynamic
12287         priority ceilings are not supported by the underlying system.
12288
12289         * a-dynpri.adb (Set_Priority): Take into account case where Target is
12290         accepting a RV with its priority boosted.
12291         Remove handling of deferred priority change, and replace by setting the
12292         task priority directly, as required by AI-188.
12293
12294         * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
12295         Succeeded = True.
12296         Remove handling of deferred priority change, and replace by setting the
12297         task priority directly, as required by AI-188.
12298         (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
12299         of Self_Id earlier.
12300
12301         * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
12302         (Poll_Base_Priority_Change): Removed.
12303         Code clean up: use SSL.Current_Target_Exception.
12304
12305         * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
12306         to run as this is a potentially dispatching point.
12307         (Call_Synchronous): Use Local_Defer_Abort.
12308         (Callable): Relax assertion.
12309         (Selective_Wait): Relax assertion in case abort is not allowed.
12310         Remove handling of deferred priority change, and replace by setting the
12311         task priority directly, as required by AI-188.
12312
12313         * s-tasuti.adb (Make_Passive): Adjust assertions.
12314         Remove handling of deferred priority change, and replace by setting the
12315         task priority directly, as required by AI-188.
12316
12317 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12318
12319         * system-vxworks-sparcv9.ads, system-solaris-x86.ads,
12320         system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
12321         system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
12322         system-vxworks-mips.ads, system-vxworks-alpha.ads,
12323         system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
12324         system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
12325         system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
12326         system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
12327         system-solaris-sparcv9.ads, system-vms.ads, system.ads,
12328         system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
12329         system-linux-ia64.ads: Document mapping between Ada and OS priorities.
12330         This patch changes the largest non-binary modulus from 2**31-1 to
12331         2**32-1.
12332         (Compiler_System_Version): Removed, no longer used.
12333         Clean up system files by removing flags only used on a single target.
12334         Also remove obsolete flags, only used during bootstrap from system.ads
12335         (Address): Add a pragma Preelaborable_Initialization.
12336
12337         * system-aix.ads:  Ditto.
12338         (GCC_ZCX_Support): Set to true.
12339         Update priority range on AIX and map Ada priorities to target
12340         priorities appropriately for different scheduling policies.
12341
12342         * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
12343
12344 2007-06-06  Vincent Celier  <celier@adacore.com>
12345
12346         * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
12347         mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
12348
12349         * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
12350         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
12351         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
12352         mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
12353         mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
12354         MLib.Tgt, containing the default versions of the exported subprograms.
12355         For each platform, create a specific version of the body of new child
12356         package MLib.Tgt.Specific that contains only the body of subprograms
12357         that are different from the default.
12358         (Archive_Builder_Append_Options): New function.
12359
12360 2007-06-06  Matthew Gingell  <gingell@adacore.com>
12361
12362         * s-osinte-aix.adb: Map Ada priorities to target priorities
12363         appropriately for different scheduling policies.
12364
12365 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12366
12367         * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
12368         its C counterpart.
12369         Remove references to Unchecked_Conversion, and use Ada.xxx instead.
12370         Replace Unchecked_Conversion by Ada.Unchecked_Conversion.
12371
12372 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
12373
12374         * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
12375         Noop on VMS, added for interface commonality.
12376
12377 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
12378             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12379             Olivier Hainque  <hainque@adacore.com>
12380
12381         * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
12382         renamed expression of a full renaming at toplevel.
12383         (gnat_to_gnu_entity, case object): If not defining, do not look inside
12384         the values the constant is initialized to if it is an N_Allocator.
12385         (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
12386         TYPE_SIZE_UNIT of inner types after the stride is elaborated.
12387         (make_aligning_type): Accept an extra ROOM argument for storage to be
12388         made available before the aligned field, and an extra BASE_ALIGN
12389         argument for callers to pass the alignment guaranteed to be honored for
12390         the whole aligning object. Avoid call to finish_record_type, which only
12391         interferes with the sizes we want to set.
12392         (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
12393         make_aligning_type for super-aligned objects on stack.
12394         (components_to_record): Pass the adjusted size of the type when creating
12395         fields in the qualified union for the variant part.
12396         (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
12397         (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
12398         packed array type.
12399         (maybe_pad_type): Set TYPE_USER_ALIGN.
12400         (make_aligning_type): Likewise.
12401         ALIGN argument is unsigned int.
12402         (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
12403         (gnat_to_gnu_param): Likewise, for parameters.
12404         (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
12405         if it is constant and stems from a function call.
12406         (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
12407         of the record is specified.  Adjust accordingly.
12408         (adjust_packed): New static function.
12409         (gnat_to_gnu_field): Use it to adjust the packedness setting.
12410         (components_to_record): Likewise.
12411         (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
12412         side-effects if the object is deemed constant.
12413         (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
12414         type instead of merely finalizing it.  Tidy.
12415         <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
12416         <E_Access_Type>: Likewise.
12417         (defer_debug_incomplete_list): Rename to defer_finalize_list.
12418         (defer_debug_level): Delete.
12419         (gnat_to_gnu_entity) <debug_deferred>: Likewise
12420         <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
12421         type.
12422         <E_Record_Type>: Do not explicitly defer finalizing the type.
12423         Adjust for write_record_type_debug_info renaming.
12424         <E_Subprogram_Type>: Likewise.
12425         Finalize deferred types right after deferred incomplete types are
12426         expanded.
12427         (rest_of_type_decl_compilation): New global function.
12428         (components_to_record): Rename defer_debug parameter to do_not_finalize.
12429         (components_to_record): Propagate the packedness to the fields of the
12430         qualified union type if there is a variant part.
12431         (gnat_to_gnu_entity) <E_Array_Type>: Use new function
12432         instead of inline code to adjust the XUT field offsets.
12433         (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
12434         <E_Record_Subtype>: Do not let finish_record_type compute the sizes
12435         and write the debug info if the type derives from a discriminated one.
12436         (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
12437         <E_Array_Subtype>: Likewise.
12438         <E_String_Literal_Subtype>: Likewise.
12439         (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
12440         an alignment clause.
12441         (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
12442         before giving warning.
12443         (prepend_one_attribute_to): New function, helper to prepend an attribute
12444         to an attribute list.
12445         (gnat_to_gnu_entity) <E_Procedure>: Use it.
12446         (prepend_attributes): Likewise.
12447         (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
12448         <E_Array_Type>: Declare the padding type for the element type, if any.
12449         <E_Array_Subtype>: Likewise.
12450         (defer_limited_with): New variable.
12451         (Gigi_Equivalent_Type): New function.
12452         (gnat_to_gnu_entity): Use it at start and use result throughout.
12453         (gnat_to_gnu_entity, case E_Access_Type): Rework to use
12454         Gigi_Equivalent_Type, support Limited_With, allow two levels of
12455         indirection, precompute if unconstrained array to simplify logic, and
12456         use defer_limited_with to defer elaboration of some types from limited
12457         with.
12458         (finalize_from_with_types): New function.
12459
12460 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
12461             Eric Botcazou  <ebotcazou@adacore.com>
12462             Tristan Gingold  <gingold@adacore.com>
12463             Olivier Hainque  <hainque@adacore.com>
12464
12465         * trans.c (Identifier_to_gnu): Change test for deferred constant by
12466         adding guard that the entity is an E_Constant before testing presence
12467         of Full_view (and remove unnecessary test that entity is not a type).
12468         For a CONST_DECL used by reference, manually retrieve
12469         the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
12470         (struct language_function): Move from utils.c to here.
12471         (struct parm_attr): New structure.
12472         (parm_attr, parm_attr vector, parm_attr GC vector): New types.
12473         (f_parm_attr_cache): New macro.
12474         (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
12475         expressions for the 'First, 'Last and 'Length attributes of the
12476         unconstrained array IN parameters.
12477         (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
12478         Allocate the information structure for the function earlier, as well
12479         as the language-specific part.
12480         If the parameter attributes cache has been populated, evaluate the
12481         cached expressions on entry.
12482         (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
12483         N_Procedure_Call_Statement and N_Indexed_Component.
12484         (Pragma_to_gnu): Translate inspection_point to an asm statement
12485         containaing a comment and a reference to the object (either its address
12486         for BLKmode or its value).
12487         (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
12488         to go to DECL_INITIAL. Together with the size constraint relaxation
12489         in create_var_decl, enlarges the set of situations in which an
12490         identifier may be used as an initializer without implying elaboration
12491         code.
12492         (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
12493         DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
12494         node.
12495         (maybe_stabilize_reference): Remove lvalues_only parameter.
12496         (gnat_stabilize_reference): Adjust for above change.
12497         (gnat_to_gnu): Do not set location information on the result
12498         if it is a reference.
12499         (add_cleanup): Add gnat_node parameter and set the location of the
12500         cleanup to it.
12501         (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
12502         (Exception_Handler_to_gnu_zcx): Likewise.
12503         (gigi): Remove the cgraph node if the elaboration procedure is empty.
12504         (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
12505         the former right after the latter.
12506         (start_stmt_group): Make global.
12507         (end_stmt_group): Likewise.
12508         (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
12509         vars.
12510         (gnu_program_error_label_stack): Likewise.
12511         (gigi): Initialize them.
12512         (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
12513         (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
12514         New cases.
12515         (push_exception_label_stack): New function.
12516         (takes_address): New function.
12517
12518         * utils.c (struct language_function): Move to trans.c from here.
12519         (unchecked_convert): Do not wrap up integer constants in
12520         VIEW_CONVERT_EXPRs.
12521         (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
12522         the latter for aggregate types, unexpected by later passes, and relax an
12523         arbitrary size constraint on the former.
12524         (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
12525         to compare the sizes.
12526         (convert_vms_descriptor): When converting to a fat pointer type, be
12527         prepared for a S descriptor at runtime in spite of a SB specification.
12528         (shift_unc_components_for_thin_pointers): New function.
12529         (write_record_type_debug_info): For variable-sized fields, cap the
12530         alignment of the pointer to the computed alignment.
12531         (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
12532         If REP_LEVEL is 2, do not compute the sizes.
12533         (build_vms_descriptor): Adjust for new prototype of finish_record_type.
12534         (build_unc_object_type): Likewise.
12535         (declare_debug_type): New function.
12536
12537         * ada-tree.def: USE_STMT: removed (not emitted anymore).
12538
12539         * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
12540         no statement is expandable anymore.
12541         (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
12542         (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
12543         when the user requested it explicitely.
12544         (gnat_post_options): By default, set flag_eliminate_unused_debug_types
12545         to 0 for Ada.
12546         (get_alias_set): Return alias set 0 for a type if
12547         TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
12548
12549         * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
12550         (DECL_FUNCTION_STUB): New accessor macro.
12551         (SET_DECL_FUNCTION_STUB): New setter macro.
12552
12553         * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
12554
12555         * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
12556         declarations.
12557
12558 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
12559
12560         * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
12561         Rename to Abort_Task_Interrupt to be able to keep the same interface
12562         as the rest of the targets.
12563
12564         * s-osinte-vxworks.ads s-osinte-vxworks.adb
12565         (To_VxWorks_Priority): Remove explicit "in" mode indicator
12566
12567         * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
12568         New files.
12569
12570 2007-06-06  Robert Dewar  <dewar@adacore.com>
12571
12572         * a-chahan.ads: Remove obsolescent pragmas
12573
12574         * a-chlat1.ads: Minor reformatting
12575
12576 2007-06-06  Robert Dewar  <dewar@adacore.com>
12577
12578         * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
12579         for Errout
12580
12581         * errout.adb: New Finalize/Compilation_Errors/Output_Messages
12582         implementation
12583
12584         * errout.ads (Finalize): Changed interface
12585         (Output_Messages): New procedure
12586         (Compilation_Errors): New Interface
12587
12588         * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
12589         Finalize/Output_Messages interface for Errout
12590         (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
12591         Errout.
12592
12593 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12594             Olivier Hainque  <hainque@adacore.com>
12595             Robert Dewar  <dewar@adacore.com>
12596
12597         * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
12598         check.
12599         (Raise_Current_Excep): Call Debug_Raise_Exception just before
12600         propagation starts, to let debuggers know about the event in a reliable
12601         fashion.
12602         (Local_Raise): Moved to System.Exceptions
12603         More convenient to have this as a separate unit
12604
12605         * s-except.adb, s-except.ads: New files.
12606
12607         * a-exextr.adb (Unhandled_Exception): Delete - replaced by
12608         Debug_Unhandled_Exception in System.Exceptions where it belongs
12609         together with a couple of other debug helpers.
12610         (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
12611         the former Unhandled_Exception.
12612
12613         * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
12614         (Warn_No_Exception_Propagation): New procedure
12615         (Warn_If_No_Propagation): Rewritten for new warning generation
12616         (Expand_Exception_Handlers): New warning generation
12617         (Expand_N_Raise_xxx_Error): Rewritten for new warnings
12618         (Add_Exception_Label): Use Special_Exception_Package_Used for test
12619         instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
12620         (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
12621         even if restriction is set (makes life easier in Check_Returns)
12622         (Expand_Local_Exception_Handlers): Follow renamed entity chain when
12623         checking exception identities.
12624         (Expand_Local_Exception_Handlers): Do not optimize when all others case
12625         (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
12626         block for handler (used by Check_Returns)
12627         (Expand_Local_Exception_Handlers): Local_Raise now takes an address
12628         (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
12629         remove all exception handlers when optimizing local raise statements.
12630         (Find_Local_Handler): Use Get_Renamed_Entity
12631         (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
12632         marked analyzed after expanding exception handlers, do not generate
12633         redundant cleanup actions, because they have been constructed already.
12634
12635 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12636
12637         * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
12638         presence of this categorization pragma is mandated by the language.
12639         (Limited_Controlled): Add missing pragma Preelaborable_Initialization
12640         for this type.
12641
12642 2007-06-06  Vincent Celier  <celier@adacore.com>
12643             Robert Dewar  <dewar@adacore.com>
12644
12645         * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
12646         butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
12647         err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
12648         fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
12649         lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
12650         makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
12651         par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
12652         prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
12653         prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
12654         sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
12655         uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
12656         ali.ads, ali.adb:
12657         Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
12658         package Namet. Make File_Name_Type and Unit_Name_Type types derived from
12659         Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
12660         Use variables of types File_Name_Type and Unit_Name_Type in error
12661         messages.
12662         (Get_Name): Add parameter Ignore_Special, and set it reading file name
12663         (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
12664         here.
12665         Define flags Flag217-Flag230 with associated subprograms
12666         (Flag_Word5): New record type.
12667         (Flag_Word5_Ptr): New access type.
12668         (To_Flag_Word5): New unchecked conversion.
12669         (To_Flag_Word5_Ptr): Likewise.
12670         (Flag216): New function.
12671         (Set_Flag216): New procedure.
12672
12673 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12674
12675         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
12676         instead of 'Size.
12677
12678         * a-stwifi.ads, a-stzfix.ads: Minor reformatting
12679
12680 2007-06-06  Javier Miranda  <miranda@adacore.com>
12681
12682         * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
12683         the package.
12684         (Object_Specific_Data_Array): This is now internal to the package.
12685         (Object_Specific_Data): This is now internal to the package.
12686         (Select_Specific_Data_Element): This is now internal to the package.
12687         (Select_Specific_Data_Array): This is now internal to the package.
12688         (Select_Specific_Data): This is now internal to the package.
12689         (Offset_To_Top_Function_Ptr): This is now public.
12690         (To_Offset_To_Top_Function_Ptr): Removed.
12691         (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
12692          local to subprogram Offset_To_Top.
12693         (Predefined_DT): Removed.
12694         (Typeinfo_Ptr): Removed.
12695         (OSD): This function is now internal to this package.
12696         (SSD): This function is now internal to this package.
12697         (DT): New function that displaces the pointer to the table of primitives
12698          to get access to the enclosing wrapper record.
12699         (IW_Membership): Code cleanup.
12700         (Offset_To_Top): Code cleanup.
12701         (Predefined_DT): Removed.
12702         (Register_Interface_Tag): Removed.
12703         (Set_Interface_Table): Removed.
12704         (Set_Offset_Index): Removed.
12705         (Set_Offset_To_Top): Code cleanup.
12706         (Set_OSD): Removed.
12707         (Set_Signature): Removed.
12708         (Set_SSD): Removed.
12709         (Set_Tagged_Kind): Removed.
12710         (Typeinfo_Ptr): Removed.
12711         (TSD): Removed.
12712         (Displace): Add missing check on null actual.
12713
12714         * exp_disp.ads, exp_disp.adb
12715         (Select_Expansion_Utilities): Removed.
12716         (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
12717         (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
12718         the interface requires a new parameter.
12719         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
12720         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
12721         calls to subprograms Build_T, Build_S, etc. by the corresponding code.
12722         Done to remove package Select_Expansion_Utilities.
12723         (Make_DT): New implementation for statically allocated dispatch tables.
12724         (Make_Secondary_DT): Moved to the scope of Make_DT.
12725         (Register_Primitive): Code cleanup plus incoporate the use of the new
12726         function DT_Address_Attribute.
12727         (Expand_Interface_Thunk): The profile of this subprogram has been
12728         changed to return the Thunk_Id and the corresponding code.
12729         (Fill_DT_Entry): Removed. Its functionality is now provided by
12730         subprogram Register_Primitive.
12731         (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
12732         subprogram Register_Primitive.
12733         (Register_Primitive): New subprogram that incorporates the previous
12734         functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
12735         (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
12736         was only required to call Make_DT_Access_Action, which is now removed.
12737         (Ada_Actions): Removed
12738         (Action_Is_Proc): Removed
12739         (Action_Nb_Arg): Removed
12740         Replace all the calls to Make_DT_Access_Action by direct calls to
12741         Make_Procedure_Call_Statement or Make_Function_Call.
12742         (Set_DTC_Entity_Value): New subprogram.
12743         (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
12744         (Expand_Interface_Thunk): Add missing support for primitives that are
12745         functions with a controlling result (case in which there is no need
12746         to generate the thunk).
12747
12748         * exp_atag.ads, exp_atag.adb
12749         (Build_DT): New subprogram that displaces the pointer to reference the
12750         base of the wrapper record.
12751         (Build_Typeinfo_Offset): Removed.
12752         (RTE_Tag_Node): Removed.
12753         (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
12754         (Build_Get_RC_Offset): Removed.
12755         (Build_Inherit_Predefined_Prims): Removed.
12756         (Build_Inherit_TSD: Removed.
12757         (Build_New_TSD): Removed.
12758         (Build_Set_External_Tag): Removed.
12759         (Build_Set_Predefined_Prim_Op_Address): Add documentation.
12760         (Build_Set_Prim_Op_Address): Add documentation.
12761         (Build_Set_TSD): Removed.
12762
12763         * rtsfind.ads, rtsfind.adb
12764         (Load_Fail): If load fails and we are not in configurable run-time
12765         mode, then raise Unrecoverable_Error.
12766         (Text_IO_Kludge): Generate an error message if a run-time library is
12767         not available in a given run-time (ie. zfp run-time).
12768         (RTE_Record_Component): Add code to check that the component we search
12769         for is not found in two records in the given run-time package.
12770         (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
12771         (RE_DT_Predef_Prims_Offset): New entity
12772         (RE_Static_Offset_To_Top): New entity
12773         (RE_HT_Link): New entity.
12774         (System_Address_Image): Addition of this run-time package.
12775         (RE_Address_Image): New entity.
12776         (RE_Abstract_Interface): Removed.
12777         (RE_Default_Prim_Op_Count): Removed.
12778         (RE_DT_Entry_Size): Removed.
12779         (RE_DT_Min_Prologue_Size): Removed.
12780         (RE_DT_Prologue_Size): Removed.
12781         (RE_Ifaces_Table_Ptr): Removed.
12782         (RE_Interface_Data_Ptr): Removed.
12783         (RE_Type_Specific_Data): Removed.
12784         (RE_Primary_DT): Removed.
12785         (RE_Register_Interface_Tag): Removed.
12786         (RE_Set_Offset_Index): Removed.
12787         (RE_Set_OSD): Removed.
12788         (RE_Set_SSD): Removed.
12789         (RE_Set_Signature): Removed.
12790         (RE_Set_Tagged_Kind): Removed.
12791         (RE_Address_Array): New entity.
12792         (RE_DT): New entity.
12793         (RE_Iface_Tag): New entity.
12794         (RE_Interfaces_Table): New entity.
12795         (RE_No_Dispatch_Table): New entity.
12796         (RE_NDT_Prims_Ptr): New entity.
12797         (RE_NDT_TSD): New entity.
12798         (RE_Num_Prims): New entity.
12799         (RE_Offset_To_Top_Function_Ptr): New entity.
12800         (RE_OSD_Table): New entity.
12801         (RE_OSD_Num_Prims): New entity.
12802         (RE_Predef_Prims): New entity
12803         (RE_Predef_Prims_Table_Ptr): New entity.
12804         (RE_Primary_DT): New entity.
12805         (RE_Signature): New entity.
12806         (RE_SSD): New entity.
12807         (RE_TSD): New entity.
12808         (RE_Type_Specific_Data): New entity.
12809         (RE_Tag_Kind): New entity.
12810
12811 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12812
12813         * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
12814         C imported variable.
12815         (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
12816         on entry.
12817
12818 2007-06-06  Robert Dewar  <dewar@adacore.com>
12819
12820         * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
12821         character
12822
12823 2007-06-06  Vincent Celier  <celier@adacore.com>
12824
12825         * a-tifiio.adb (Put, internal): For negative numbers, check that there
12826         is room for at least one digit and the minus sign.
12827         (Put.Put_Character): Never put a character outside of the range of
12828         string To.
12829
12830 2007-06-06  Olivier Hainque  <hainque@adacore.com>
12831             Eric Botcazou  <ebotcazou@adacore.com>
12832
12833         * utils2.c (build_allocator): Provide the extra arguments to
12834         make_aligning_type for super-aligned objects allocated from the default
12835         pool. Leave enough room for a pointer before the aligning field, and
12836         store the system's allocator return value there.
12837         (build_call_alloc_dealloc): When releasing a super-aligned object,
12838         retrieve the system's allocator return value from where build_allocator
12839         has stored it, just ahead of the adjusted address we are passed.
12840         (build_call_raise): Handle properly the generation of line numbers when
12841         the node is marked No_Location.
12842         (compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
12843         by using DECL_UID on ties.
12844         (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
12845         main variant.
12846         (build_call_raise): Handle converting exception into goto; support new
12847         argument KIND.
12848         (build_component_ref): Add new arg to build_call_raise.
12849
12850 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
12851
12852         * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
12853         "." in the case of nnn.xxx when nnn terminates with an underscore.
12854         Parse the remaining "#" or ":" in the case of nnn#.xxx#
12855
12856 2007-06-06  Robert Dewar  <dewar@adacore.com>
12857
12858         * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
12859
12860 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12861             Vincent Celier  <celier@adacore.com>
12862             Robert Dewar  <dewar@adacore.com>
12863
12864         * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
12865         needed.
12866         (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
12867         ((destructor)) for adafinal, even when switch -a is used.
12868         Do not issue pragma Linker_Destructor for adafinal when switch -a is
12869         used.
12870         (Gen_Object_Files_Options): Add formatting of Linker Options, when
12871         Output_Linker_Option_List is set. Suppress this formatting when
12872         Zero_Formatting is set.
12873         Add case for CLI_Target.
12874         (System_Restrictions_Used): New flag, used to avoid generating with of
12875         System_Restrictions and initialization of the data unless there is
12876         some use of System.Restrictions in the partition.
12877         (Check_System_Restrictions_Used): New procedure
12878
12879         * s-stalib.adb: Remove with of System.Restrictions. No longer needed
12880         since we only with this unit in the binder file if it is used elsewhere
12881         in the partition.
12882
12883 2007-06-06  Vincent Celier  <celier@adacore.com>
12884
12885         * bindusg.adb: Add line for @<response file>
12886         Add lines for new switches -R and -Z
12887
12888         * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
12889         hierarchy in the list of files of the closure when -R is used
12890         (Gnatbind): Accept arguments starting with '@' to indicate response
12891         files and take the arguments from the response files.
12892         If List_Closure is set, display the referenced files
12893
12894 2007-06-06  Javier Miranda  <miranda@adacore.com>
12895             Robert Dewar  <dewar@adacore.com>
12896             Ed Schonberg  <schonberg@adacore.com>
12897
12898         * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
12899         which the address-clause is applied to in-mode actuals (allowed by
12900         13.1(22)).
12901         (Apply_Discriminant_Check): Do not generate a check if the type is
12902         constrained by a current instance.
12903         (Activate_Division_Check): New procedure
12904         (Activate_Overflow_Check): New procedure
12905         (Activate_Range_Check): New procedure
12906         Call these new Activate procedures instead of setting flags directly
12907         (Apply_Array_Size_Check): Removed, no longer needed.
12908         Code clean up: remove obsolete code related to GCC 2.
12909         (Get_E_Length): Protect against bomb in case scope is standard
12910         (Selected_Range_Checks): If the node to be checked is a conversion to
12911         an unconstrained array type, and the expression is a slice, use the
12912         bounds of the slice to construct the required constraint checks.
12913         Improve NOT NULL error messages
12914         (Apply_Constraint_Check): If the context is a null-excluding access
12915         type, diagnose properly the literal null.
12916
12917 2007-06-06  Pascal Obry  <obry@adacore.com>
12918
12919         * clean.adb (Clean_Archive): Use untouched casing for the archive name
12920         and the corresponding .deps file.
12921         (Clean_Interface_Copy_Directory): Use untouched casing for the library
12922         src directory. Minor code-clean-up. Use untouched casing for files
12923         read into the library src dir.
12924         (Clean_Library_Directory): Idem.
12925         (Parse_Cmd_Line): Accept new switch -aP
12926
12927 2007-06-06  Javier Miranda  <miranda@adacore.com>
12928             Ed Schonberg  <schonberg@adacore.com>
12929             Robert Dewar  <dewar@adacore.com>
12930             Eric Botcazou  <ebotcazou@adacore.com>
12931             Arnaud Charlet  <charlet@adacore.com>
12932
12933         * einfo.ads, einfo.adb (Available_View): New synthesized attribute
12934         applicable to types that have the With_Type flag set. Returns the
12935         non-limited view of the type, if available, otherwise the type itself.
12936         For class-wide types, there is no direct link in the tree, so we have
12937         to retrieve the class-wide type of the non-limited view of the Etype.
12938         New attributes Static_Initialization and Static_Elaboration_Desired.
12939         Remove the pragma Thread_Body, and the associated flag
12940         Is_Thread_Body in entities, and all related code.
12941         (Suppress_Value_Tracking_On_Call): New flag
12942         E_Exception has Esize and Alignment fields
12943         (Universal_Aliasing): New function.
12944         (Set_Universal_Aliasing): New procedure.
12945         (Write_Entity_Flags): Deal with Universal_Aliasing flag.
12946         (Check_Nested_Access): New procedure.
12947         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
12948         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
12949         (Related_Interface): New attribute. Present in dispatch table pointer
12950         components of records. Set to point to the entity of the corresponding
12951         interface type.
12952         (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
12953         (Original_Access_Type): Remove, not needed.
12954         (Root_Type): Handle properly subtypes of class-wide-types.
12955         Update comments.
12956
12957         * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
12958         class-wide types visible through limited-with clauses.
12959         (Try_Primitive_Operation): When examining all primitive operations of a
12960         tagged type, do not consider subprograms labeled as hidden unless they
12961         belong to a private generic type with a tagged parent.
12962         (Try_Object_Operation): Extensive rewriting, to handle properly various
12963         overloading cases, when several ancestors may have class-wide operations
12964         that are possible candidates, and when the overloaded functions return
12965         array types and have defaulted parameters so that the call may be
12966         interpreted as an indexing.
12967         (Analyze_Allocator): Remove Mark_Allocator and its invocation.
12968         (Process_Function_Call): use Next, rather than Next_Actual, to analyze
12969         successive actuals before analyzing the call itself.
12970         (Try_Primitive_Operation): A primitive operation is compatible with the
12971         prefix if the prefix has a synchronized type and the type of the formal
12972         is its corresponding record, as can be the case when the primitive
12973         operation is declared outside of the body of the type.
12974         (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
12975         perform homonym traversal, looking for class-wide operation matches
12976         (formerly done in statements of Try_Class_Wide_Operation). Matches on
12977         access parameters are now restricted to anonymous access types.
12978         (Mark_Allocator): An allocator with a discriminant association parent is
12979         a coextension.
12980         (Try_One_Prefix_Interpretation): If the type of the object is
12981         incomplete, as can be happen when it is a limited view obtained through
12982         a limited_with_clause, the selected component is not part of a prefixed
12983         call.
12984         (Complete_Object_Operation): Diagnose properly an object that is not
12985         aliased when the corresponding controlling formal is an access
12986         parameter.
12987         (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
12988         ambiguous calls in prefixed notation, where two primitives differ only
12989         in that the controlling argument of one is an access parameter.
12990
12991         * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
12992         whether a function that returns an unconstrained type can be inlined.
12993         (Process_Formals): Diagnose properly the illegal use of an incomplete
12994         type in the profile of an access_to_subprogram declaration.
12995         (Check_Synchronized_Overriding): Nothing check for concurrent types, the
12996         operations are attached to the corresponding record.
12997         (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
12998         When processing a primitive of a concurrent type which implements an
12999         interface change the type of all controlling formals to that of the
13000         corresponding record type.
13001         (Check_Synchronized_Overriding): Relax the conditional logic when trying
13002         to determine the tagged type to which a primitive belongs.
13003         (Check_Conventions): Capture condition to ignore a primitive operation
13004         (which is shared between the loop in Check_Conventions and the one in
13005         Check_Convention) in a new local function Skip_Check.
13006         (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
13007         confusion with Check_Conventions' own Prim_Op local variable.
13008         (Create_Extra_Formals): Test for a tagged result type rather than a
13009         controlling result when determining whether to add a BIP_Alloc_Form
13010         formal and a BIP_Final_List formal to the function.
13011         (Check_Conformance); For parameters that are anonymous access types,
13012         subtype conformance requires that the not null and the constant
13013         indicators must match
13014         (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
13015         to retrieve the appropriate type when processing a concurrent type
13016         declared within a generic. Minor comment reformatting. Change invocation
13017         of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
13018         mitive.
13019         (Analyze_Subprogram_Body): If the return type of a function is an
13020         anonymous access to the limited view of a class-wide type, and the
13021         non-limited view of the type is available, update the type of the
13022         function so that code can be generated.
13023         (Process_Formals): In case of access-subtype itype whose designated
13024         type is also an itype (situation that happens now with access to
13025         subprograms) we mark the access-type itype with the Has_Delayed_Freeze
13026         attribute to avoid backend problems.
13027         (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
13028         init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
13029         anonymous types' designated types are same before testing
13030         Subtypes_Statically_Match.
13031         (Create_Extra_Formals): Test for a named access parameter that is a
13032         controlling formal as an additional condition for adding an
13033         accessibility level formal. This can occur in the subp type created for
13034         dispatching calls in Expand_Dispatching_Call, and allows calling
13035         Create_Extra_Formals from that procedure rather than special-casing the
13036         extra formals there.
13037         (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
13038         when the function has a controlling result.
13039         (Check_Returns): Add much more knowledge of the optimization of local
13040         raise statements to gotos, to retain proper warnings in this case.
13041         (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
13042         nodes when looking for last statement.
13043
13044         * sem_type.ads, sem_type.adb (Specific_Type): Add support for
13045         class-wide types visible through limited with clauses.
13046         (Add_One_Interp): If the operands are anonymous access types, the
13047         predefined operator on universal_access is immediately visibles
13048         (Find_Unique_Type): Handle anonymous access to subprogram types just as
13049         other anonymous access types.
13050         (Disambiguate): Take into account CIL convention.
13051         (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
13052
13053 2007-06-06  Robert Dewar  <dewar@adacore.com>
13054
13055         * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
13056         sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
13057         elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
13058         Fix lower bound of tables.
13059         Add rep clauses.
13060
13061         * nlists.adb: Ditto.
13062         (Prev_Node, Next_Node): Change index type to Int so that it properly
13063         covers the range First_Node_Id - 1 up.
13064
13065 2007-06-06  Javier Miranda  <miranda@adacore.com>
13066             Ed Schonberg  <schonberg@adacore.com>
13067             Bob Duff  <duff@adacore.com>
13068             Hristian Kirtchev  <kirtchev@adacore.com>
13069
13070         * exp_aggr.ads, exp_aggr.adb:
13071         (Build_Record_Aggr_Code): Add missing initialization of secondary tags
13072         in extension aggregates.
13073         (Flatten): Other conditions being met, an aggregate is static if the
13074         low bound given by component associations is different from the low
13075         bound of the base index type.
13076         (Packed_Array_Aggregate_Handled): If the component type is itself a
13077         packed array or record, the front-end must expand into assignments.
13078         (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
13079         Init_Pr, instead of Ancestor_Is_Expression.
13080         (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
13081         coextension chain root, either generate a list controller or use the
13082         already existing one.
13083         (Static_Array_Aggregate): New procedure to construct a positional
13084         aggregate that can be handled by the backend, when all bounds and
13085         components are compile-time known constants.
13086         (Expand_Record_Aggregate): Force conversion of aggregates of tagged
13087         types covering interface types into assignments.
13088         (Replace_Type): move to Build_Record_Aggr_Code.
13089         (Expand_Record_Aggr_Code): if the target of the aggregate is an
13090         interface type, convert to the definite type of the aggregate itself,
13091         so that needed components are visible.
13092         (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
13093         components and the context is an extended return statement do not
13094         create a transient block for it, to prevent premature finalization
13095         before the return is executed.
13096         (Gen_Assign): Do not generate a call to deep adjust routine if the
13097         component type is itself an array of controlled (sub)-components
13098         initialized with an inner aggregate.
13099         (Component_Check): New name for Static_Check. This name is now more
13100         appropriate, and documentation is added which was missing.
13101         (Component_Check): Add test for bit aligned component value
13102         (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
13103         Tagged_Comps, name is more appropriate given added function below.
13104         (Component_Not_OK_For_Backend): Check for bit aligned component ref.
13105
13106 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
13107             Javier Miranda  <miranda@adacore.com>
13108             Robert Dewar  <dewar@adacore.com>
13109
13110         * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
13111         Terminated: Add unchecked type conversion from System.Address to
13112         System.Tasking.Task_Id when calling the predefined primitive
13113         _disp_get_task_id.
13114         Disable new Ada 05 accessibility check for JVM.NET targets, which
13115         cannot be implemented in a practical way.
13116         (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
13117         the sources always references the tag of the actual object. Therefore,
13118         if 'Tag is applied in the sources to class-wide interface objects we
13119         generate code that displaces "this" to reference the base of the object.
13120         (Expand_N_Attribute_Reference, case Size): Return specified size if
13121         known to front end.
13122         (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
13123         has code that displaces the pointer of the object to manage interface
13124         types. However this code must not be executed when the prefix is a
13125         subprogram. This bug caused the wrong expansion of the internally
13126         generated assignment that fills the dispatch table when the primitive
13127         is a function returning a class-wide interface type.
13128         (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
13129         Set_Attribute_Name for Name_Unaligned_Valid.
13130
13131 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13132             Gary Dismukes  <dismukes@adacore.com>
13133
13134         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
13135         If the initialization is the equivalent aggregate of the initialization
13136         procedure of the type, do not remove it.
13137         (Expand_N_Attribute_Definition_Clause): Exclude access variables
13138         initialized to null from having their expression reset to empty and
13139         note this exception in the comment.
13140
13141 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
13142             Robert Dewar  <dewar@adacore.com>
13143             Ed Schonberg  <schonberg@adacore.com>
13144             Gary Dismukes  <dismukes@adacore.com>
13145
13146         * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
13147         Add "with" and "use" clauses for Sem_Attr.
13148         (Expand_Current_Value): Do not replace occurences of attribute
13149         references where the prefix must be a simple name.
13150
13151         * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
13152         Namet. Add new arrays Attribute_Name_Modifies_Prefix and
13153         Attribute_Requires_Simple_Name_Prefix.
13154         (Name_Modifies_Prefix): Body of new function.
13155         (Requires_Simple_Name_Prefix): Body of new function.
13156         (Resolve_Attribute, case Access): Improve error message for case of
13157         mismatched conventions.
13158         (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
13159         incomplete type.
13160         (Analyze_Attribute, case 'Access): If the type of the prefix is a
13161         constrained subtype for a nominal unconstrained type, use its base type
13162         to check for conformance with the context.
13163         (Resolve_Attribute): Remove test of the access type being associated
13164         with a return statement from condition for performing accessibility
13165         checks on access attributes, since this case is now captured by
13166         Is_Local_Anonymous_Access.
13167         (Analyze_Access_Attribute): Set Address_Taken on entity
13168         (Analyze_Attribute, case Address): Set Address_Taken on entity
13169         (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
13170         validating an access attribute whose prefix is a current instance.
13171         (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
13172         applied to dispatching operations, if freezing is required then we set
13173         the attribute Has_Delayed_Freeze in the prefix's entity.
13174         (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
13175         current scope if access of local subprogram taken
13176         (Analyze_Access_Attribute): Check legality of self-reference even if the
13177         expression comes from source, as when a single component association in
13178         an aggregate has a box association.
13179         (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
13180         the prefix if it is a protected operation and the attribute is
13181         Unrestricted_Access.
13182         (Resolve_Attribute, case 'Access): Set the Etype of the attribute
13183         reference to the base type of the context, to force a constraint check
13184         when the context is an access subtype with an explicit constraint.
13185         (Analyze_Attribute, case 'Class): If the prefix is an interface and the
13186         node is rewritten as an interface conversion. leave unanalyzed after
13187         resolution, to ensure that type checking against the context will take
13188         place.
13189
13190 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13191             Javier Miranda  <miranda@adacore.com>
13192             Robert Dewar  <dewar@adacore.com>
13193
13194         * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
13195         wrapper when the full view of the controlling type of an inherited
13196         function that dispatches on result implements interfaces.
13197         (Expand_N_Object_Declaration): In cases where the type of the
13198         declaration is anonymous access, create finalization list for it.
13199         (Expand_N_Object_Declaration): Generate a persistent_bss directive only
13200         if the object has no explicit initialization, to match description of
13201         functionality of pragam Persistent_BSS.
13202         (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
13203         new function to build static aggregates, to replace initialization call
13204         when static initialization is desired.
13205         (Freeze_Type): Generate a list controller for an access type whenever
13206         its designated type has controlled anonymous access discriminants.
13207         (Build_Equivalent_Aggregate): New procedure to compute a static
13208         aggregate to be used as default initialization for composite types,
13209         instead of a generating a call to the initialization procedure for the
13210         type.
13211         (Build_Initialization_Call): When available, replace a call to the
13212         initialization procedure with a copy of the equivalent static aggregate
13213         for the type.
13214         (Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
13215         declarations for objects of a class-wide interface type, rather than
13216         just identifiers, to prevent visibility problems.
13217         (Expand_N_Object_Declaration): When expanding the declaration for an
13218         object of a class-wide interface type, preserve the homonym chain of
13219         the original entity before exchanging it with that of the generated
13220         renaming declaration.
13221         (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
13222         active, because there is no way to handle the exception.
13223         (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
13224         to do a minimum decoration of the Access_Disp_Table list.
13225         (Expand_Record_Controller): Avoid the addition of the controller between
13226         the component containing the tag of a secondary dispatch table and its
13227         adjacent component that stores the offset to the base of the object.
13228         This latter component is only generated when the parent type has
13229         discriminants ---documented in Add_Interface_Tag_Components).
13230         (Apply_Array_Size_Check): Removed, no longer needed.
13231         (Expand_N_Full_Type_Declaration): If the type has anonymous access
13232         components, create a Master_Entity for it only if it contains tasks.
13233         (Build_Init_Procedure): Suppress the tag assignment compiling under
13234         no run-time mode.
13235         (Freeze_Record_Type): Remove code associated with creation of dispatch
13236         table.
13237         (Init_Secondary_Tags): Update type of actuals when generating calls to
13238         Ada.Tags.Set_Offset_To_Top
13239         (Stream_Operation_OK): Disable use of streams compiling under no
13240         run-time mode
13241         (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
13242         if Has_Init_Expression set.
13243         (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
13244         Register_Primitive, which provides the same functionality.
13245         (Requires_Init_Proc): Return false in case of interface types.
13246         (Add_Secondary_Tables): Use the new attribute Related_Interface to
13247         cleanup the code.
13248         (Predefined_Primitive_Freeze): Do not assume that an internal entity
13249         is always associated with a predefined primitive because the internal
13250         entities associated with interface types are not predefined primitives.
13251         Therefore, the call to Is_Internal is replaced by a call to the
13252         function Is_Predefined_Dispatching_Operation.
13253         (Make_Eq_If): When generating the list of comparisons for the
13254         components of a given variant, omit the controller component that is
13255         present if the variant has controlled components.
13256
13257 2007-06-06  Javier Miranda  <miranda@adacore.com>
13258             Hristian Kirtchev  <kirtchev@adacore.com>
13259             Bob Duff  <duff@adacore.com>
13260
13261         * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
13262         handle the creation of finalization lists and calls for nested
13263         coextensions when the root of the chains is part of a return statement.
13264         (Inside_A_Return_Statement): New function inside Complete_Coextension_
13265         Finalization.
13266         (Expand_Record_Equality): Skip components that are interface types.
13267         (Displace_Allocator_Pointer): Add missing support for interface subtypes
13268         (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
13269         with Rewrite_Coextension. Change the condition for detecting coextension
13270         root nodes.
13271         (Is_Local_Access_Discriminant): Removed.
13272         (Rewrite_Coextension): New routine which rewrites a static coextension
13273         as a temporary and uses its unrestricted access in the construction of
13274         the outer object.
13275         (Complete_Coextension_Finalization): New routine. Generate finalization
13276         attachment calls to all delayed coextensions.
13277         (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
13278         the allocator is not a coextension itself and has delayed coextensions.
13279         If the current allocator is controlled, but also a coextension, delay
13280         the generation of the finalization attachment call.
13281         Rename local variable "Node" to "Nod" in order to avoid confusion with
13282         "Elists.Node".
13283         (Expand_Allocator_Expression): Call Adjust for initialized allocators of
13284         limited types that are not inherently limited. Such an allocator is
13285         illegal, but is generated by the expander for a return statement, to
13286         copy the result onto the secondary stack. This is the only case where a
13287         limited object can be copied. Generate code to displace the pointer
13288         to the object if the qualified expression is a class-wide interface
13289         object. Such displacement was missing and hence the copy of the object
13290         was wrong.
13291         (Apply_Accessibility_Check): Handle allocated objects initialized in
13292         place.
13293         (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
13294         and Expand_Allocator_Expression. Allocating class-wide interface objects
13295         this routine displaces the pointer to the allocated object to reference
13296         the component referencing the corresponding secondary dispatch table.
13297         Expand_Allocator_Expression): Add missing support to allocate class-wide
13298         interface objects initialized with a qualified expression.
13299         (Get_Allocator_Final_List): Test for an anonymous access type that is a
13300         function result type, and use the finalization list associated with the
13301         function scope in that case (such an anonymous type should not be
13302         treated like an access parameter's type).
13303
13304 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13305             Gary Dismukes  <dismukes@adacore.com>
13306             Javier Miranda  <miranda@adacore.com>
13307
13308         * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
13309         controlled type, use Make_Handler_For_Ctrl_Operation to construct the
13310         required exception handler.
13311         (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
13312         properly the case of a function whose return type is a limited
13313         class-wide interface type. Modify the code of the accessibility
13314         check to handle class-wide interface objects. In this case we need to
13315         displace "this" to reference the primary dispatch table to get access
13316         to the TSD of the object (to evaluate its accessibility level).
13317         (Expand_N_Extended_Return_Statement): Test for a tagged result type
13318         rather than a controlling result as one of the conditions for
13319         generating tests of the implicit BIP_Alloc_Form formal. The
13320         initialization assignment is also handled according to whether the
13321         result is tagged instead of controlling.
13322         In the case where the init assignment is inserted in the "then" part of
13323         the allocation conditional, rewrite the target to be a dereference of
13324         the implicit BIP_Object_Access formal.
13325         If the returned value is unconstrained and created on the secondary
13326         stack, mark the enclosing block and function so that the secondary
13327         stack is not reclaimed on return.
13328         Treat returns from functions with controlling results similarly to
13329         returns from functions with unconstrained result subtypes.
13330         If the object returned is unconstrained, and an allocator must be
13331         created for it, analyze the allocator once the block for the extended
13332         return is installed, to ensure that finalizable components
13333         of the expression use the proper finalization list. Guard the call to
13334         Move_Final_List with a check that there is something to finalize.
13335         (Make_Tag_Ctrl_Assignment): Use "old" handling
13336         of controlled type assignment for virtual machines, since new code uses
13337         unsupported features (such as direct access to bytes in memory).
13338
13339 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
13340             Ed Schonberg  <schonberg@adacore.com>
13341
13342         * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
13343         accessibility actual, check for the case of an aliased object that has
13344         been rewritten as an Access attribute, and assign Prev to Prev_Orig so
13345         we fall into processing for the attribute rather than the name of the
13346         object.
13347         (Expand_Inline_Call): If an actual is a literal, and the corresponding
13348         formal has its address taken in the body, create a temporary to capture
13349         value.  If the return type is a limited interface, do not treat the
13350         return value as Controlled.
13351         (Is_In_Place_Function):  If the return type is a limited interface,
13352         treat as returning in place. The actual returned object may not always
13353         be limited, but the caller has to assume that it is returned in place.
13354         (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
13355         context of an allocator, use the correct finalization chain (that is,
13356         the chain belonging to the access type, rather than the chain belonging
13357         to the current scope).
13358         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
13359         result type rather than a controlling result as a precondition for
13360         adding an allocation form actual to a build-in-place call.
13361         (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
13362         (Freeze_Subprogram): Code cleanup. Remove all the code that register the
13363         primitive in the dispatch tables. This work is now done by Make_DT when
13364         the type is frozen.
13365         (Register_Predefined_DT_Entry): Removed.
13366         (Add_Return): If end label is not present, use sloc of last statement
13367         for generated return statement in procedure, for better gdb behavior
13368         on expanded code.
13369         (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
13370         object address nodes to ensure proper processing by routines like
13371         Insert_After*.
13372         (Expand_Call): Fix generation of validity check for parameter
13373         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
13374         the allocation form parameter if the result subtype is constrained,
13375         except when the function has a controlling result.
13376         (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
13377         rather than Is_Controlled and Has_Controlled_Component, since we want to
13378         include class-wide result types in this treatment. Also test for a
13379         controlling result, since that also requires passing a finalization
13380         list.
13381         (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
13382         even when the result subtype is constrained, to handle calls involving
13383         controlling results.
13384         (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
13385         is now called even when the result subtype is constrained, to handle
13386         calls involving controlling results.
13387         (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
13388         on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
13389         now performs the test).
13390         (Make_Build_In_Place_Call_In_Object_Declaration):
13391         Add_Alloc_Form_Actual_* is now called even when the result subtype is
13392         constrained, to handle calls involving controlling results.
13393         (Add_Return): Accomodate rewritten pattern from local raise to goto
13394         transformation, so that we still recognize an transfer statement
13395         and do the right thing here in that case.
13396         (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
13397         and end of subprogram code.
13398         (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
13399         support for primitives that are functions (without formals) with a
13400         controlling result.
13401         (Inherited_From_Formal): If the actual subtype has not generic parent
13402         type, it is not an actual for a formal derived type, and there is no
13403         operation to inherit from the formal.
13404
13405 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13406             Thomas Quinot  <quinot@adacore.com>
13407
13408         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
13409         inserted cleanup code appropriately for GDB use.
13410         (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
13411         exception handler for Deep_Adjust or Deep_Finalize.
13412         (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
13413         Raise_From_Controlled_Operation is available, use a call to that
13414         subprogram instead of a plain "raise Program_Error" node to raise
13415         Program_Error if an exception is propagated from an Adjust or Finalize
13416         operation.
13417         (Insert_Actions_In_Scope_Around): If the statement to be wrapped
13418         appears in the optional statement list of a triggering alternative, the
13419         scope actions can be inserted directly there, and not in the list that
13420         includes the asynchronous select itself.
13421
13422 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13423             Robert Dewar  <dewar@adacore.com>
13424             Hristian Kirtchev  <kirtchev@adacore.com>
13425
13426         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
13427         generated exception handler appropriately when debugging generated code.
13428         Deal properly with No_Exception_Propagation restriction mode.
13429         (Expand_N_Abort_Statement): Add an unchecked type conversion from
13430         System.Address to System.Tasking.Task_Id when processing the result of
13431         the predefined primitive _disp_get_task_id.
13432         (Expand_N_Asynchronous_Select): Clarify comment.
13433         (Expand_N_Protected_Type_Declaration): Minor code cleanup.
13434         (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
13435         (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
13436         (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
13437         privals and for generated call to Complete_Entry_Body, for better gdb
13438         behavior.
13439         (Copy_Result_Type): Utility to construct a parameter and result profile
13440         for protected functions whose return type is an anonymous access to
13441         subprogram.
13442         (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
13443         call the above.
13444         (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
13445         point when the local-raise-to-goto transformation has taken place.
13446
13447 2007-06-06  Javier Miranda  <miranda@adacore.com>
13448             Nicolas Setton  <setton@adacore.com>
13449
13450         * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
13451         functionality when the backend is generating code.
13452         Otherwise any serious error
13453         reported by the backend calling the frontend routine Error_Msg
13454         changes the Compilation_Mode to Check_Semantics, disables the
13455         functionality of this routine and causes the generation of
13456         spureous additional errors.
13457
13458         * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
13459         debugging information now generated by the compiler for fat-pointer
13460         types.
13461         Document the contents of DW_AT_producer in the GNAT Vendor extensions to
13462         DWARF2/3.
13463         Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
13464
13465 2007-06-06  Thomas Quinot  <quinot@adacore.com>
13466
13467         * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
13468         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
13469         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
13470         For a remote call to a function with a classwide return type, apply an
13471         E.4(18) check to the returned value.
13472         (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
13473         stream attributes of the designated type of an RACW, as they are not
13474         dispatching primitive operations.
13475
13476 2007-06-06  Geert Bosch  <bosch@adacore.com>
13477
13478         * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
13479         negative literal
13480         (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
13481         positive
13482         (Do_Divide_Fixed_Universal): Handle case of negative Frac.
13483         (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
13484         positive
13485         (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
13486
13487 2007-06-06  Javier Miranda  <miranda@adacore.com>
13488
13489         * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
13490         attribute compiling package Ada.Tags under No_Run_Time_Mode.
13491
13492 2007-06-06  Javier Miranda  <miranda@adacore.com>
13493
13494         * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
13495         deallocation of class-wide interface objects.
13496         (Expand_Dispatching_Constructor_Call): Take into account that if the
13497         result of the dispatching constructor is an interface type, the
13498         function returns a class-wide interface type; otherwise the returned
13499         object would be actual. The frontend previously accepted returning
13500         interface types because Expand_Interface_Actuals silently performed
13501         the management of the returned type "as if" it were a class-wide
13502         interface type.
13503         (Expand_Dispatching_Constructor_Call): Replace call to
13504         Make_DT_Access_Action by direct call to Make_Function_Call.
13505
13506 2007-06-06  Robert Dewar  <dewar@adacore.com>
13507             Ed Schonberg  <schonberg@adacore.com>
13508
13509         * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
13510         compute masking constant, since we now set Esize properly to the
13511         underlying size.
13512         (Create_Packed_Array_Type): Set proper Esize value adjusted as required
13513         to match the alignment.
13514         (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
13515         packed arrays of 8 bits or less.
13516
13517         * freeze.adb (Freeze_Entity): When freezing the formals of a
13518         subprogram, freeze the designated type of a parameter of an access type
13519         only if it is an access parameter.
13520         Increase size of C convention enumeration object
13521         (Freeze_Entity, array type case): Make sure Esize value is properly
13522         adjusted for the alignment if it is known.
13523         (Freeze_Entity, array type case): When checking bit packed arrays for
13524         the size being incorrect, check RM_Size, not Esize.
13525         (Freeze_Record_Type): Check for bad discriminated record convention
13526         (In_Exp_Body): Return true if the body is generated for a subprogram
13527         renaming, either an attribute renaming or a renaming as body.
13528         (Check_Itype): If the designated type of an anonymous access component
13529         is a non-protected subprogram type, indicate that it is frozen, to
13530         prevent out-of-scope freeze node at some subsequent call.
13531         (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
13532         only if the subprogram is neither imported nor exported, as well as the
13533         NCA descriptor class if the subprogram is exported.
13534
13535 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13536             Arnaud Charlet  <charlet@adacore.com>
13537             Robert Dewar  <dewar@adacore.com>
13538             Gary Dismukes  <dismukes@adacore.com>
13539
13540         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
13541         default initialization on an imported object, when there is no
13542         initialization call generated for it.
13543         (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
13544         restriction
13545
13546         * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
13547         Static_Elaboration_Desired.
13548         Remove pragma Thread_Body.
13549         Implement a new pragma No_Body
13550         Removes the Explicit_Overriding pragma
13551         Remove Optional_Overriding pragma
13552         (Prag): Deal with Universal_Aliasing.
13553         (Name_CIL, Name_CIL_Constructor, Convention_CIL,
13554         Pragma_CIL_Constructor): New names.
13555
13556         * sem_cat.adb (Validate_Object_Declaration): An initialization that
13557         uses the equivalent aggregate of a type must be treated as an implicit
13558         initialization.
13559         (Get_Categorization): Check a unit for pragma Preelaborate only if it
13560         has none of the other categories.
13561         (Process_Import_Or_Interface_Pragma): Report an error for an attempt
13562         to apply Import to an object renaming declaration.
13563
13564         * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
13565         from a C++ class should be declared as limited and that it will be
13566         considererd limited.
13567         (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
13568         should be declared as limited and that it will be considererd limited.
13569         (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
13570         (Analyze_Pragma, case Export): Diagnose export of enumeration literal
13571         (Analyze_Pragma): Deal with Universal_Aliasing.
13572         (Sig_Flags): Likewise.
13573         (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
13574         (Overflow_Checks_Unsuppressed): New flag.
13575         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
13576         (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
13577         case of JVM or .NET targets, and compiling user code.
13578         Add debugging convenience routine rv
13579
13580 2007-06-06  Robert Dewar  <dewar@adacore.com>
13581
13582         * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
13583         are interface type.
13584         (Build_Elementary_Input_Call): For floating-point use right type in the
13585         absence of strange size or stream size clauses.
13586         (Build_Elementary_Write_Call): Same fix
13587         (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
13588         set to value that does not match base type size.
13589
13590 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13591
13592         * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
13593         object of a limited type can be initialized with a call to a function
13594         that returns in place. If the limited type has unknown discriminants,
13595         and the underlying type is a constrained composite type, build an actual
13596         subtype from the function call, as is done for private types.
13597         (Side_Effect_Free): An expression that is the renaming of an object or
13598         whose prefix is the renaming of a object, is not side-effect free
13599         because it may be assigned through the renaming and its value must be
13600         captured in a temporary.
13601         (Has_Controlled_Coextensions): New routine.
13602         (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
13603         as is done for other limited types.
13604         (Non_Limited_Designated_Type): new predicate.
13605         (Make_CW_Equivalent_Type): Modified to handle class-wide interface
13606         objects.
13607         Remove all handling of with_type clauses.
13608
13609         * par-ch10.adb: Remove all handling of with_type clauses.
13610
13611         * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
13612         checksum if the main source could not be parsed.
13613         (Loat_Unit): When processing a child unit, determine properly whether
13614         the parent unit is a renaming when the parent is itself a child unit.
13615         Remove handling of with_type clauses.
13616
13617         * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
13618         (Set_Is_Static_Coextension): New procedure.
13619         (Has_Local_Raise): New function
13620         (Set_Has_Local_Raise): New procedure
13621         (Renaming_Exception): New field
13622         (Has_Init_Expression): New flag
13623         (Delay_Finalize_Attach): Remove because flag is obsolete.
13624         (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
13625         Remove all handling of with_type clauses.
13626         (Exception_Junk): Can now be set in N_Block_Statement
13627
13628 2007-06-06  Vincent Celier  <celier@adacore.com>
13629             Robert Dewar  <dewar@adacore.com>
13630
13631         * frontend.adb (Frontend): Return immediately if the main source could
13632         not be parsed, because of preprocessing errors.
13633
13634         * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
13635         (Gnat1drv): Exit with errors if the main source could not be parsed,
13636         because of preprocessing errors.
13637         (Check_Rep_Info): New procedure
13638
13639 2007-06-06  Robert Dewar  <dewar@adacore.com>
13640
13641         * g-hesorg.ads, g-heasor.ads,
13642         g-busorg.ads, g-bubsor.ads: Update documentation
13643         GNAT.Heap/Bubble_Sort_G is now pure
13644
13645 2007-06-06  Robert Dewar  <dewar@adacore.com>
13646
13647         * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
13648
13649 2007-06-06  Robert Dewar  <dewar@adacore.com>
13650             Ed Schonberg  <schonberg@adacore.com>
13651
13652         * g-comlin.ads, g-comlin.adb:
13653         Add new warning for renaming of function return objects
13654
13655         * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
13656         (Tree_Read): Use size of object instead of type'object_size, since the
13657         latter is incorrect for packed array types.
13658         (Tree_Write): Same fix
13659
13660         * opt.ads: Add new warning for renaming of function return objects
13661         (Generating_Code): New boolean variable used to indicate that the
13662         frontend as finished its work and has called the backend to process
13663         the tree and generate the object file.
13664         (GCC_Version): Is now private
13665         (Static_Dispatch_Tables): New constant declaration.
13666         (Overflow_Checks_Unsuppressed): New flag.
13667         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
13668         (List_Closure): New flag for gnatbind (-R)
13669         Zero_Formatting: New flag for gnatbind (-Z)
13670         (Special_Exception_Package_Used): New flag.
13671         (Warn_On_Unrepped_Components): New flag.
13672
13673         * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
13674         unit is a compilation unit, rather than relying on its scope, so that
13675         Standard can be renamed.
13676         (Analyze_Object_Renaming): Add new warning for renaming of function
13677         return objects.
13678         Also reject attempt to rename function return object in Ada 83 mode.
13679         (Attribute_Renaming): In case of tagged types, add the body of the
13680         generated function to the freezing actions of the type.
13681         (Find_Type): A protected type is visible right after the reserved word
13682         "is" is encountered in its type declaration. Set the entity and type
13683         rather than emitting an error message.
13684         (New_Scope): Properly propagate Discard_Names to inner scopes
13685         (Check_Nested_Access): New procedure.
13686         (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
13687         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
13688
13689         * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
13690         Add new warning for renaming of function return objects
13691         (Check_References): Suppress warnings for objects whose type or
13692         base type has Warnings suppressed.
13693         (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
13694         (Set_Warning_Switch): Include new -gnatwc in -gnatwa
13695
13696 2007-06-06  Vincent Celier  <celier@adacore.com>
13697             Emmanuel Briot  <briot@adacore.com>
13698             Olivier Hainque  <hainque@adacore.com>
13699
13700         * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
13701         absolute value of Header.Block_Size when displaying the freed physical
13702         memory in traces.
13703         (Allocate): Compute Storage_Address using Integer_Address, not
13704         Storage_Offset, because the range of Storage_Offset may not be large
13705         enough.
13706         (Configure): New parameter Low_Level_Traces
13707         (Allocate, Deallocation, Free_Physically): Added low-level traces
13708         (Configure): new parameter Errors_To_Stdout.
13709         (Output_File): new subprogram
13710         (Deallocate, Dereference): Send error messages to the proper stream
13711         (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
13712         documented. Previous code would send it to the current output file
13713         defined in GNAT.IO, which might not be stdout
13714         (Is_Valid): Adjust comment to mention that a positive reply means that
13715         Header_Of may be used to retrieve the allocation header associated with
13716         the subprogram Storage address argument. Return False early if this
13717         address argument is misaligned.
13718
13719 2007-06-06  Vincent Celier  <celier@adacore.com>
13720
13721         * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
13722         switch -P
13723         (ASIS_Main): New global variable
13724         (Get_Closure): New procedure
13725         (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
13726         check, metric or pretty. Call Get_Closure in this case.
13727         (Check_Files): For GNAT LIST, check all sources of all projects when
13728         All_Projects is True.
13729         (GNATCmd): Accept -U for GNAT LIST
13730
13731 2007-06-06  Vincent Celier  <celier@adacore.com>
13732
13733         * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
13734         has been specified
13735         Correct error message when invocation of the linker fails
13736         Add explicit size clause for the C imported variables
13737         Object_List_File_Supported and Using_GNU_Linker to emphasize that
13738         we expect char size.
13739         Read target parameters earlier, since this is needed to set
13740         Target_VM properly. Also do not use -static/shared-libgcc for non GCC
13741         targets.
13742
13743 2007-06-06  Vincent Celier  <celier@adacore.com>
13744
13745         * gnatls.adb:
13746         Add 3 spaces before the default project directory when displaying
13747         the project search path.
13748         Add new command line switch '-l' to display license information.
13749
13750 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
13751
13752         * gmem.c: Add support for timestamps on memory operations.
13753
13754         * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
13755         operations (not used currently, just foundation for future
13756         enhancements). Add possibility to perform full dump of gmem.out file.
13757         (Print_Back_Traces): Declare accesses to root arrays constants since
13758         they aren't modified.
13759         (Print_Back_Traces): allocate root arrays on the heap rather than stack.
13760
13761 2007-06-06  Vincent Celier  <celier@adacore.com>
13762
13763         * gnatsym.adb: Update Copyright notice
13764         (Parse_Cmd_Line): Accept new switch -D
13765         (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
13766          file.
13767
13768         * prj.ads (Policy): New policy Direct
13769         (Yes_No_Unknown): New enumeration type
13770         (Project_Data): New component Libgnarl_Needed
13771
13772         * prj-nmsc.adb (Check_For_Source): When recording a source file make
13773         use the untouched pathname casing.
13774         (Get_Directories): Ensure that the Display_Exec_Directory is using the
13775         proper casing on non case-sensitive platforms like Windows.
13776         (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
13777         on all platforms, as it is not possible to know which one is allowed
13778         before processing the project files.
13779         (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
13780         specified when symbol policy is Direct. Check that when there is a
13781         symbol file defined (either by default or with attribute
13782         Library_Symbol_File) it is not the same as the reference symbol file.
13783         (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
13784         (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
13785         extending projects.
13786         (Record_Ada_Source): Record a source that has been locally removed in an
13787         imported project.
13788
13789         * symbols.ads (Policy): New policy Direct
13790
13791         * symbols-vms.adb (Initialize): Take new policy Direct in case
13792         statement
13793
13794 2007-06-06  Vincent Celier  <celier@adacore.com>
13795
13796         * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
13797         Correct obvious bug (return Dir; instead of return Directory;).
13798         (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
13799
13800 2007-06-06  Thomas Quinot  <quinot@adacore.com>
13801
13802         * g-pehage.adb (Produce): Open output files in Binary mode, so that
13803         they have UNIX line endings (LF only) even on Windows, and thus pass
13804         all GNAT style checks.
13805
13806 2007-06-06  Emmanuel Briot  <briot@adacore.com>
13807
13808         * g-regpat.adb (Quote): Fix improper quoting of '.'
13809
13810 2007-06-06  Thomas Quinot  <quinot@adacore.com>
13811
13812         * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
13813         default, set False on a per-runtime basis.
13814         (Need_Netdb_Buffer): New constant.
13815
13816         * g-socket.ads, g-socket.adb: Import new package
13817         GNAT.Sockets.Thin.Task_Safe_NetDB.
13818         (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
13819         binding to obtain proper message.
13820         (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
13821         Replace various occurrences of Arry (Arry'First)'Address with the
13822         equivalent Arry'Address (GNAT always follows implementation advice from
13823         13.3(14)).
13824         (Get_Host_By_Address, Get_Host_By_Name,
13825         Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
13826         instead, rely on platform-specific task safe netdb operations provided
13827         by g-socthi.
13828
13829         * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
13830         parameter Process_Blocking_IO.
13831         (Host_Error_Messages): Add stub body.
13832         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
13833         (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
13834         Safe_Getservbyport): Move functions into new child package
13835         Task_Safe_NetDB.
13836         (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
13837         Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
13838         (In_Addr): Add alignment clause.
13839
13840 2007-06-06  Robert Dewar  <dewar@adacore.com>
13841
13842         * g-trasym.ads, g-traceb.ads: Update list of supported targets
13843         Add note about symbolic traceback
13844
13845 2007-06-06  Pascal Obry  <obry@adacore.com>
13846
13847         * hostparm.ads (Normalized_CWD): Use the host directory separator
13848         instead of the hardcoded forward slash which is not the proper
13849         character on Windows for example.
13850         (Java_VM): Removed.
13851
13852 2007-06-06  Vincent Celier  <celier@adacore.com>
13853             Arnaud Charlet  <charlet@adacore.com>
13854
13855         * a-clrefi.adb, a-clrefi.ads: New files
13856
13857         * impunit.adb: Add s-os_lib in the list of user visible units.
13858         (Non_Imp_File_Names_95): Add a-clrefi to this list
13859         Remove obsolete run-time entries.
13860         (Non_Imp_File_Names_05): Add Ada 2005 entries for:
13861          "a-exetim" -- Ada.Execution_Time
13862          "a-extiti" -- Ada.Execution_Time.Timers
13863
13864         * mlib-prj.ads, mlib-prj.adb
13865         (Build_Library): Use untouched object dir and library dir. At the
13866         same time makes sure that the checks are done using the canonical
13867         form. Removes hard-coded directory separator and use the proper host
13868         one instead.
13869         (Process_Project): Do not look in object directory to check if libgnarl
13870         is needed for a library, if there is no object directory.
13871         (Build_Library): Scan the ALI files to decide if libgnarl is needed for
13872         linking.
13873         (Build_Library): When invoking gnatbind, use a response file if the
13874         total size of the arguments is too large.
13875
13876         * Makefile.rtl: (g-sttsne): New object file.
13877         Add entry for a-clrefi, s-utf_32, System.Exceptions
13878
13879         * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
13880         (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
13881         (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
13882         Change g-string to s-string, g-os_lib to s-os_lib
13883         Change all g-utf_32 references to s-utf_32
13884
13885 2007-06-06  Tristan Gingold  <gingold@adacore.com>
13886             Olivier Hainque  <hainque@adacore.com>
13887
13888         * init.c: Do not adjust IP of an imported VMS exception of ia64.
13889         LIB$STOP is called to raise an exception and the IP of the exception
13890         is the instruction right after the call.
13891         (__gnat_adjust_context_for_raise, AIX): Implement.
13892         (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
13893          adjust_context_for_raise before Raise_From_Signal_Hanler.
13894         (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
13895         siginfo is passed to the handler, necessary to let the zcx propagation
13896         engine unwind past it.
13897
13898 2007-06-06  Olivier Hainque  <hainque@adacore.com>
13899
13900         * initialize.c (__gnat_initialize for vxworks):  Update documentation
13901         on the ZCX support, using different sets of crtstuff objects than with
13902         GCC 3.4.
13903
13904 2007-06-06  Robert Dewar  <dewar@adacore.com>
13905
13906         * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
13907         spec from body
13908         (Layout_Type): Fix recomputation of size from alignment.
13909
13910 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13911             Javier Miranda  <miranda@adacore.com>
13912
13913         * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
13914         association in an instance.
13915         (Copy_Generic_Node): If the node is a string literal, no need to copy
13916         its descendants.
13917         (Is_Generic_Formal): For a formal subprogram, the declaration is the
13918         grandparent of the entity.
13919         (Analyze_Formal_Interface_Type): Transform into a full type declaration,
13920         to simplify handling of formal interfaces that derive from other formal
13921         interfaces.
13922         (Instantiate_Subprogram_Body): The defining unit name of the body of
13923         the instance should be a defining identifier.
13924         (Install_Formal_Packages): make global to the package, for use in
13925         instantiations of child units.
13926         (Analyze_Package_Instantiation): Do not attempt to set information on an
13927         enclosing master of an entry when expansion is disabled.
13928         (Instantiate_Type): If the actual is a tagged synchronized type and the
13929         generic ancestor is an interface, create a generic actual for the
13930         corresponding record.
13931         (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
13932         declaration, to ensure that the interface list is processed correctly.
13933         (Inline_Instance_Body): If enclosing scope is an instance body, remove
13934         its entities from visibiility as well.
13935         (Pre_Analyze_Actuals): if the actual is an allocator with  constraints
13936         given with a named association, analyze the expression only, not the
13937         discriminant association itself.
13938         (Reset_Entity): If the analysis of a selected component is transformed
13939         into an expanded name in the prefix of a call with parameters, do not
13940         transform the original node into an expanded name, to prevent visibility
13941         errors in the case of nested generics.
13942         (Check_Private_View): For an array type, check whether the index types
13943         may need exchanging.
13944
13945 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
13946             Vincent Celier  <celier@adacore.com>
13947
13948         * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
13949         since both are separated.
13950         Add support for imported CIL packages.
13951         Add further special handling of "value_type" for CIL.
13952         Add special handling of pragma Import for CIL.
13953
13954         * make.ads, make.adb: When switch -eS is used, direct all outputs to
13955         standard output instead of standard error, except errors.
13956         (Absolute_Path): Use untouched casing for the parent directory.
13957         (Add_Library_Search_Dir): Use the untouched directory name.
13958         (Add_Source_Search_Dir): Idem.
13959         (Change_To_Object_Directory): Update output to use proper casing.
13960         (Create_Binder_Mapping_File): Use the untouched filename to set
13961         ALI_Name.
13962         (Gnatmake): Use untouched library and executable directory names.
13963         (Insert_Project_Sources): Use untouched filename for spec and body.
13964         (Is_In_Object_Directory): Use untouched object directory.
13965         (Mark_Directory): Idem.
13966         (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
13967         contains the non-canonical filename in all cases.
13968         (Change_To_Object_Directory): In verbose mode, display the name of the
13969         object directory we're changing to.
13970         (Compile_Sources): Make sure, when a project file is used, to compile
13971         the body of the unit, when there is one, even when only the spec is
13972         recorded in an ALI file.
13973         (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
13974         spec to the body.
13975         (Report_Compilation_Failed): New procedure
13976         (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
13977         procedures moved from the spec to the body.
13978         (Extract_Failure): Removed, not used
13979         Replace explicit raises of exception Bind_Failed and Link_Failed with
13980         calls to Make_Failed with the proper message.
13981         Replace explicit raises of exception Compilation_Failed with calls to
13982         procedure Report_Compilation_Failed.
13983         (Initialize): Create mapping files unconditionally when using project
13984         files.
13985
13986         * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
13987         Pragma_CIL_Constructor): New names.
13988
13989         * targparm.ads, targparm.adb
13990         (Compiler_System_Version): Removed, no longer used.
13991         (Get_Target_Parameters): Relax checks on system.ads validity. Add
13992         handling of two new system flags: JVM and CLI.
13993
13994 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
13995             Arnaud Charlet  <charlet@adacore.com>
13996
13997         * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
13998         time, use the default s-interr body that provides interrupt support
13999         based on signals.
14000         (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
14001         a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
14002         g-soccon.ads, and s-taprop.adb for the marte run time.
14003         (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
14004         timers are supported on marte.
14005         (EH_MECHANISM for marte): Do not use ZCX.
14006         (THREADSLIB for marte): Use -lmarte.
14007         Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
14008         Add mlib-tgt-specific.o to gnatmake objects
14009         mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
14010         longer of MLib.Tgt.
14011         (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
14012         6, either kernel or rtp, use a specialized version of s-osinte.ads.
14013
14014 2007-06-06  Pascal Obry  <obry@adacore.com>
14015
14016         * mkdir.c (__gnat_mkdir): Add support for UTF-8.
14017
14018 2007-06-06  Vincent Celier  <celier@adacore.com>
14019
14020         * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
14021         separator, use instead the proper host directory separator.
14022         (Copy_ALI_Files): Make sure that an already existing ALI file in the
14023         ALI copy dir is writable, before doing the copy.
14024
14025         * mlib-utl.ads, mlib-utl.adb:
14026         (Gcc): If length of command line is too long, put the list of object
14027         files in a response file, if this is supported by the platform.
14028         (Ar): If invocation of the archive builder is allowed to be done in
14029         chunks and building it in one shot would go above an OS dependent
14030         limit on the number of characters on the command line, build the archive
14031         in chunks.
14032
14033 2007-06-06  Vincent Celier  <celier@adacore.com>
14034
14035         * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
14036         of specified object file is not equal to base name of source.
14037
14038 2007-06-06  Javier Miranda  <miranda@adacore.com>
14039             Hristian Kirtchev  <kirtchev@adacore.com>
14040             Ed Schonberg  <schonberg@adacore.com>
14041
14042         * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
14043         the full type declaration.
14044         (Analyze_Component_Declaration): Add local variable E to capture the
14045         initialization expression of the declaration. Replace the occurences of
14046         Expression (N) with E.
14047         (OK_For_Limited_Init_In_05): Allow initialization of class-wide
14048         limited interface object with a function call.
14049         (Array_Type_Declaration): If the declaration lacks subtype marks for
14050         indices, create a simple index list to prevent cascaded errors.
14051         (Is_Null_Extension): Ignore internal components created for secondary
14052         tags when checking whether a record extension is a null extension.
14053         (Check_Abstract_Interfaces): Add missing support for interface subtypes
14054         and generic formals.
14055         (Derived_Type_Declaration): Add missing support for interface subtypes
14056         and generic formals.
14057         (Analyze_Object_Declaration): If an initialization expression is
14058         present, traverse its subtree and mark all allocators as static
14059         coextensions.
14060         (Add_Interface_Tag_Component): When looking for components that may be
14061         secondary tags, ignore pragmas that can appear within a record
14062         declaration.
14063         (Check_Abstract_Overriding): an inherited function that dispatches on
14064         result does not need to be overriden if the controlling type is a null
14065         extension.
14066         (Mentions_T): Handle properly a 'class attribute in an anonymous access
14067         component declaration, when the prefix is an expanded name.
14068         (Inherit_Component): If the derivation is for a private extension,
14069         inherited components remain visible and their ekind should not be set
14070         to Void.
14071         (Find_Type_Of_Object): In the case of an access definition, always set
14072         Is_Local_Anonymous_Access. We were previously not marking the anonymous
14073         access type of a return object as a local anonymous type.
14074         (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
14075         range with character literal bounds.
14076         (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
14077         (Access_Subprogram_Declaration): Indicate that the type declaration
14078         depends on an incomplete type only if the incomplete type is declared
14079         in an open scope.
14080         (Analyze_Subtype_Declaration): Handle properly subtypes of
14081         synchronized types that are tagged, and that may appear as generic
14082         actuals.
14083         (Access_Subprogram_Declaration): An anonymous access to subprogram can
14084         appear as an access discriminant in a private type declaration.
14085         (Add_Interface_Tag_Components): Complete decoration of the component
14086         containing the tag of a secondary dispatch table and the component
14087         containing the offset to the base of the object (this latter component
14088         is only generated when the parent type has discriminants --as documented
14089         in this routine).
14090         (Inherit_Components): Use the new decoration of the tag components to
14091         improve the condition that avoids inheriting the components associated
14092         with secondary tags of the parent.
14093         (Build_Discriminanted_Subtype): Indicate to the backend that the
14094         size of record types associated with dispatch tables is known at
14095         compile time.
14096         (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
14097         (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
14098         to include task, protected, and synchronized interfaces as limited
14099         interfaces.
14100         (Process_Discriminants): Remove the setting of
14101         Is_Local_Anonymous_Access on the type of (anonymous) access
14102         discriminants of nonlimited types.
14103         (Analyze_Interface_Type_Declaration): Complete the decoration of the
14104         class-wide entity it is is already present. This situation occurs if
14105         the limited-view has been previously built.
14106         (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
14107         field.
14108         (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
14109         Related_Interface.
14110
14111 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14112
14113         * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
14114         of the type that specify the position of interface tags when the type
14115         inherits discriminated array components from the parent type.
14116         If a component is initialized with a box, check for the presence of a
14117         default expression in its declaration before using its default
14118         initialization procedure.
14119         (Resolve_Record_Aggregate): If a component is box-initialized, and the
14120         component type has a discriminants, create a partial aggregate for it
14121         by copying the discriminants of the component subtype.
14122         Reject attempt to initialize a discriminant with a box.
14123         (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
14124         associated with dispatch tables is known at compile time.
14125         (Get_Value): If an association in a record aggregate has a box
14126         association, and the corresponding record component has a default
14127         expression, always copy the default expression, even when the
14128         association has a single choice, in order to create a proper
14129         association for the expanded aggregate.
14130
14131 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14132             Robert Dewar  <dewar@adacore.com>
14133
14134         * par-ch12.adb (P_Generic_Associations): The source position of an
14135         Others association is that of the others keyword, not that of the token
14136         that follows the box.
14137         (P_Formal_Type_Definition): Handle formal access types that carry a
14138         not null indicator.
14139
14140         * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
14141         multiple identifier are present, save Scan_State before scanning the
14142         colon, to ensure that separate trees are constructed for each
14143         declaration.
14144         (P_Identifier_Declarations): For object declaration, set new flag
14145         Has_Init_Expression if initialization expression present.
14146         (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
14147         Improve NOT NULL error messages
14148
14149 2007-06-06  Robert Dewar  <dewar@adacore.com>
14150
14151         * par-ch4.adb: (P_Name): Recover from literal used as name
14152
14153 2007-06-06  Vincent Celier  <celier@adacore.com>
14154
14155         * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
14156         defaulted to False.
14157         In the "not" case, recursive call with Complemented set to True.
14158         Do not allow "or" or "and" operators when Complemented is True.
14159
14160 2007-06-06  Vincent Celier  <celier@adacore.com>
14161
14162         * prj.adb (Project_Empty): Gives default value for new component
14163         Libgnarl_Needed
14164
14165         * prj-attr.ads: Minor reformatting
14166
14167         * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
14168         directory using the untouched casing.
14169         (For_All_Source_Dirs): Idem.
14170
14171         * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
14172         directories specified with switches -aP.
14173         (Add_Search_Project_Directory): New procedure
14174         (Initialize_Project_Path): Put the directories in table
14175         Search_Directories in the project search path.
14176         (Initialize_Project_Path): For VMS, transform into canonical form the
14177         project path.
14178
14179 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
14180
14181         * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
14182         true if configurable run-time or No_Run_Time is set.
14183         (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
14184         processing an unit which is not the one being compiled.
14185
14186 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
14187
14188         * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
14189         Replace UC by Ada.UC
14190
14191         * s-bitops.adb: Get rid of System.Pure_Exceptions.
14192         Replace UC by Ada.UC
14193
14194 2007-06-06  Robert Dewar  <dewar@adacore.com>
14195
14196         * scng.adb: (Check_End_Of_Line): Deal with very long lines
14197
14198 2007-06-06  Robert Dewar  <dewar@adacore.com>
14199
14200         * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
14201         Remove no longer used nodes.
14202
14203 2007-06-06  Javier Miranda  <miranda@adacore.com>
14204             Ed Schonberg  <schonberg@adacore.com>
14205             Robert Dewar  <dewar@adacore.com>
14206
14207         * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
14208         on obsolescent withed unit in case of limited-withed units.
14209         (Analyze_Compilation_Unit): Add guard to code that removed an
14210         instantiation from visibility, to prevent compiler aborts when
14211         instantiation is abandoned early on.
14212         (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
14213         current unit being analyzed, and Distinguish local incomplete types
14214         from limited views of types declared elsewhere.
14215         (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
14216         to state that the class-wide entity is shared by the limited-view
14217         and the full-view.
14218         (Analyze_With_Clause): Improve placement of flag for case of
14219         unimplemented unit.
14220         (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
14221         manner similar to GNAT.Current_Exception. This is a violation of
14222         restriction (No_Exception_Propagation), and also inhibits the
14223         optimization of local raise to goto.
14224         (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
14225         and if so set Most_Recent_Exception_Used flag in Opt, and also check
14226         for violation of restriction No_Exception_Propagation.
14227
14228 2007-06-06  Javier Miranda  <miranda@adacore.com>
14229             Hristian Kirtchev  <kirtchev@adacore.com>
14230             Gary Dismukes  <dismukes@adacore.com>
14231
14232         * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
14233         use of entity Exception_Occurrence if it is not available in the
14234         target run-time.
14235
14236         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
14237         concurrent types are declared within an Ada 2005 generic, build their
14238         corresponding record types since they are needed for overriding-related
14239         semantic checks.
14240         (Analyze_Protected_Type): Rearrange and simplify code for testing that a
14241         protected type does not implement a task interface or a nonlimited
14242         interface.
14243         (Analyze_Task_Type): Rearrange and simplify code for testing that a task
14244         type does not implement a protected interface or a nonlimited interface.
14245         (Single_Task_Declaration, Single_Protected_Declaration): use original
14246         entity for variable declaration, to ensure that debugging information
14247         is correcty generated.
14248         (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
14249         routines if the expander is not active.
14250         (Analyze_Task_Body): Mark all handlers to stop optimization of local
14251         raise, since special things happen for task exception handlers.
14252
14253         * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
14254         concurrent types declared within a generic.
14255         (Check_Dispatching_Operation): Do not emit warning about late interface
14256         operations in the context of an instance.
14257         (Check_Dispatching_Call): Remove restriction against calling a
14258         dispatching operation with a limited controlling result.
14259         (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
14260         Register_Interface_DT_Entry by calls to Register_Primitive.
14261         (Check_Dispatching_Formals): Handle properly a function with a
14262         controlling access result.
14263
14264 2007-06-06  Robert Dewar  <dewar@adacore.com>
14265             Arnaud Charlet  <charlet@adacore.com>
14266
14267         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
14268         Check for restriction No_Implementation_Attributes if in Ada 95 mode.
14269         (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
14270         (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
14271         message when using a VM, since this attribute is not supported.
14272         (Analyze_Record_Representation_Clause): Give unrepped component warnings
14273
14274         * usage.adb: Add new warning for renaming of function return objects
14275         Indicate that -gnatwp and -gnatwP concern front-end inlining
14276         Add line for -gnatyg
14277         Add usage information for -gnatw.c/C
14278
14279 2007-06-06  Robert Dewar  <dewar@adacore.com>
14280             Ed Schonberg  <schonberg@adacore.com>
14281
14282         * sem_ch5.adb
14283         (Find_Var): Do not consider function call in test for infinite loop
14284         warning if warnings set off for function entity.
14285         (One_Bound): Do not create a temporary for a loop bound if it is a
14286         character literal.
14287         (Analyze_Assignment): Traverse the right hand side of an assignment and
14288         mark all allocators as static coextensions.
14289         (Analyze_Assignment): Exempt assignments involving a dispatching call
14290         to a function with a controlling access result from the check requiring
14291         the target to be class-wide.
14292
14293 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
14294             Ed Schonberg  <schonberg@adacore.com>
14295             Robert Dewar  <dewar@adacore.com>
14296             Javier Miranda  <miranda@adacore.com>
14297
14298         * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
14299         chain of coextensions when an allocator serves as the root of such a
14300         chain.
14301         (Propagate_Coextensions): Remove the test for the root being an
14302         allocator.
14303         (Resolve_Allocator): Add condition to ensure that all future decoration
14304         occurs on an allocator node. Add processing and cleanup for static
14305         coextensions.
14306         (Valid_Conversion): If the operand type is the limited view of a
14307         class-wide type, use the non-limited view is available to determine
14308         legality of operation.
14309         (Ambiguous_Character): move to spec, for use elsewhere.
14310         (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
14311         (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
14312         character literals.
14313         (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
14314         Do_Division_Check flag explicitly.
14315         (Resolve_Actuals): If the actual is of a synchronized type, and the
14316         formal is of the corresponding record type, this is a call to a
14317         primitive operation of the type, that is declared outside of the type;
14318         the actual must be unchecked-converted to the type of the actual
14319         (Resolve_Call): Kill all current values for any subprogram call if
14320         flag Suppress_Value_Tracking_On_Call is set.
14321         (Resolve_Type_Conversion): Generate error message the the operand
14322         or target of interface conversions come from a limited view.
14323         (Check_Infinite_Recursion): Ignore generated calls
14324         (Check_Allocator_Discrim_Accessibility): New procedure for checking
14325         that an expression that constrains an access discriminant in an
14326         allocator does not denote an object with a deeper level than the
14327         allocator's access type.
14328         (Resolve_Allocator): In the case of an allocator initialized by an
14329         aggregate of a discriminated type, check that associations for any
14330         access discriminants satisfy accessibility requirements by calling
14331         Check_Allocator_Discrim_Accessibility.
14332         (Resolve_Equality_Op): Handle comparisons of anonymous access to
14333         subprogram types in the same fashion as other anonymous access types.
14334         (Resolve_Concatenation_Arg): Remove initial character '\' in an error
14335         message that is not a continuation message.
14336         (Resolve_Type_Conversion): Add missing support for conversion to
14337         interface type.
14338         (Resolve_Actuals): Introduce a transient scope around the call if an
14339         actual is a call to a function returning a limited type, because the
14340         resulting value must be finalized after the call.
14341         (Resolve_Actuals): If the call was given in prefix notations, check
14342         whether an implicit 'Access reference or implicit dereference must be
14343         added to make the actual conform to the controlling formal.
14344
14345 2007-06-06  Robert Dewar  <dewar@adacore.com>
14346             Javier Miranda  <miranda@adacore.com>
14347
14348         * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
14349         (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
14350         overriding of an inherited private subprogram now there is no need to
14351         inherit its dispatching slot and reduce the size of the dispatch table.
14352         Set_All_DT_Position now ensures that the same slot is now assigned to
14353         both entities. This is required to statically build the dispatch table.
14354         (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
14355         of calling Set_All_DT_Position to re-evaluate the position of the
14356         entries in the dispatch table. Such reevaluation is not desired if
14357         the tagged type is already frozen.
14358
14359 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
14360             Gary Dismukes  <dismukes@adacore.com>
14361             Robert Dewar  <dewar@adacore.com>
14362             Javier Miranda  <miranda@adacore.com>
14363
14364         * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
14365         reference acts as an lvalue when the attribute name modifies the prefix
14366         (Is_Coextension_Root): New routine.
14367         (Mark_Static_Coextensions): New routine.
14368         (Type_Access_Level): Revise code for checking the level of the
14369         anonymous access type of a return object.
14370         (Safe_To_Capture_Value): Not safe to capture if Address_Taken
14371         (Matches_Prefixed_View_Profile): Remove the no longer necessary
14372         retrieval of the corresponding controlling record type.
14373         (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
14374         concurrent types declared within a generic as well as class wide types.
14375         Emit a mode incompatibility error whenever a protected entry or routine
14376         override an interface routine whose first parameter is not of mode
14377         "out", "in out" or access to variable.
14378         (Overrides_Synchronized_Primitive): Rename to
14379         Find_Overridden_Synchronized_Primitive.
14380         (Collect_Interface_Components): New subprogram that collects all the
14381         components of a tagged record containing tags of secondary dispatch
14382         tables.
14383         (Add_Global_Declaration): New procedure
14384         (Abstract_Interface_List): Handle properly the case of a subtype of a
14385         private extension.
14386         (Type_Access_Level): In the case of a type whose parent scope is a
14387         return statement, call Type_Access_Level recursively on the enclosing
14388         function's result type to determine the level of the return object's
14389         type.
14390         (Build_Elaboration_Entity): Build name of elaboration entity from the
14391         scope chain of the entity, rather than the unit name of the file name.
14392         (Check_Nested_Access): New procedure.
14393         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
14394         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
14395         (Get_Renamed_Entity): Utility routine for performing common operation
14396         of chasing the Renamed_Entity field of an entity.
14397
14398 2007-06-06  Robert Dewar  <dewar@adacore.com>
14399
14400         * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
14401         elaboration model
14402         (Check_A_Call): Add check for entry call which was causing blowup
14403
14404 2007-06-06  Olivier Hainque  <hainque@adacore.com>
14405
14406         * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
14407         special code on ia64-vms to handle major incompatibilities between the
14408         GCC unwinding ABI and the VMS Condition Handling Facility, both calling
14409         this routine with a very different set of arguments and expectations on
14410         the return value.
14411
14412 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14413
14414         * socket.c (__gnat_close_signalling_fd): New function.
14415         (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
14416         __gnat_safe_getservbyname, __gnat_safe_getservbyport):
14417         New supporting functions for task safe Netdb operations.
14418
14419 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14420             Olivier Hainque  <hainque@adacore.com>
14421
14422         * a-except-2005.ads, a-except-2005.adb
14423         (Raise_From_Controlled_Operation): New procedure in
14424         (private part of) Ada.Exceptions (standard runtime version). Used to
14425         provide informational exception message when Program_Error is raised as
14426         a result of an Adjust or Finalize operation propagating an exception.
14427         (Rmsg_28): Fix description for E.4(18) check.
14428         (Raise_Current_Excep): Call Debug_Raise_Exception just before
14429         propagation starts, to let debuggers know about the event in a reliable
14430         fashion.
14431         Take the address of E and dereference to make sure it is homed on stack
14432         and prevent the stores from being deleted, necessary for proper
14433         debugger behavior on "break exception" hits.
14434         (Local_Raise): Moved to System.Exceptions
14435
14436         * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
14437         exception message from the current occurrence and raise Program_Error
14438         has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
14439
14440 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
14441             Arnaud Charlet  <charlet@adacore.com>
14442
14443         * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
14444         lock, if needed.
14445
14446         * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
14447         priority associated to a lock.
14448
14449         * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
14450         assertion to take into account case of no abort restriction.
14451         (Initialize_Protection_Entries): Add initialization for the field
14452         New_Ceiling associated to the protected object.
14453         (Unlock_Entries): Change the ceiling priority of the underlying lock, if
14454         needed.
14455
14456         * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
14457         since this function needs to be set consistently with Update_Exception.
14458
14459         * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
14460         since this function needs to be set consistently with Update_Exception.
14461
14462         * s-taskin.ads: Update comments on
14463         Interrupt_Server_Blocked_On_Event_Flag.
14464         (Unbind_Handler): Fix handling of server_task wakeup
14465         (Server_Task): Set self's state so that Unbind_Handler can take
14466         appropriate actions.
14467         (Common_ATCB): Now use a constant from System.Parameters to determine
14468         the max size of the Task_Image field.
14469
14470         * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
14471         Initialize_Analyzer function.
14472         ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
14473         take into account case of no abort restriction.
14474         ([Vulnerable_]Complete_Master): Modify assertion.
14475
14476         * s-tataat.adb (Finalize): Use the nestable versions of
14477         Defer/Undefer_Abort.
14478
14479         * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
14480
14481         * s-tpobop.ads: Update comments.
14482
14483         * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
14484         of locking the object manually, to avoid inconsistencies between
14485         Lock/Unlock_Entry assertions.
14486
14487         * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
14488         terminating
14489         application and System.Parameters.No_Abort is True.
14490         Update comments on Interrupt_Server_Blocked_On_Event_Flag.
14491         (Unbind_Handler): Fix handling of server_task wakeup
14492         (Server_Task): Set self's state so that Unbind_Handler can take
14493         appropriate actions.
14494
14495 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14496
14497         * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
14498         declarations instead of an explicit null body, for conciseness.
14499
14500 2007-06-06  Robert Dewar  <dewar@adacore.com>
14501
14502         * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
14503         illegal aggregate and the type is still Any_Composite.
14504         (Subtypes_Statically_Match): Fix problem of empty discriminant list
14505
14506 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14507
14508         * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
14509         to prevent subsequent expansion.
14510
14511 2007-06-06  Robert Dewar  <dewar@adacore.com>
14512
14513         * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
14514
14515 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14516             Robert Dewar  <dewar@adacore.com>
14517
14518         * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
14519         exceptions.
14520         (Write_Itype): Handle case of string literal subtype, which
14521         comes up in this context.
14522         (Update_Itype): when debugging expanded code, update sloc of itypes
14523         associated with defining_identifiers and ranges, for gdb use.
14524         (Sprint_Node_Actual): Add static keyword to object or exception
14525         declaration output if Is_Statically_Allocated is True.
14526         (Sprint_End_Label): Set entity of end marker for a subprogram, package,
14527         or task body, so that the tree carries the proper Sloc information for
14528         debugging use.
14529         (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
14530
14531 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
14532
14533         * s-secsta.adb (Chunk): Ensure this object has a static size known at
14534         compile time, to avoid dynamic memory allocation
14535         (Elaboration code): Only use dynamic memory allocation when needed.
14536
14537 2007-06-06  Quentin Ochem  <ochem@adacore.com>
14538
14539         * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
14540         "Overflow_Guard".
14541         (Stack_Analyzer): Added field "Overflow_Guard"
14542         (Task_Result): Added field "Overflow_Guard".
14543         (Index_Str): New constant.
14544         (Task_Name_Str): New constant.
14545         (Actual_Size_Str): New constant.
14546         (Pattern_Array_Element_Size): New constant.
14547         (Get_Usage_Range): New subprogram.
14548         (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
14549         Now align the output.
14550         Added comments.
14551         (Initialize): Added value for Overflow_Guard.
14552         (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
14553         Update the value of the overflow guard according to the actual
14554         beginning of the pattern array.
14555         (Initialize_Analyzer): Added parameter Overflow_Guard.
14556         Take this parameter into accound when computing the max size.
14557         (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
14558         (Report_Result): Removed extra useless procedure.
14559         Updated call to Output_Result.
14560         Moved full computation of the Task_Result here.
14561
14562 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14563
14564         * g-soccon-darwin.ads, gen-soccon.c: Add new constant
14565         Thread_Blocking_IO, always True by default, set False on a per-runtime
14566         basis.
14567         Add Windows-specific constants
14568         Add new constant Need_Netdb_Buffer.
14569         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
14570         not, whether to use getXXXbyYYY_r.
14571
14572         * gsocket.h: Add new constant Need_Netdb_Buffer.
14573         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
14574         not, whether to use getXXXbyYYY_r.
14575
14576 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
14577
14578         * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
14579         than their first call.
14580         Add type Dummy_Communication_Block used in the generation of the pre-
14581         defined dispatching primitive _disp_asynchronous_select.
14582         (Storage_Element): Put Pragma Universal_Aliasing on it.
14583
14584 2007-06-06  Vincent Celier  <celier@adacore.com>
14585
14586         * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
14587         function.
14588
14589         * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
14590         letter if it is not followed by a '/' or a '\'.
14591         (Windows): New Boolean function
14592
14593         * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
14594         Ada 2005.
14595         (Containing_Directory): On Windows, keep at least one '/' or '\' after a
14596         drive letter.
14597         (Containing_Directory): Raise Use_Error when the directory is a root
14598         directory.
14599         (Extension): When returning the result, use a conversion to Result_Type,
14600         not a qualification.
14601
14602 2007-06-06  Robert Dewar  <dewar@adacore.com>
14603
14604         * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
14605         (Set_Style_Check_Options): Recognize new -gnatyg style switch
14606
14607         * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
14608         Warn_On_Non_Local_Exception to False, to turn off warnings for
14609         No_Exception_Propagation in ZFP runtime.
14610         (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
14611         back-ends.
14612         (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
14613
14614 2007-06-06  Vincent Celier  <celier@adacore.com>
14615
14616         * switch-b.adb (Scan_Binder_Switches): Add processing for new
14617         switches -R and -Z
14618
14619         * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
14620         (Scan_Make_Switches): Recognize new switch -aP
14621
14622 2007-06-06  Matthew Gingell  <gingell@adacore.com>
14623             Jose Ruiz  <ruiz@adacore.com>
14624
14625         * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
14626         VxWorks task descriptor in the Ada run time, call a C subprogram
14627         (__gnat_get_stack_info) that extracts the required information.
14628
14629         * sysdep.c: Back out temporary lynxos workaround.
14630         (__gnat_get_stack_info): Add this procedure that passes to the Ada run
14631         time the stack information associated to the currently executing task.
14632         Only VxWorks systems require this function.
14633
14634 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
14635
14636         * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
14637         add the stack bias if the offset is computed from a frame address.
14638         (__gnat_backtrace): Adjust for above change.
14639
14640 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14641
14642         * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
14643         PE_Non_Transportable_Actual.
14644         (By_Descriptor_Last): New constant.
14645         (By_Copy_Return): Likewise.
14646
14647 2007-06-06  Vincent Celier  <celier@adacore.com>
14648
14649         * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
14650         is.
14651
14652         * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
14653         /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
14654         /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
14655         Add missing comment for /OPTIMIZE=SPACE
14656         Add entry for OPTIMIZE=SPACE
14657         Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
14658         Add documentation for new qualifiers corresponding to -gnatw.c/.C
14659
14660 2007-06-06  Vincent Celier  <celier@adacore.com>
14661             Robert Dewar  <dewar@adacore.com>
14662
14663         * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
14664         -gnatw.C)
14665
14666         * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
14667         Document gnatbind switch -a
14668         (case Constructions): Document that variables declarations are allowed
14669         for previously declared variables.
14670         Fix external lib project example
14671         -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
14672         Indicate that "#if not X or Y then" is not allowed in input files to
14673         gnatprep.
14674         Document gnatw.x and gnatw.X warning flags
14675         Mention -Winline switch to activate warnings when back-end inlining is
14676         ineffective.
14677         Add gnatcheck rule descriptions
14678         Describe how to use the GNAT driver to call a tool on a closure.
14679         Describe how to run project-wide checks or metrics.
14680         Document gnatbind's -R option
14681         Updated to account for Ada 2005 support
14682
14683         * gnat_rm.texi (Case Construction): Allow variable declarations for
14684         previously declared variables.
14685         (Representation Clauses and Pragmas): Lift restriction on alignment
14686         clauses for record types.
14687         (Ada.Characters.*): Fix typo in reference to A.3.3(27).
14688         Document No_Exception_Propagation restriction
14689         Document No_Body pragma
14690         Updated to account for Ada 2005 support; corrected some typos
14691         (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
14692
14693         * gnat-style.texi: Make it clear that we never use mode IN for
14694         procedures or functions
14695
14696         * ug_words: Add entries for -gnatw.x and -gnatw.X
14697         Add entries for -gnatw.c/.C
14698
14699 2007-06-06  Pascal Obry  <obry@adacore.com>
14700             Vincent Celier  <celier@adacore.com>
14701
14702         * makegpr.adb (Add_Archive_Path): Use untouched object and library
14703         dirs and library name.
14704         (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
14705         comments.
14706         (Build_Library): Idem.
14707         (Compile_Individual_Sources): Idem.
14708         (Compile_Link_With_Gnatmake): Idem.
14709         (Compile_Sources): Idem.
14710         (Get_Imported_Directories): Idem.
14711         (Link_Executables): Idem. Same change for the executable dir.
14712         (Check_Compilation_Needed): C_Source_Path new variable containing
14713         the canonical form of Source_Path to check against the source names
14714         in the dependency file.
14715         (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
14716         verbose mode, display the name of the object directory we're changing
14717         to.
14718         (Saved_Switches): New name of table X_Switches
14719         (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
14720         (Usage): New line for switch -aP
14721         (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
14722         testing if a directory should be added to the search path.
14723
14724 2007-06-06  Javier Miranda  <miranda@adacore.com>
14725
14726         * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
14727         a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
14728         declaration after freezing point of all its associated tagged types;
14729         otherwise such types are frozen too early.
14730
14731 2007-06-06  Robert Dewar  <dewar@adacore.com>
14732
14733         * a-reatim.adb: Documentation addition
14734
14735         * g-cgideb.adb: Minor code reorganization
14736
14737         * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
14738         mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
14739         s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
14740
14741         * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
14742         function.  Change name New_Scope to Push_Scope
14743         (Get_Debug_Flag_K): Remove unused obsolete function.
14744
14745         * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
14746         Push_Scope.
14747
14748         * makeusg.adb: Update Copyright notice
14749         Add line for switch -aP
14750
14751         * makeusg.adb: Fix wording of some usage messages
14752
14753         * s-assert.adb (Raise_Assert_Failure): Add call to
14754         Debug_Raise_Assert_Failure.
14755
14756         * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
14757         (2, Standard'Alignment) for compatibility with AAMP (where alignment
14758         is restricted to 1).
14759
14760         * s-wchjis.adb: Remove use of System.Pure_Exceptions
14761
14762         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
14763         node location to No_Location when we're not debugging the expanded
14764         code.
14765
14766 2007-05-22  Alexandre Oliva  <aoliva@redhat.com>
14767
14768         * misc.c (enumerate_modes): Consider log2_b to always be one.
14769
14770 2007-05-14  Rafael Ávila de Espíndola  <espindola@google.com>
14771
14772         * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
14773
14774 2007-05-02  Pascal Obry  <obry@adacore.com>
14775
14776         * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
14777         to use Stream_IO.File_Type. This is needed to make use of the UTF-8
14778         encoding support of Stream_IO.
14779         (Write_Unit): Idem.
14780
14781         * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
14782         filename and corresponding encoding to match the OS requirement.
14783         (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
14784         routine will fail on specific devices like CON: AUX: ...
14785
14786         PR ada/29856: Add missing braces
14787
14788 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14789
14790         PR ada/31660
14791         * ada-tree.h (lang_tree_node): Fix typo in chain_next.
14792
14793 2007-04-21  Jan Hubicka  <jh@suse.cz>
14794
14795         * misc.c (gnat_expand_body): Don't call target for destructors,
14796         avoid redundant check on syntax errors.
14797
14798 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14799
14800         * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
14801         instead of checking GIMPLE_STMT_P in chain_next.
14802
14803 2007-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
14804
14805         PR ada/31576
14806         * system-linux-alpha.ads: Disable constant condition warning for the
14807         Default_Bit_Order variable.
14808         * system-linux-s390.ads: Likewise.
14809         * system-linux-s390x.ads: Likewise.
14810         * system-linux-sparc.ads: Likewise.
14811
14812 2007-04-06  Javier Miranda  <miranda@adacore.com>
14813             Matt Heaney  <heaney@adacore.com>
14814             Robert Dewar  <dewar@adacore.com>
14815
14816         a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
14817         a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
14818         a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
14819         a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
14820         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
14821         a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
14822         a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
14823         a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
14824         a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
14825         a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
14826         a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
14827         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
14828         a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
14829         a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
14830         a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
14831         a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
14832         a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
14833         i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
14834         unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
14835         a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
14836         a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
14837         a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
14838         expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
14839         s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
14840         s-taprop-tru64.adb, s-taprop-irix.adb,
14841         s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
14842         s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
14843         s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
14844         s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
14845         s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
14846         a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
14847         a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
14848         g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
14849         s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
14850         s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
14851         s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
14852         s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
14853         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
14854         s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
14855         a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
14856         a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
14857         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
14858         a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
14859         a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
14860         a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
14861         access types.
14862         Update documentation.
14863         Minor rewording.
14864
14865 2007-04-06  Robert Dewar  <dewar@adacore.com>
14866
14867         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
14868         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
14869         system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
14870         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
14871         system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
14872         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
14873         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
14874         system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
14875         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
14876         system-hpux-ia64.ads, targparm.adb,
14877         targparm.ads (Functions_Return_By_DSP_On_Target): Removed
14878
14879         * system.ads: Move Functions_Return_By_DSP to obsolete section,
14880         kept for bootstrap purposes only.
14881
14882 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
14883
14884         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
14885         s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
14886         s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
14887         (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
14888
14889 2007-04-06  Robert Dewar  <dewar@adacore.com>
14890
14891         * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
14892         (Local_Raise): New dummy procedure called when a raise is converted
14893         to a local goto. Used for debugger to detect that the exception
14894         is raised.
14895
14896         * debug.adb: Document new d.g flag (expand local raise statements to
14897         gotos even if pragma Restriction (No_Exception_Propagation) is not set)
14898
14899         * exp_sel.adb: Use Make_Implicit_Exception_Handler
14900
14901         * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
14902         suppress warnings for unused handlers.
14903         (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
14904         warnings for raise statements not handled locally.
14905         (Get_RT_Exception_Entity): New function
14906         (Get_Local_Call_Entity): New function
14907         (Find_Local_Handler): New function
14908         (Warn_If_No_Propagation): New procedure
14909         (Expand_At_End_Handler): Call Make_Implicit_Handler
14910         (Expand_Exception_Handlers): Major additions to deal with local handlers
14911         (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
14912         Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
14913         for local raise
14914
14915         * exp_ch11.ads (Get_RT_Exception_Entity): New function
14916         (Get_Local_Call_Entity): New function
14917
14918         * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
14919         of restrictions that the binder will never suggest adding.
14920
14921         * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
14922         to No_Elist.
14923
14924         * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
14925         be with'ed in the presence of pragma Restriction
14926         (No_Exception_Propagation).
14927
14928         * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
14929
14930         * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
14931         parameter, then the handler is not a suitable target for a local raise,
14932         and this is a violation of restriction No_Exception_Propagation.
14933         (Analyze_Handled_Statements): Analyze choice parameters in exception
14934         handlers before analyzing statement sequence (needed for proper
14935         detection of local raise statements).
14936         (Analyze_Raise_Statement): Reraise statement is a violation of the
14937         No_Exception_Propagation restriction.
14938
14939         * s-rident.ads: Add new restriction No_Exception_Propagation
14940
14941         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
14942         function, like Make_Exception_Handler but sets Local_Raise_Statements
14943         to No_List.
14944         (Add_Unique_Serial_Number): Deal with case where this is called during
14945         processing of configuration pragmas.
14946
14947 2007-04-06  Thomas Quinot  <quinot@adacore.com>
14948             Pat Rogers  <rogers@adacore.com>
14949             Pascal Obry  <obry@adacore.com>
14950
14951         * g-stsifd-sockets.adb: New file.
14952
14953         * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
14954         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
14955         g-socthi-vms.adb: Move signalling
14956         fd management to a nested package, so that they can conveniently be
14957         moved to a subunit that is shared across Windows, VMS, and VxWorks
14958         (Ada implementation) or completed with imported bodies from socket.c
14959         (UNIX case).
14960         (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
14961         subprograms.
14962         (Check_Selector): Use Read_Signalling_Fd to read and discard data from
14963         the signalling file descriptor.
14964         (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
14965         signalling file descriptor.
14966         (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
14967         instead of creating a pair of sockets for signalling here.
14968
14969         * g-socthi.adb: Ditto.
14970         Set the runtime process to ignore SIGPIPEs on platforms that support
14971         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
14972
14973         * g-socthi-mingw.adb: Ditto.
14974         (WS_Version): Use Windows 2.2.
14975         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
14976
14977         * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
14978         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
14979
14980         * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
14981         added GNAT byte swapping facility
14982         Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
14983
14984         * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
14985
14986         * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
14987         New subprograms.
14988         (__gnat_create_signalling_fds): New subprogram.
14989         Set the runtime process to ignore SIGPIPEs on platforms that support
14990         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
14991
14992 2007-04-06  Hristian Kirtchev  <kirtchev@adacore.com>
14993             Vincent Celier  <celier@adacore.com>
14994
14995         * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
14996         New version of Ada.Calendar which supports the new upper bound of Ada
14997         time (2399-12-31 86_399.999999999).
14998         The following modifications have been made to the package:
14999          - New representation of time as count of nanoseconds since the start of
15000            Ada time (1901-1-1 0.0).
15001          - Target independent Split and Time_Of routines which service both
15002            Ada 95 and Ada 2005 code.
15003          - Target independent interface to the Ada 2005 children of Calendar.
15004          - Integrated leap seconds into Ada 95 and Ada 2005 mode.
15005          - Handling of non-leap centenial years.
15006          - Updated clock function.
15007          - Updated arithmetic and comparison operators.
15008
15009         * a-caldel.adb (To_Duration): Add call to target independent routine in
15010         Ada.Calendar to handle the conversion of time to duration.
15011
15012         * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
15013         (UTC Offset).
15014         If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
15015         set off to 0.
15016         (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
15017         targets do not have a natural time zone, GMT is used as a default.
15018         (__gnat_get_task_options): New.
15019
15020         * a-direct.adb (Modification_Time): Add with and use clauses for
15021         Ada.Calendar and Ada.
15022         Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
15023         since it is no longer needed.
15024         (Duration_To_Time): Removed.
15025         (OS_Time_To_Long_Integer): Removed.
15026         (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
15027         Formatting Time_Of routines which automatically handle time zones,
15028         buffer periods and leap seconds.
15029
15030         * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
15031         target independent routines in Ada.Calendar.
15032
15033         * a-calfor.ads, a-calfor.adb:
15034         Code cleanup and addition of validity checks in various routines.
15035         (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
15036         Ada.Calendar.
15037
15038         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
15039         independent routine in Ada.Calendar.
15040
15041 2007-04-06  Olivier Hainque  <hainque@adacore.com>
15042
15043         * adaint.c:
15044         (convert_addresses): Adjust prototype and dummy definition to expect an
15045          extra file_name argument.
15046
15047         * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
15048         filling the now expected file_name argument with the appropriate
15049         argv[0] expansion.
15050         (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
15051         (tracebk): Array of void * instead of char *, corresponding to what
15052          convert_addresses expects.
15053         (exename): New static global, to hold the executable file name to be
15054         used in all convert_addresses invocations.
15055         (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
15056         change.
15057         (__gnat_gmem_a2l_initialize): Resolve exename.
15058         (__gnat_convert_addresses): Use exename as the convert_addresses
15059         file_name argument.
15060
15061         * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
15062         "convert_addresses", now expecting a filename argument. Import the
15063         necessary entities to compute the filename to use and pass it to
15064         convert_addresses.
15065
15066 2007-04-06  Matt Gingell  <gingell@adacore.com>
15067
15068         * system-aix.ads: Back out previous change.
15069         (Functions_Return_By_DSP): Removed
15070
15071 2007-04-06  Pascal Obry  <obry@adacore.com>
15072
15073         * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
15074         or the monotonic used by Ada.Real_Time) to compute the sleep duration
15075         on Windows.
15076
15077 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
15078
15079         * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
15080         function. Its value changes in different VxWorks versions, and it is
15081         now handled by the function __gnat_get_task_options.
15082
15083         * s-taprop-vxworks.adb (Create_Task): Call the function
15084         __gnat_get_task_options to get the required options for creating a task.
15085
15086 2007-04-06  Pascal Obry  <obry@adacore.com>
15087             Thomas Quinot  <quinot@adacore.com>
15088
15089         * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
15090         dealing with filename.
15091         (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
15092         filename from a standard string to a wide-string depending on the
15093         encoding value.
15094         (__gnat_freopen): Idem.
15095         (__gnat_current_time): New function (wrapper for time(3) standard C
15096         function).
15097
15098         * g-os_lib.ads (Current_Time): New function. Returns the current
15099         system time as an OS_Time value.
15100
15101         * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
15102         (Monotonic_Clock): Same.
15103
15104 2007-04-06  Quentin Ochem  <ochem@adacore.com>
15105
15106         * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
15107         not on a natural.
15108         (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
15109
15110 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
15111
15112         * a-retide.adb: Add elaboration code to ensure that the tasking run
15113         time is initialized when using delay operations even when no task is
15114         created.
15115
15116 2007-04-06  Javier Miranda  <miranda@adacore.com>
15117
15118         * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
15119         component Num_Prim_Ops.
15120         (Set_Num_Prim_Ops): Removed.
15121         Remove all the assertions because all the routines of this
15122         package are inline always.
15123         (Get_Offset_Index): Add support to primary dispatch tables.
15124         Move the documentation about the dispatch table to a-tags.ads
15125         (Set_External_Tag): Removed
15126         (Inherit_TSD): Removed.
15127         (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
15128         moved to a-tags.ads
15129         (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
15130         Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
15131         of the TSD field "Table" because this field has been renamed to
15132         "Ifaces_Table".
15133         (Inherit_CPP_DT): Removed.
15134         (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
15135         Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
15136         declarations have been moved to a-tags.ads
15137         (Check_Size): Removed.
15138         (Expanded_Name): Updated to get access to the new field of TSD
15139         containing the address of the expanded name.
15140         (Get_Access_Level/Set_Access_Level): Removed.
15141         (Get_Predefined_Prim_Op_Address): Removed.
15142         (Set_Predefined_Prim_Op_Address): Removed.
15143         (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
15144         (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
15145         (Set_Expanded_Name): Removed.
15146         (Inherit_DT): Removed.
15147         (Inherit_CPP_DT): Removed.
15148         (Set_RC_Offset): Removed.
15149         (Set_TSD): Removed.
15150         (Base_Address): New function that displaces "this" to point to the base
15151         of the object (that is, to point to the primary tag of the object).
15152
15153 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15154             Javier Miranda  <miranda@adacore.com>
15155
15156         * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
15157         anonymous access component, do not create a master_id if type already
15158         has one, as may happen if the type is a subcomponent of a packed array
15159         type.
15160         (Build_Init_Procedure, Component_Needs_Simple_Initialization,
15161         Initialize_Tag): Remove code associated with the old CPP pragmas.
15162         CPP_Virtual and CPP_Vtable are no longer supported.
15163         (Build_Offset_To_Top_Internal): Add support for concurrent record types
15164         (Build_Offset_To_Top_Functions): Add support for concurrent record types
15165         (Freeze_Record_Type): Remove call to
15166         Init_Predefined_Interface_Primitives.
15167         (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
15168         code required to initialize the tags of the secondary dispatch tables.
15169         This leaves the algoritm more clear.
15170         (Init_Secondary_Tags): Add support for concurrent record types
15171         (Make_Predefined_Primitive_Specs): Code cleanup.
15172         (Predefined_Primitive_Bodies): Code cleanup.
15173         (Build_Master_Renaming): New local subprogram.
15174         (Expand_N_Full_Type_Declaration): Build the master_id associated with
15175         anonymous access to task type components.
15176         (Expand_N_Subtype_Indication): The bounds of a range constraint in a
15177         subtype indication are resolved during analysis, and must not be done
15178         here.
15179         (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
15180
15181 2007-04-06  Geert Bosch  <bosch@adacore.com>
15182             Ed Schonberg  <schonberg@adacore.com>
15183             Javier Miranda  <miranda@adacore.com>
15184             Bob Duff  <duff@adacore.com>
15185
15186         * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
15187         for conversion of a Float_Type'Truncation to integer.
15188
15189         * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
15190         check if a node is an attribute that can be handled directly by the
15191         back end.
15192         (Expand_N_Attribute_Reference): Suppress expansion of floating-point
15193         attributes that can be handled directly by the back end.
15194         (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
15195         use new predicate Is_Access_Protected_Subprogram_Type.
15196         (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
15197         and Unchecked_Union if it is generated as part of the default  Output
15198         procedure for a type with default discriminants.
15199         (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
15200         if we are compiling under restriction No_Dispatching_Calls.
15201         (Constrained): Use Underlying_Type, in case the type is private without
15202         discriminants, but the full type has discriminants.
15203         (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
15204         call to Build_Get_Access_Level.
15205         (Expand_N_Attribute_Reference): The use of 'Address with class-wide
15206         interface objects requires a call to the run-time subprogram that
15207         returns the base address of the object.
15208         (Valid_Conversion): Improve error message on illegal attempt to store
15209         an anonymous access to subprogram value into a record component.
15210
15211         * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
15212         null".
15213         (Simplify_Type_Conversion): New procedure that performs simplification
15214         of Int_Type (Float_Type'Truncation (X)).
15215         (Resolve_Type_Conversion): Call above procedure after resolving operand
15216         and before performing checks. This replaces the existing ineffective
15217         code in Exp_Ch4.
15218         (Set_String_Literal_Subtype): When creating the internal static lower
15219         bound subtype for a string literal, use a newly created copy of the
15220         subtree representing the lower bound.
15221         (Resolve_Call): Exclude build-in-place function calls from transient
15222         scope treatment. Update comments to describe this exception.
15223         (Resolve_Equality_Op): In case of dispatching call check violation of
15224         restriction No_Dispatching_Calls.
15225         (Resolve_Call): If the call returns an array, the context imposes the
15226         component type of the array, and the function has one non-defaulted
15227         parameter, rewrite the call as the indexing of a call with a single
15228         parameter, to handle an Ada 2005 syntactic ambiguity for calls written
15229         in prefix form.
15230         (Resolve_Actuals): If an actual is an allocator for an access parameter,
15231         the master of the created object is the innermost enclosing statement.
15232         (Remove_Conversions): For a binary operator, check if type of second
15233         formal is numeric, to check if an abstract interpretation is present
15234         in the case of exponentiation as well.
15235
15236 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15237             Bob Duff  <duff@adacore.com>
15238
15239         * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
15240         copying a parameter list in a call, set properly the First_Named_Formal
15241         and Next_Named_Formal fields in the new list and in the enclosing call.
15242         (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
15243         names, to ease typing in the debugger. Improve comments.
15244         (Watch_Node): New variable, intended to be set in the debugger.
15245         (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
15246         called when the watched node is created.
15247         (New_Node_Debugging_Output): Combined version of local procedures
15248         New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
15249         with a parameter so that conditional breakpoints like "if Node = 12345"
15250         work.
15251         (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
15252         Add Elist1 function
15253
15254 2007-04-06  Thomas Quinot  <quinot@adacore.com>
15255             Ed Schonberg  <schonberg@adacore.com>
15256             Gary Dismukes  <dismukes@adacore.com>
15257
15258         * checks.ads, checks.adb (Selected_Range_Checks): No range check is
15259         required for a conversion between two access-to-unconstrained-array
15260         types.
15261         (Expr_Known_Valid): Validity checks do not apply to discriminants, but
15262         to discriminant constraints on discriminant objects. This rule must
15263         apply as well to discriminants of protected types in private components.
15264         (Null_Exclusion_Static_Checks): If No_Initialization is set on an
15265         object of a null-excluding access type then don't require the
15266         the object declaration to have an expression and don't emit a
15267         run-time check.
15268
15269 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
15270             Eric Botcazou  <botcazou@adacore.com>
15271
15272         * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
15273         and made constant.
15274
15275         * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
15276         Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
15277         carry any.
15278
15279         * fe.h (Compiler_Abort): Add third parameter.
15280
15281         * misc.c (internal_error_function): Build third argument from current
15282         input location and pass it to Compiler_Abort.
15283
15284 2007-04-06  Gary Dismukes  <dismukes@adacore.com>
15285
15286         * cstand.adb (Create_Standard): When the target's storage unit size is
15287         greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
15288         Standard_String.
15289
15290 2007-04-06  Nicolas Roche  <roche@adacore.com>
15291
15292         * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
15293         absolute path can have the following form: device:/a/b. In this case
15294         '/' should be inserted between the path and the filename.
15295
15296 2007-04-06  Olivier Hainque  <hainque@adacore.com>
15297             Eric Botcazou  <botcazou@adacore.com>
15298
15299         * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
15300         VAR_DECL to a CONST_DECL we make for a public constant when we know the
15301         corresponding definition has created the so made visible variable.
15302         Handle anonymous access to protected subprogram.
15303         (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
15304         object with an address clause volatile.  Re-enable original fix.
15305         <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
15306         too.
15307         (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
15308         associated with either the Equivalent or Root type, instead of the
15309         naked type node.
15310         (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
15311         subtree for every field of a global record type.
15312         (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
15313         discriminants, invoke again variable_size on its newly computed sizes.
15314
15315 2007-04-06  Robert Dewar  <dewar@adacore.com>
15316             Thomas Quinot  <quinot@adacore.com>
15317             Ed Schonberg  <schonberg@adacore.com>
15318             Bob Duff  <duff@adacore.com>
15319
15320         * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
15321         (Next_Component_Or_Discriminant): New function and procedure
15322         (First_Index, First_Literal, Master_Id,
15323         Set_First_Index, Set_First_Literal, Set_Master_Id):
15324         Add missing Ekind assertions.
15325         (Is_Access_Protected_Subprogram_Type): New predicate.
15326         (Has_RACW): New entity flag, set on package entities to indicate that
15327         the package contains the declaration of a remote accecss-to-classwide
15328         type.
15329         (E_Return_Statement): This node type has the Finalization_Chain_Entity
15330         attribute, in case the result type has controlled parts.
15331         (Requires_Overriding): Add this new flag, because "requires
15332         overriding" is subtly different from "is abstract" (see AI-228).
15333         (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
15334         Is_Abstract_Type. Make sure these are called only when appropriate.
15335         (Has_Pragma_Unreferenced_Objects): New flag
15336
15337         * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
15338         class-wide, the tag of the right-hand side must be an exact match, not
15339         an ancestor of that of the object on left-hand side.
15340         (Move_Activation_Chain): New procedure to create the call to
15341         System.Tasking.Stages.Move_Activation_Chain.
15342         (Expand_N_Extended_Return_Statement): Generate code to call
15343         System.Finalization_Implementation.Move_Final_List at the end of a
15344         return statement if the function's result type has controlled parts.
15345         Move asserts to Build_In_Place_Formal.
15346         (Move_Final_List): New function to create the call statement.
15347         (Expand_N_Assignment_Statement): In case of assignment to a class-wide
15348         tagged type, replace generation of call to the run-time subprogram
15349         CW_Membership by call to Build_CW_Membership.
15350         (Expand_N_Return_Statement): Replace generation of call to the run-time
15351         subprogram Get_Access_Level by call to Build_Get_Access_Level.
15352         (Expand_N_Simple_Function_Return): Replace generation of call to the
15353         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
15354
15355         * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
15356         Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
15357         access to protected operations.
15358         (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
15359         master and chain actual parameters to a build-in-place function call
15360         involving tasks.
15361         (BIP_Formal_Suffix): Add new enumeration literals to complete the case
15362         statement.
15363         (Make_Build_In_Place_Call_In_Allocator,
15364         Make_Build_In_Place_Call_In_Anonymous_Context,
15365         Make_Build_In_Place_Call_In_Assignment,
15366         Make_Build_In_Place_Call_In_Object_Declaration): Call
15367         Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
15368         (Expand_Inlined_Call): If the subprogram is a null procedure, or a
15369         stubbed procedure with a null body, replace the call with a null
15370         statement without using the full inlining machinery, for efficiency
15371         and to avoid invalid values in source file table entries.
15372
15373         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
15374         renamings of calls to build-in-place functions.
15375
15376         * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
15377         provides the functionality of RTE_Available to record components.
15378         (RTU_Entity): The function Entity has been renamed to RTU_Entity
15379         to avoid undesired overloading.
15380         (Entity): New subprogram that returns the entity for the referened
15381         unit. If this unit has not been loaded, it returns Empty.
15382         (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
15383         Remove no longer used entities.
15384         (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
15385         (RE_Type_Specific_Data): New entity.
15386         (RE_Move_Any_Value): New entity.
15387         (RE_TA_A, RE_Get_Any_Type): New entities.
15388         (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
15389          RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
15390          RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
15391         (Entity): New subprogram that returns the entity for the referened
15392         unit. If this unit has not been loaded, it returns Empty.
15393         (RTE): Addition of a new formal that extends the search to the scopes
15394         of the record types found in the chain of the package.
15395
15396         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
15397         "abstract subprograms must be visible" message, whether or not the type
15398         is an interface; that is, remove the special case for interface types.
15399         (Analyze_Function_Return): Remove error message "return of task objects
15400         is not yet implemented" because this is now implemented.
15401         (Create_Extra_Formals): Add the extra master and activation chain
15402         formals in case the result type has tasks.
15403         Remove error message "return of limited controlled objects is not yet
15404         implemented".
15405         (Create_Extra_Formals): Add the extra caller's finalization list formal
15406         in case the result type has controlled parts.
15407         (Process_Formals): In case of access formal types there is no need
15408         to continue with the analysis of the formals if we already notified
15409         errors.
15410         (Check_Overriding_Indicator): Add code to check overriding of predefined
15411         operators.
15412         (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
15413         flags for formals that do not require them,.
15414         (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
15415         hidden entity is use visible or directly visible.
15416         (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
15417         Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
15418         Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
15419         New_Overloaded_Entity): Split Is_Abstract flag into
15420         Is_Abstract_Subprogram and Is_Abstract_Type.
15421
15422         * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
15423         a return statement's finalization list to the caller's list, used for
15424         build-in-place functions with result type with controlled parts.
15425         Remove no longer used entities.
15426
15427         * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
15428         longer needed, because the full type is now limited, and therefore a
15429         pass-by-reference type.
15430         (Foreign_Task_Level): New constant.
15431
15432         * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
15433         move tasks from the activation chain belonging to a return statement to
15434         the one passed in by the caller, and update the master to the one
15435         passed in by the caller.
15436         (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
15437         of unactivated tasks, so we don't kill the ones that are being returned
15438         by a build-in-place function.
15439         (Create_Task): Ignore AI-280 for foreign threads.
15440
15441 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15442             Robert Dewar  <dewar@adacore.com>
15443             Bob Duff  <duff@adacore.com>
15444             Gary Dismukes  <dismukes@adacore.com>
15445
15446         * errout.adb (Unwind_Internal_Type): Use predicate
15447         Is_Access__Protected_Subprogram_Type.
15448
15449         * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
15450         (Freeze_Entity, packed array case): Do not override explicitly set
15451         alignment and size clauses.
15452         (Freeze_Entity):  An entity declared in an outer scope can be frozen if
15453         the enclosing subprogram is a child unit body that acts as a spec.
15454         (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
15455         (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
15456         Remove all code for DSP option
15457
15458         * layout.adb (Layout_Record_Type): Use First/
15459         Next_Component_Or_Discriminant
15460         (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
15461         to handle properly the anonymous access case.
15462
15463         * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
15464         for all access attributes, because overload resolution should work the
15465         same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
15466         causes the error message for the ambiguous "X'Access = Y'Access" and
15467         "X'Unrestricted_Access = Y'Access" and so forth to match.
15468         (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
15469         now that anonymous access to protected operations have their own kind.
15470         (Resolve_Attribute): In case of dispatching call check the violation of
15471         restriction No_Dispatching_Calls.
15472         (Check_Array_Type): Check new -gnatyA array index style option
15473
15474         * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
15475         attempt to derive from a synchronized tagged type.
15476         (Analyze_Type_Declaration): If there is a incomplete tagged view of the
15477         type, inherit the class-wide type already created, because it may
15478         already have been used in a self-referential anonymous access component.
15479         (Mentions_T): Recognize self-referential anonymous access components
15480         that use (a subtype of) the class-wide type of the enclosing type.
15481         (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
15482         Derived_Type for Prev formal on call to
15483         Check_Anonymous_Access_Components rather than Empty.
15484         (Make_Incomplete_Type_Declaration): Add test for case where the type has
15485         a record extension in deciding whether to create a class-wide type,
15486         rather than just checking Tagged_Present.
15487         (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
15488         to stand-alone object declarations as well as component declarations.
15489         (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
15490         prevent accidental overwriting when enclosing package appears in
15491         a limited_with_clause.
15492         (Array_Type_Declaration): If the component type is an anonymous access,
15493         the associated_node for the itype is the type declaration itself.
15494         (Add_Interface_Tag_Components): Modified to support concurrent
15495         types with abstract interfaces.
15496         (Check_Abstract_Interfaces): New subprogram that verifies the ARM
15497         rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
15498         (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
15499         to complete the decoration of synchronized interface types. Add also
15500         a call to Check_Abstract_Interfaces to verify the ARM rules.
15501         (Derive_Interface_Subprograms): Modified to support concurrent types
15502         with abstract interfaces.
15503         (Analyze_Subtype_Indication): Resolve the range with the given subtype
15504         mark, rather than delaying the full resolution depending on context.
15505         (Analyze_Component_Declaration,Analyze_Interface_Declaration,
15506         Analyze_Object_Declaration,Analyze_Subtype_Declaration,
15507         Array_Type_Declaration,Build_Derived_Record_Type,
15508         Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
15509         Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
15510         Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
15511         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
15512         called only when appropriate.
15513         (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
15514         to private type.
15515         (Analyze_Subtype_Declaration): For an access subtype declaration, create
15516         an itype reference for the anonymous designated subtype, to prevent
15517         scope anonmalies in gigi.
15518         (Build_Itype_Reference): New utility, to simplify construction of such
15519         references.
15520
15521 2007-04-06  Vincent Celier  <celier@adacore.com>
15522
15523         * errutil.adb (Initialize): Initialize warnings table, if all warnings
15524         are suppressed, supply an initial dummy entry covering all possible
15525         source locations.
15526
15527         * make.adb (Scan_Make_Arg): Reject options that should start with "--"
15528         and start with only one, such as "-RTS=none".
15529         (Collect_Arguments): Do not check for sources outside of projects.
15530         Do not collect arguments if project is externally built.
15531         (Compile_Sources): Do nothing, not even check if the source is up to
15532         date, if its project is externally built.
15533         (Compile): When compiling a predefined source, add -gnatpg
15534         as the second switch, after -c.
15535         (Compile_Sources): Allow compilation of Annex J renames without -a
15536         (Is_In_Object_Directory): Check if the ALI file is in the object
15537         even if there is no project extension.
15538         (Create_Binder_Mapping_File): Only put a unit in the mapping file for
15539         gnatbind if the ALI file effectively exists.
15540         (Initialize): Add the directory where gnatmake is invoked in front of
15541         the path if it is invoked from a bin directory, even without directory
15542         information, so that the correct GNAT tools will be used when spawned
15543         without directory information.
15544
15545         * makeusg.adb: Change switch -S to -eS
15546         Add lines for new switches -we, -wn and -ws
15547         Add line for new switch -p
15548
15549         * prj-proc.adb (Process): Set Success to False when Warning_Mode is
15550         Treat_As_Error and there are warnings.
15551
15552         * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
15553         -gnatww Change gnatmake switch -S to -eS
15554         (Scan_Make_Switches): Code reorganisation. Process separately multi
15555         character switches and single character switches.
15556         (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
15557         False when switch is not recognized by gnatmake.
15558         (Scan_Make_Switches): Set Setup_Projects True when -p or
15559         --create-missing-dirs is specified.
15560
15561         * fname.adb (Is_Predefined_File_Name): Return True for annex J
15562         renamings Calendar, Machine_Code, Unchecked_Conversion and
15563         Unchecked_Deallocation only when Renamings_Included is True.
15564
15565         * par.adb: Allow library units Calendar, Machine_Code,
15566         Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
15567         when -gnatg is not specified.
15568         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
15569         there is no need to generate always a record_definition_node in case
15570         of synchronized interface types.
15571         (SIS_Entry_Active): Initialize global variable to False
15572         (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
15573         indicate cases where AI-447 says "not null" is legal.
15574
15575         * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
15576
15577         * makegpr.adb (Check_Compilation_Needed): Take into account dependency
15578         files with with several lines starting with the object fileb name.
15579         (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
15580         is specified.
15581         (Initialize): Add the directory where gprmake is invoked in front of the
15582         path, if it is invoked from a bin directory or with directory
15583         information, so that the correct GNAT tools will be used when invoked
15584         directly.
15585         (Check_Compilation_Needed): Process correctly backslashes on Windows.
15586
15587         * vms_data.ads: Update switches/qualifiers
15588
15589 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15590             Thomas Quinot  <quinot@adacore.com>
15591
15592         * exp_aggr.adb:
15593         If the array component is a discriminated record, the array aggregate
15594         is non-static even if the component is given by an aggregate with
15595         static components.
15596         (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
15597         (Convert_Aggr_In_Allocator): If the allocator is for an access
15598         discriminant and the type is controlled. do not place on a finalization
15599         list at this point. The proper list will be determined from the
15600         enclosing object.
15601         (Build_Record_Aggr_Code): If aggregate has box-initialized components,
15602         initialize record controller if needed, before the components, to ensure
15603         that they are properly finalized.
15604         (Build_Record_Aggr_Code): For the case of an array component that has a
15605         corresponding array aggregate in the record aggregate, perform sliding
15606         if required.
15607
15608 2007-04-06  Javier Miranda  <miranda@adacore.com>
15609             Gary Dismukes  <dismukes@adacore.com>
15610             Ed Schonberg  <schonberg@adacore.com>
15611
15612         * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
15613         run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
15614
15615         * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
15616         accessibility on class-wide allocators if the allocator occurs at the
15617         same scope level as the allocator's type. The check is guaranteed to
15618         succeed in that case, even when the expression originates from a
15619         parameter of the containing subprogram.
15620         (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
15621         under No_Dispatching_Calls restriction. During the semantic analysis
15622         we already notified such violation.
15623         (Tagged_Membership): Constant folding. There is no need to check
15624         the tag at run-time if the type of the right operand is non
15625         class-wide abstract.
15626         Replace call to Is_Ancestor by call to Is_Parent
15627         to support concurrent types with interface types.
15628         (Expand_N_Allocator): Add an assertion associated with the generation
15629         of the master_id.
15630         (Expand_N_Slice): Do not enable range check to nodes associated
15631         with the frontend expansion of the dispatch table.
15632         (Is_Local_Access_Discriminant): Subsidiary function to
15633         Expand_N_Allocator.
15634         (Tagged_Membership): Replace generation of call to the run-time
15635         subprogram CW_Membership by call to Build_CW_Membership.
15636         (Expand_Allocator_Expression): Replace generation of call to the
15637         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
15638
15639         * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
15640         initialize most the TSD components by means of an aggregate.
15641         Modify the declaration of the object containing the TSD
15642         because we now expand code that has a higher level of abstraction.
15643         The TSD has a discriminant containing the Inheritance Depth Level,
15644         value that is used in the membership test but also to fix the size
15645         of the table of ancestors.
15646         (Expand_Interface_Conversion): Insert function body at the closest place
15647         to the conversion expression, to prevent access-before-elaboration
15648         errors in the backend.
15649         Code improved to reduce the size of the dispatch table if
15650         compiling under restriction No_Dispatching_Calls plus code cleanup.
15651         Code reorganization plus removal of calls to Set_Num_Prim_Ops
15652         (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
15653         (Expand_Dispatching_Call): Minor code reorganization plus addition of
15654         code to return immediately if compiling under No_Dispatching_Calls
15655         restriction.
15656         (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
15657         CPP_Virtual and CPP_Vtable are no longer supported.
15658         (Expand_Interface_Conversion): Add missing support for interface type
15659         derivations.
15660         (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
15661         Is_Parent to support concurrent types with interfaces.
15662         (Init_Predefined_Interface_Primitives): Removed.
15663         (Make_Secondary_DT): Modified to support concurrent record types.
15664         (Set_All_DT_Position): Modified to support concurrent record types.
15665         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
15666         with Get_External_Tag, Inherit_TSD, Set_External_Tag.
15667         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
15668         with CW_Membership.
15669         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
15670         with Get_Access_Level, Get_Predefined_Prim_Op_Address,
15671         Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
15672         Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
15673         Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
15674         (Expand_Dispatching_Call): Replace generation of call to the run-time
15675         subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
15676         calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
15677         Address.
15678         (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
15679         the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
15680         Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
15681         Build_Set_Prim_Op_Address.
15682         (Get_Remotely_Callable): Subprogram removed.
15683         (Init_Predefined_Interface_Primitives): Replace generation of call to
15684         the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
15685         Prims.
15686
15687         * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
15688         First (Parameter_Associations ()) with the call to First_Actual that
15689         returns an actual parameter expression for both named and positional
15690         associations.
15691
15692         * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
15693         check violation of restriction No_Dispatching_Calls.
15694         (Check_Controlling_Type): A formal of a tagged incomplete type is a
15695         controlling argument.
15696
15697         * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
15698         First/Next_Component_Or_Discriminant
15699         (Insert_Actions): Add entries for new N_Push and N_Pop nodes
15700         (Find_Implemented_Interface): Removed. All the calls to this subprogram
15701         specify Any_Limited_Interface, and this functionality is already
15702         provided by the function Has_Abstract_Interfaces.
15703         (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
15704         support concurrent types implementing interfaces.
15705         (Find_Implemented_Interface): Removed. All the calls to this subprogram
15706         specify kind Any_Limited_Interface, and this functionality is already
15707         provided by the function Has_Abstract_Interfaces.
15708         (Remove_Side_Effects): replace Controlled_Type by
15709         CW_Or_Controlled_Type whenever the issue is related to
15710         using or not the secondary stack.
15711
15712         * par-ch12.adb (P_Formal_Type_Definition): Update calls to
15713         P_Interface_Type_Definition to fulfill the new interface (the formal
15714         Is_Synchronized is no longer required).
15715
15716         * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
15717         Update dependencies.
15718
15719         * exp_atag.ads, exp_atag.adb: New file
15720
15721 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15722             Bob Duff  <duff@adacore.com>
15723             Cyrille Comar  <comar@adacore.com>
15724
15725         * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
15726         anonymous, use finalization list of enclosing dynamic scope.
15727         (Expand_N_Package_Declaration): For a library package declaration
15728         without a corresponding body, generate RACW subprogram bodies in the
15729         spec (just as we do for the task activation call).
15730         (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
15731         Is_Abstract_Type. Make sure these are called only when appropriate.
15732         Remove all code for DSP option
15733         (CW_Or_Controlled_Type): new subprogram.
15734
15735 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
15736             Ed Schonberg  <schonberg@adacore.com>
15737             Gary Dismukes  <dismukes@adacore.com>
15738
15739         * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
15740         parameter. If it is set to true, return a result capped according to
15741         the global upper bound for the index of an entry family.
15742         (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
15743         (Build_Find_Body_Index): Adjust for above change.
15744         (Entry_Index_Expression): Likewise.
15745         (Is_Potentially_Large_Family): New function extracted from...
15746         (Collect_Entry_Families): ...here. Call it to detect whether the family
15747         is potentially large.
15748         (Build_Entry_Count_Expression): If the family is potentially large, call
15749         Family_Size with 'Cap' set to true.
15750         (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
15751         a protected version of an operation declared in the private part of
15752         a protected object, because they may be invoked through a callback.
15753         (Set_Privals): If the type of a private component is an anonymous access
15754         type, do not create a new itype for each protected body.
15755         If the body of a protected operation creates
15756         controlled types (including allocators for class-widetypes), the
15757         body of the corresponding protected subprogram must include a
15758         finalization list.
15759         (Build_Activation_Chain_Entity): Build the chain entity for extended
15760         return statements.
15761         (Type_Conformant_Parameters): Use common predicate Conforming_Types
15762         to determine whether operation overrides an inherited primitive.
15763         (Build_Wrapper_Spec): Add code to examine the parents while looking
15764         for a possible overriding candidate.
15765         (Build_Simple_Entry_Call): Set No_Initialization on the object used to
15766         hold an actual parameter value since its initialization is separated
15767         from the the declaration. Prevents errors on null-excluding access
15768         formals.
15769
15770 2007-04-06  Thomas Quinot  <quinot@adacore.com>
15771             Pablo Oliveira  <oliveira@adacore.com>
15772
15773         * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
15774         Do an Unchecked_Conversion to handle the passage from the Underlying
15775         Type to the Base Type when calling Build_To_Any_Call and
15776         Build_From_Any_Call.
15777         (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
15778         E_Constant, depending upon Variable formal.
15779         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
15780         PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
15781         parameter that requires an extra constrained parameter, declare
15782         temporary for actual as a variable, not a constant.
15783         (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
15784         the unit being compiled is the one that contains the stub type.
15785         Change primitive operation name for the RACW associated with a RAS
15786         from Call to _Call so it cannot clash with any legal identifier.
15787         (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
15788         Is_RAS.
15789         (Append_RACW_Bodies): New subprogram.
15790         (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
15791         Add_Receiving_Stubs_To_Declarations functions.
15792         When expanding a package body, this list correspond to the
15793         statements in the HSS at the end of the pacakge.
15794         When expanding a package spec, this list correspond to the
15795         spec declarations.
15796         (Add_Receiving_Stubs_To_Declarations): Append the function
15797         registering the receiving stubs at the end of the 'Stmts' list.
15798         (RCI_Package_Locator): Pass the new Version generic formal when
15799         instantiating a RCI_Locator package.
15800         (Build_From_Any_Function): To compute the High bound for an
15801         unconstrained array actual, we add the Low bound with the length.
15802         Thus we must convert the low bound and the length to an appropriate
15803         type before doing the sum.
15804         (Build_Subprogram_Receiving_Stubs, PolyORB):
15805          * Retrieve the extra formals parameters at the
15806            end of the parameter stream.
15807          * Use Move_Any_Value to write back out parameters
15808            after executing the request as it is more efficient
15809            than Copy_Any_Value.
15810          * Build the any containing Extra Formals with the
15811            appropriate typecode.
15812         (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
15813         empty Component_List.
15814         (Build_Actual_Object_Declaration): New subprogram. Build and insert into
15815         the tree the declaration for an object that serves as actual parameter
15816         in server-side stubs.
15817         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
15818         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
15819         Use Build_Actual_Object_Declaration to prepare the actuals.
15820         (Add_Parameter_To_NVList): Set the parameter mode to In for
15821         Extra Constrained Parameters.
15822         (Build_General_Calling_Stubs): Set the parameter type to boolean for
15823         Extra Constrained parameters.
15824         (Build_To_Any_Function, Build_From_Any_Function,
15825         Built_TypeCode_Function): When Typ is implicit, call the correct
15826         function with the first not implicit parent type.
15827         (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
15828         (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
15829         typecode from the Etype. Therefore we retrieve the correct typecode
15830         with a call to Get_Any_Type.
15831         (Copy_Specification): Do controlling formal type substitution based on
15832         Is_Controlling_Formal flag, instead of caller-provided object type.
15833         (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
15834         a RACW primitive operation, we might get a subprogram declaration for an
15835         ancestor of the RACW designated type (not for the designated type
15836         itself), in the case where this operation is inherited. In this case we
15837         have no easy means of determining the original tagged type for which
15838         the primitive was declared, so instead we now rely on
15839         Copy_Specification to use the Is_Controlling_Formal flag to determine
15840         which formals require type substitution.
15841
15842 2007-04-06  Robert Dewar  <dewar@adacore.com>
15843             Ed Schonberg  <schonberg@adacore.com>
15844
15845         * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
15846         GNAT.Current_Exception are not allowed if pragma Restrictions
15847         (No_Exception_Propagation) is set and in any case make the associated
15848         handler unsuitable as a target for a local raise statement.
15849         (Expand_Dispatching_Constructor_Call): Replace generation of call to the
15850         run-time subprogram CW_Membership by call to Build_CW_Membership.
15851         (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
15852         by a function call, a temporary must be created before expanding the
15853         Constructor_Call itself, to prevent out-of-order elaboration in the
15854         back-end when stack checking is enabled..
15855
15856 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15857
15858         * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
15859         result are the bounds of the left operand, not the right.
15860
15861 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15862
15863         * exp_strm.adb
15864         (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
15865          discriminant defaults.
15866         (Build_Record_Or_Elementary_Output_Procedure): Ditto.
15867         (Make_Component_List_Attributes): Ditto.
15868
15869 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15870             Bob Duff  <duff@adacore.com>
15871
15872         * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
15873         an association with a box as providing a value even though the
15874         initialization procedure for the type is not available.
15875         (Resolve_Record_Aggregate): Check that a choice of an association with a
15876         box corresponds to a component of the type.
15877         (Resolve_Record_Aggregate): Split Is_Abstract flag into
15878         Is_Abstract_Subprogram and Is_Abstract_Type.
15879
15880         * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
15881         assert.
15882
15883         * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
15884         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
15885         called only when appropriate.
15886
15887 2007-04-06  Olivier Hainque  <hainque@adacore.com>
15888
15889         * g-alleve.ads (Low Level Vector type definitions): Map each to the
15890         associated vector view instead of all to the unsigned char view.
15891
15892         * g-altcon.adb (Generic_Conversions): New internal generic package,
15893         offering facilities for all the Vector/View conversion routines
15894         implemented by this unit.
15895         (To_View/To_Vector - all versions): Reimplemented in a systematic
15896         manner, using the internal Generic_Conversions facilities.
15897
15898 2007-04-06  Pascal Obry  <obry@adacore.com>
15899
15900         * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
15901         string.
15902         (Create): Free the source string before storing the new one.
15903
15904 2007-04-06  Vincent Celier  <celier@adacore.com>
15905
15906         * g-debpoo.adb (Validity): New package with a complete new
15907         implementation of subprograms Is_Valid and Set_Valid.
15908         (Is_Valid): Move to local package Validity
15909         (Set_Valid): Move to local package Validity
15910
15911 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
15912             Pablo Oliveira  <oliveira@adacore.com>
15913
15914         * g-expect.adb (Get_Command_Output): When expanding the output buffer
15915         we must ensure that there is enough place for the new data we are going
15916         to copy in.
15917
15918 2007-04-06  Thomas Quinot  <quinot@adacore.com>
15919
15920         * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
15921         computation.
15922
15923 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
15924             Vincent Celier  <celier@adacore.com>
15925
15926         * gnatcmd.adb (B_Start): Add prefix of binder generated file.
15927         (Stack_String): Add this String that contains the name of the Stack
15928         package in the project file.
15929         (Packages_To_Check_By_Stack): Add this list that contains the packages
15930         to be checked by gnatstack, which are the naming and the stack packages.
15931         (Check_Files): If no .ci files were specified for gnatstack we add all
15932         the .ci files belonging to the projects, including binder generated
15933         files.
15934         (Non_VMS_Usage): Document that gnatstack accept project file switches.
15935         (GNATCmd): Update the B_Start variable if we are in a VMS environment.
15936         Add gnatstack to the list of commands that use project file related
15937         switches, and get the single attribute Switches from the stack package
15938         in a project file when calling gnatstack. Parse the -U flag for
15939         processing files belonging to all projects in the project tree.
15940         Remove all processing for command Setup
15941
15942         * prj-attr.adb: Add new package Stack with single attribute Switches
15943
15944         * vms_conv.ads (Command_Type): Add command Stack.
15945         Move to body declarations that are only used in the body: types Item_Id,
15946         Translation_Type, Item_Ptr, Item and its subtypes.
15947
15948         * vms_conv.adb: (Initialize): Add data for new command Stack.
15949         Add declarations moved from the spec: types Item_Id, Translation_Type,
15950         Item_Ptr, Item and its subtypes.
15951         (Cargs_Buffer): New table
15952         (Cargs): New Boolean global variable
15953         (Process_Buffer): New procedure to create arguments
15954         (Place): Put character in table Buffer or Cargs_Buffer depending on the
15955          value of Cargs.
15956         (Process_Argument): Set Cargs when processing qualifiers for GNAT
15957         COMPILE
15958         (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
15959         empty, for table Cargs_Buffer.
15960         (Initialize): Remove component Setup in Command_List
15961
15962 2007-04-06  Vincent Celier  <celier@adacore.com>
15963
15964         * gprep.adb (Process_Files.Process_One_File): Use full file name when
15965         issuing pragma Source_Reference.
15966
15967 2007-04-06  Emmanuel Briot  <briot@adacore.com>
15968
15969         * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
15970         [[:xdigit:]] character class.
15971         Also raise an exception when an invalid character class is used.
15972
15973 2007-04-06  Pascal Obry  <obry@adacore.com>
15974
15975         * i-cstrea.ads: (fopen): Add encoding parameter.
15976         (freopen): Idem.
15977         Change reference from a-sysdep.c to sysdep.c in comment.
15978         Update copyright notice.
15979         This set of patch add support for the encoding form parameter.
15980
15981         * mingw32.h (S2WSU): New macro to convert from a string to a
15982         wide-string using the UTF-8 encoding. The S2WS macro supports now only
15983         standard 8bits encoding.
15984         (WS2SU): As above but converting from wide-sring to string.
15985         This is needed as it is necessary to have access to both versions in the
15986         runtime for the form parameter encoding support.
15987         This set of patch add support for the encoding form parameter.
15988         (S2WS): Improve implementation to handle cases where the filename is not
15989         UTF-8 encoded. In this case we default to using the current code page
15990         for the conversion.
15991
15992         * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
15993         type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
15994         the constants defined in adaint.h.
15995         (fopen): Add encoding parameter.
15996         (freopen): Idem.
15997
15998         * s-ficobl.ads (AFCB): Add Encoding field to record the filename
15999         encoding. This is needed for the Reset routine (freopen low level-call).
16000
16001         * s-fileio.adb (Open): Decode encoding form parameter and set the
16002         corresponding encoding value into AFCB structure.
16003         (Reset): Pass the encoding value to freopen.
16004         (Close): Move the call to Lock_Task to the beginning of the procedure.
16005
16006 2007-04-06  Geert Bosch  <bosch@adacore.com>
16007             Robert Dewar  <dewar@adacore.com>
16008
16009         * i-fortra.ads: Add Double_Complex type.
16010
16011         * impunit.adb: (Is_Known_Unit): New function
16012         Add Gnat.Byte_Swapping
16013         Add GNAT.SHA1
16014         Add new Ada 2005 units
16015         Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
16016         Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
16017         Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
16018         Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
16019
16020         * impunit.ads (Is_Known_Unit): New function
16021
16022         * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
16023         a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
16024         a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
16025         g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
16026         s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
16027         s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
16028         New files.
16029
16030         * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
16031
16032         * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
16033
16034 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
16035             Arnaud Charlet  <charlet@adacore.com>
16036
16037         * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
16038         __gnat_adjust_context_for_raise.
16039         (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
16040         implementation of floating point operations as native x86 targets.
16041         So the FPU should be initialized in the same way using finit. Fix
16042         floating point operations accuracy issues.
16043         (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
16044         member in struct sigaction, so as to avoid warning for incompatible
16045         pointer types.
16046
16047 2007-04-06 Serguei Rybin  <rybin@adacore.com>
16048
16049         * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
16050         switches from previously loaded tree
16051
16052 2007-04-06  Thomas Quinot  <quinot@adacore.com>
16053
16054         * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
16055         cases where a given dependency has a body or not.
16056         (Write_With_File_Names): New subprogram, common code for the two cases
16057         above.
16058
16059 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16060             Javier Miranda  <miranda@adacore.com>
16061
16062         * lib-xref.ads, lib-xref.adb:
16063         Modify the loop that collects type references, to include interface
16064         types that the type implements. List each of these interfaces when
16065         building the entry for the type.
16066         (Generate_Definition): Initialize component Def and Typ of new entry
16067         in table Xrefs, to avoid to have these components unitialized.
16068         (Output_References): Split Is_Abstract flag into
16069         Is_Abstract_Subprogram and Is_Abstract_Type.
16070         (Generate_Reference): Add barrier to do not generate the warning
16071         associated with Ada 2005 entities with entities generated by the
16072         expander.
16073
16074 2007-04-06  Robert Dewar  <dewar@adacore.com>
16075             Arnaud Charlet  <charlet@adacore.com>
16076             Vincent Celier  <celier@adacore.com>
16077
16078         * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
16079         Update 'Exception Handling Control' chapter which was outdated.
16080         Minor fix to documentation of -gnatwq
16081         Remove section "Adapting the Run Time to a New C++ Compiler" because
16082         it is now obsolete.
16083         Add passage on need of -nostart-files in some non-ada-main cases.
16084         Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
16085         Update documentation about Interfacing with C++
16086         Add documentation for new gnatmake switch -p
16087         Add missing protocol part in URLs.
16088         Document -gnatyA
16089         Document pragma Compile_Time_Error
16090         Add documentation for Object_Size indicating that stand alone
16091         objects can have a larger size in some cases.
16092         Add node for GNAT.Byte_Swapping, GNAT.SHA1
16093         Update reference to the Ravenscar profile.
16094         Document pragma Unreferenced_Objects
16095
16096         * gnat-style.texi: Fix typo
16097
16098 2007-04-06  Vincent Celier  <celier@adacore.com>
16099
16100         * mlib.adb (Building_Library): Only output "building a library..." in
16101         verbose mode
16102
16103         * mlib-prj.adb (Build_Library): Only output lists of object and ALI
16104         files in verbose mode.
16105
16106         * mlib-utl.adb (Ar): Only output the first object files when not in
16107         verbose mode.
16108         (Gcc): Do not display all the object files if not in verbose mode, only
16109         the first one.
16110
16111 2007-04-06  Robert Dewar  <dewar@adacore.com>
16112
16113         * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
16114         it no longer destroys the contents of Name_Buffer or Name_Len and
16115         non-standard and invalid names are handled better.
16116         (Get_Decoded_Name_String): Improve performance by using
16117         Name_Has_No_Encodings flag in the name table.
16118         (Is_Valid_Name): New function to determine whether a Name_Id is valid.
16119         Used for debugging printouts.
16120
16121 2007-04-06  Robert Dewar  <dewar@adacore.com>
16122             Javier Miranda  <miranda@adacore.com>
16123             Bob Duff  <duff@adacore.com>
16124
16125         * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
16126         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
16127         there is no need to generate always a record_definition_node in case
16128         of synchronized interface types.
16129         (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
16130         (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
16131         illegal in Ada 95, in cases where it is legal. Change the warnings to
16132         errors in other cases. Don't give the error unless the "not null"
16133         parses properly. Correct the source position at which the error occurs.
16134         (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
16135         P_Null_Exclusion, to suppress "not null" warnings.
16136         (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
16137         associated goto statements.
16138
16139         * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
16140         of END RECORD
16141
16142         * scans.ads (Type_Token_Location): New flag
16143
16144         * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
16145         (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
16146         P_Null_Exclusion, to suppress "not null" warnings.
16147
16148 2007-04-06  Robert Dewar  <dewar@adacore.com>
16149             Javier Miranda  <miranda@adacore.com>
16150             Bob Duff  <duff@adacore.com>
16151             Vincent Celier  <celier@adacore.com>
16152
16153         * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
16154         (Extensions_Allowed): No longer sets Ada_Version
16155         Entry for pragma Unreferenced_Objects
16156
16157         * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
16158         system.tasking if pragma priority used in a procedure
16159         (Analyze_Pragma, case Warning): Handle dot warning switches
16160         (Process_Compile_Time_Warning_Or_Error): New procedure
16161         (Analyze_Pragma): Add processing for Compile_Time_Error
16162         Add support for extra arguments External_Name and Link_Name.
16163         Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
16164         (Process_Import_Or_Interface): Add support for the use of pragma Import
16165         with tagged types.
16166         (Extensions_Allowed): No longer affects Ada_Version
16167         (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
16168         Is_Abstract_Type. Make sure these are called only when appropriate.
16169         Add processing for pragma Unreferenced_Objects
16170
16171         * snames.h, snames.ads, snames.adb: Add entry for pragma
16172         Compile_Time_Error
16173         Add new standard name Minimum_Binder_Options for new gprmake
16174         Add new standard names for gprmake: Archive_Suffix,
16175         Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
16176         Library_Support, Library_Version_Options,
16177         Shared_Library_Minimum_Options,
16178         Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
16179         Change Name_Call to Name_uCall so that it cannot clash with a legal
16180         subprogram name.
16181         Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
16182         Append C_Plus_Plus to convention identifiers as synonym for CPP
16183         Add new standard names Stack and Builder_Switches
16184         Add new standard names: Compiler_Minimum_Options, Global_Config_File,
16185         Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
16186         Run_Path_Option, Toolchain_Version.
16187         Entry for pragma Unreferenced_Objects
16188
16189         * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
16190         switches, without repetition of "eD". Make sure that last character of
16191         -gnatep= switch is not taken as -gnat switch character.
16192         Complete rewrite of circuit for handling saving compilation options
16193         Occasioned by need to support dot switchs for -gnatw, but cleans up
16194         things in general.
16195         -gnatX does not affect Ada_Version
16196         Include -gnatyA in -gnatg style switches
16197
16198         * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
16199         warnings on return objects.
16200         (Warn_On_Useless_Assignment): Exclude warnings on return objects
16201         (Set_Dot_Warning_Switch): New procedure
16202         (Check_References): Add missing case of test for
16203         Has_Pragma_Unreferenced_Objects
16204         (Output_Unreferenced_Messages): Implement effect of new pragma
16205         Unreferenced_Objects, remove special casing of limited controlled
16206         variables.
16207
16208 2007-04-06  Vincent Celier  <celier@adacore.com>
16209
16210         * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
16211         the default project path, initially done during elaboration of the
16212         package.
16213         If the prefix returned by Sdefault is null, get the prefix from a call
16214         to Executable_Prefix_Path.
16215         (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
16216         null.
16217
16218         * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
16219         canonical directory name to open the directory from which files are
16220         retrieved.
16221         (Record_Other_Sources): Idem.
16222         (Locate_Directory): Add the possibility to create automatically missing
16223         directories when Setup_Projects is True.
16224         Call Locate_Directory so that the directory will be created when
16225         Setup_Projects is True, for object dir, library dir, library ALI dir,
16226         library source copy dir and exec dir.
16227
16228         * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
16229         versions of GNAT.
16230
16231 2007-04-06  Robert Dewar  <dewar@adacore.com>
16232
16233         * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
16234         Use First/Next_Component_Or_Discriminant
16235         (Analyze_Record_Representation_Clause):
16236         Use First/Next_Component_Or_Discriminant
16237         (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
16238         (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
16239         definition if type is unconstrained.
16240         (Adjust_Record_For_Reverse_Bit_Order): New procedure
16241         (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
16242         Is_Abstract_Subprogram and Is_Abstract_Type.
16243         (Adjust_Record_For_Reverse_Bit_Order): New procedure
16244
16245         * repinfo.adb (List_Record_Info): Use First/
16246         Next_Component_Or_Discriminant.
16247
16248         * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
16249         New procedure.
16250
16251         * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
16252         Include -gnatyA in default switches
16253
16254         * opt.ads: (Warn_On_Non_Local_Exception): New flag
16255         (Warn_On_Reverse_Bit_Order): New flag
16256         (Extensions_Allowed): Update the documentation.
16257         (Warn_On_Questionable_Missing_Parens): Now on by default
16258
16259         * usage.adb: Add documentation of -gnatw.x/X switches
16260         Document new -gnatyA style switch
16261         -gnatq warnings are on by default
16262
16263 2007-04-06  Ed Falis  <falis@adacore.com>
16264
16265         * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
16266         full word is no longer compared twice.
16267
16268 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16269
16270         * sem_ch10.adb (Install_Limited_Context_Clauses.
16271         Expand_Limited_With_Clause): Use a new copy of selector name in the
16272         call to Make_With_Clause. This fixes the tree structure for ASIS
16273         purposes. Nothing is changed in the compiler behaviour.
16274         (Process_Body_Clauses): Handle properly use clauses whose prefix is
16275         a package renaming.
16276         (Install_Limited_With_Clauses): Do not install non-limited view when it
16277         is still incomplete.
16278
16279 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16280             Gary Dismukes  <dismukes@adacore.com>
16281
16282         * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
16283         when capturing size information, instead of base type, which for a
16284         formal array type will be the unconstrained type.
16285         (Analyze_Formal_Object_Declaration): Add check for illegal default
16286         expressions for a formal in object of a limited type.
16287         (Instantiate_Object): Ditto.
16288         (Check_Formal_Package_Instance): Skip entities that are formal objects,
16289         because they were defaulted in the formal package and no check applies
16290         to them.
16291         (Check_Formal_Package_Instance): Extend conformance check to other
16292         discrete types beyond Integer.
16293         (Process_Default): Copy directly the unmatched formal. A generic copy
16294         has already been performed in Analyze_Formal_Package.
16295         (Analyze_Associations): If a formal subprogram has no match, check for
16296         partial parametrization before looking for a default, to prevent
16297         spurious errors.
16298         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
16299         not set the instantiation environment before analyzing the actuals.
16300         Fixes regression on 8515-003 with implementation of AI-133.
16301         Set_Instance_Env checks whether the generic unit is a predefined
16302         unit, in which case the instance must be analyzed with the latest Ada
16303         mode. This setting must take place after analysis of the actuals,
16304         because the actuals must be analyzed and frozen in the Ada mode extant
16305         outside of the current instantiation.
16306         (Save_Env, Restore_Env): Preserve and restore the configuration
16307         parameters so that predefined units can be compiled in the proper Ada
16308         mode.
16309         (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
16310         Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
16311         and Is_Abstract_Type.
16312         (Analyze_Formal_Package): For better error recovery, Add exception
16313         handler to catch Instantion_Error, which can be raised in
16314         Analyze_Associations
16315
16316 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16317             Bob Duff  <duff@adacore.com>
16318             Gary Dismukes  <dismukes@adacore.com>
16319
16320         * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
16321         prefix type is a discriminated subtype of the type of the formal.
16322         (Analyze_Allocator): Collect all coextensions regardless of the context.
16323         Whether they can be allocated statically is determined in exp_ch4.
16324         (Analyze_Selected_Component): If the prefix is a limited view and the
16325         non-limited view is available, use the non-limited one.
16326         (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
16327         therefore illegal), suggest a qualified expression rather than a type
16328         conversion, because a type conversion would be illegal in this context.
16329         (Anayze_Allocator): Trace recursively all nested allocators so that all
16330         coextensions are on the corresponding list for the root. Do no mark
16331         coextensions if the root allocator is within a declaration for a stack-
16332         allocated object, because the access discriminants will be allocated on
16333         the stack as well.
16334         (Analyze_Call): Remove restriction on calls to limited functions for the
16335         cases of generic actuals for formal objects, defaults for formal objects
16336         and defaults for record components.
16337         (Analyze_Allocator): Before analysis, chain coextensions on the proper
16338         element list. Their expansion is delayed until the enclosing allocator
16339         is processed and its finalization list constructed.
16340         (Try_Primitive_Operation): If the prefix is a concurrent type, looks
16341         for an operation with the given name among the primitive operations of
16342         the corresponding record type.
16343         (Analyze_Selected_Component): If the prefix is a task type that
16344         implements an interface, and there is no entry with the given name,
16345         check whether there is another primitive operation (e.g. a function)
16346         with that name.
16347         (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
16348         properly the indexing of a function call written in prefix form, where
16349         the function returns an array type, and all parameters of the function
16350         except the first have defaults.
16351         (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
16352         the original operands, rather than relocating them, for efficiency and
16353         to work properly when an operand is overloaded.
16354         (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
16355         Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
16356         (Analyze_Selected_Component): If the prefix is a private extension, only
16357         scan the visible components, not those of the full view.
16358         (Try_Primitive_Operation): If the operation is a procedure, collect all
16359         possible interpretations, as for a function, because in the presence of
16360         classwide parameters several primitive operations of the type can match
16361         the given arguments.
16362
16363 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16364             Robert Dewar  <dewar@adacore.com>
16365
16366         * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
16367         tag-indeterminate call to an abstract function, when the left-hand side
16368         is not classwide.
16369         (Analyze_Loop_Statement): Improve detection of infinite loops
16370
16371 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16372             Thomas Quinot  <quinot@adacore.com>
16373
16374         * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
16375         out of Analyze_Package_Declaration, because processing must be applied
16376         to package bodies as well, for deferred constants completed by pragmas.
16377         (Analyze_Package_Declaration): When the package declaration being
16378         analyzed does not require an explicit body, call Check_Completion.
16379         (May_Need_Implicit_Body): An implicit body is required when a package
16380         spec contains the declaration of a remote access-to-classwide type.
16381         (Analyze_Package_Body): If the package contains RACWs, append the
16382         pending subprogram bodies generated by exp_dist at the end of the body.
16383         (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
16384         Is_Abstract_Subprogram and Is_Abstract_Type.
16385         (Preserve_Full_Attributes): The full entity list is not an attribute
16386         that must be preserved from full to partial view.
16387
16388         * sem_dist.adb (Add_RAS_Dereference_TSS):
16389         Change primitive name to _Call so it cannot clash with any legal
16390         identifier, and be special-cased in Check_Completion.
16391         Mark the full view of the designated type for the RACW associated with
16392         a RAS as Comes_From_Source to get proper view switching when installing
16393         private declarations.
16394         Provite a placeholder nested package body along with the nested spec
16395         to have a place for Append_RACW_Bodies to generate the calling stubs
16396         and stream attributes.
16397
16398 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16399             Robert Dewar  <dewar@adacore.com>
16400
16401         * sem_ch8.adb (Has_Components): If the argument is an incomplete type
16402         that is a limited view, check the non-limited view if available.
16403         (Undefined): Refine error message for missing with of Text_IO
16404         (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
16405         to distinguish real missing with cases.
16406         Fix format of all missing with messages
16407         (Analyze_Subprogram_Renaming): Emit proper error message on illegal
16408         renaming as body when renamed entity is abstract.
16409
16410 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16411             Javier Miranda  <miranda@adacore.com>
16412
16413         * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
16414         predicate recursive, to handle complex expressions on literals whose
16415         spurious ambiguity comes from the abstract interpretation of some
16416         subexpression.
16417         (Interface_Present_In_Ancestor): Add support to concurrent record
16418         types.
16419         (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
16420         Is_Abstract_Subprogram and Is_Abstract_Type.
16421
16422 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16423             Javier Miranda  <miranda@adacore.com>
16424
16425         * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
16426         dereference of a local object R created as a reference to another
16427         object O, use the access level of O.
16428         (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
16429         rather than local Same_Formal_Type, to check whether protected operation
16430         overrides an inherited one.
16431         (Same_Formal_Type): New predicate, used when matching signatures of
16432         overriding synchronized operations, to handle the case when a formal
16433         has a type that is a generic actual.
16434         (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
16435         predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
16436         (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
16437         syntactic ambiguities involving indexing of function calls that return
16438         arrays.
16439         (Abstract_Interface_List): New subprogram that returns the list of
16440         abstract interfaces associated with a concurrent type or a
16441         concurrent record type.
16442         (Interface_Present_In_Parent): New subprogram used to check if a
16443         given type or some of its parents implement a given interface.
16444         (Collect_Abstract_Interfaces): Add support for concurrent types
16445         with interface types.
16446         (Has_Abstract_Interfaces): Add support for concurrent types with
16447         interface types.
16448         (Is_Parent): New subprogram that determines whether E1 is a parent
16449         of E2. For a concurrent type its parent is the first element of its
16450         list of interface types; for other types this function provides the
16451         same result than Is_Ancestor.
16452         (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
16453         (Collect_Synchronized_Interfaces): Removed because the subprogram
16454         Collect_Abstract_Interfaces provides this functionality.
16455         (Collect_Abstract_Interfaces): Minor update to give support to
16456         concurrent types and thus avoid undesired code duplication.
16457         (Get_Subprogram_Entity): Handle entry calls.
16458         (May_Be_Lvalue): Include actuals that appear as in-out parameters in
16459         entry calls.
16460         (Enter_Name): Do not give -gnatwh hiding warning for record component
16461         entities, they never result in hiding.
16462
16463 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16464             Robert Dewar  <dewar@adacore.com>
16465
16466         * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
16467         to chain nested components that are allocators for access discriminants
16468         of the enclosing object.
16469         Add N_Push and N_Pop nodes
16470         New field Exception_Label added
16471         (Local_Raise_Statements): New field in N_Exception_Handler_Node
16472         (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
16473         (Is_Coextension): New flag for allocators, to mark allocators that
16474         correspond to access discriminants of dynamically allocated objects.
16475         (N_Block_Statement): Document the fact that the corresponding entity
16476         can be an E_Return_Statement.
16477         (Is_Coextension): New flag for allocators.
16478         Remove all code for DSP option
16479
16480         * sprint.ads, sprint.adb: Display basic information for class_wide
16481         subtypes. Add handling of N_Push and N_Pop nodes
16482
16483 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
16484
16485         * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
16486         before propagating exception.
16487
16488 2007-04-06  Olivier Hainque  <hainque@adacore.com>
16489
16490         * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
16491         an address always within the call instruction from a return address.
16492
16493 2007-04-06  Olivier Hainque  <hainque@adacore.com>
16494             Eric Botcazou  <botcazou@adacore.com>
16495
16496         * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
16497         expression with a COMPOUND_EXPR including the call instead of emitting
16498         the call directly here.
16499         (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
16500         high bound is constant and the slice is empty.  Tidy.
16501         (tree_transform, case N_Op_Not): Handle properly the case where the
16502         operation applies to a private type whose full view is a modular type.
16503         (Case_Statement_To_gnu): If an alternative is an E_Constant with an
16504         Address_Clause, use the associated Expression as the GNAT tree
16505         representing the choice value to ensure the corresponding GCC tree is
16506         of the proper kind.
16507         (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
16508         instead of just the operands, as the base GCC stabilize_reference does.
16509         <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
16510         requested; otherwise fail.
16511         (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
16512
16513 2007-04-06  Thomas Quinot  <quinot@adacore.com>
16514
16515         * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
16516         implementation of UI_Div.
16517         (UI_Div): Reimplement as a call to UI_Div_Rem.
16518         (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
16519         remainder, avoiding the cost of a multiplication and a subtraction.
16520         (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
16521         provides both quotient and remainder in a single computation.
16522         (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
16523         functions for uint.
16524         (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
16525         is undefined if the given n is not inversible.
16526
16527 2007-04-06  Olivier Hainque  <hainque@adacore.com>
16528
16529         * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
16530         BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
16531         opcodes.
16532
16533 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
16534             Olivier Hainque  <hainque@adacore.com>
16535
16536         * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
16537         when updating the contents of the old pointer to an unconstrained array.
16538         (end_subprog_body): Set error_gnat_node to Empty.
16539         (write_record_type_debug_info): Do not be unduly sparing with our bytes.
16540         (unchecked_convert): For subtype to base type conversions, require that
16541         the source be a subtype if it is an integer type.
16542         (builtin_decls): New global, vector of available builtin functions.
16543         (gnat_pushdecl): Add global builtin function declaration nodes to the
16544         builtin_decls list.
16545         (gnat_install_builtins): Adjust comments.
16546         (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
16547         calling gnat_pushdecl, so that it knows when it handed a builtin
16548         function declaration node.
16549         (builtin_decl_for): Search the builtin_decls list.
16550
16551 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
16552
16553         * s-stchop-vxworks.adb:
16554         (Stack_Check): Raise Storage_Error if the argument has wrapped around.
16555
16556 2007-04-06  Robert Dewar  <dewar@adacore.com>
16557             Arnaud Charlet  <charlet@adacore.com>
16558
16559         * a-diroro.ads: Inserted the pragma Unimplemented_Unit
16560
16561         * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
16562         of files
16563         Add mention of -Sev (set initialize_scalars option from environment
16564         variable at run time) in gnatbind usage message.
16565
16566         * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
16567
16568         * fname-uf.ads: Minor comment fix
16569
16570         * osint.ads: Change pragma Elaborate to Elaborate_All
16571
16572         * par-load.adb: Add documentation.
16573
16574         * sem_cat.ads, sem_cat.adb: Minor code reorganization
16575
16576         * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
16577
16578         * s-secsta.ads: Extra comments
16579
16580         * s-soflin.ads: Minor comment fixes
16581
16582         * s-stratt.ads (Block_Stream_Ops_OK): Removed.
16583
16584         * s-wchcon.ads: Minor comment addition
16585
16586         * treepr.adb: Minor change in message
16587         (Print_Name,Print_Node): Make these debug printouts more robust: print
16588         "no such..." instead of crashing on bad input.
16589
16590 2007-03-30  Rafael Ávila de Espíndola  <espindola@google.com>
16591
16592         * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
16593         instead of gnat_signed_or_unsigned_type.
16594         * utils.c (gnat_signed_or_unsigned_type): Remove.
16595         * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
16596         * gigi.h (gnat_signed_or_unsigned_type): Remove
16597
16598 2007-03-09  Roger Sayle  <roger@eyesopen.com>
16599
16600         * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
16601         fold with the result of buildN.
16602         * decl.c (gnat_to_gnu_entity): Likewise.
16603         * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
16604         * utils.c (finish_record_type, merge_sizes, max_size, convert):
16605         Likewise.
16606         * utils2.c (gnat_truthvalue_conversion, compare_arrays,
16607         nonbinary_modular_operation, build_binary_op, build_unary_op,
16608         build_cond_expr): Likewise.
16609
16610         * utils.c (convert): Use fold_build1 when casting values to void.
16611         * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
16612         fold_convert instead of convert when appropriate.
16613
16614 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
16615
16616         * Make-lang.in: Add install-pdf target as copied from
16617         automake v1.10 rules.
16618
16619 2007-02-28  Andreas Schwab  <schwab@suse.de>
16620
16621         * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
16622         $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
16623         (doc/gnat-style.info): Likewise.
16624
16625 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
16626
16627         * gnat-style.texi: Standardize title page.
16628         * gnat_rm.texi: Likewise.
16629         * gnat_ugn.texi: Likewise.
16630
16631 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
16632
16633         * decl.c (annotate_value): Adjust for refactoring of tree_map
16634         hierarchy.
16635
16636 2007-02-24  Mark Mitchell  <mark@codesourcery.com>
16637
16638         * decl.c (annotate_value): Adjust for refactoring of tree_map
16639         hierarchy.
16640
16641 2007-02-21  Ed Schonberg  <schonberg@adacore.com>
16642
16643         PR ada/18819
16644         * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
16645         untagged derived type, add hidden components to keep discriminant
16646         layout consistent, when a given discriminant of the derived type
16647         constraints several discriminants of the parent type.
16648
16649 2007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
16650             Sandra Loosemore  <sandra@codesourcery.com>
16651
16652         * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
16653         build the call expression.
16654         (gnat_stabilize_reference_1): Handle tcc_vl_exp.
16655         * utils.c (max_size) <tcc_exceptional>: Delete.
16656         <tcc_vl_exp>: New case.
16657         <tcc_expression>: Delete CALL_EXPR subcase.
16658         (build_global_cdtor): Use build_call_nary instead of build3.
16659         * utils2.c (build_call_1_expr): Likewise.
16660         (build_call_2_expr): Likewise.
16661         (build_call_0_expr): Likewise.
16662         (build_call_alloc_dealloc): Likewise.
16663
16664 2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
16665
16666         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
16667         get_action_description_for): Replace _Unwind_Word with _uleb128_t
16668         and _Unwind_SWord with _sleb128_t.
16669
16670 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
16671
16672         * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
16673         * decl.c: Include gt-ada-decl.h.
16674         (annotate_value_cache): New.
16675         (annotate_value): Use it instead of TREE_COMPLEXITY.
16676
16677 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
16678
16679         * misc.c, utils2.c: Fix comment typos.
16680
16681 2007-01-24  Roger Sayle  <roger@eyesopen.com>
16682
16683         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
16684         TREE_CONSTANT_OVERFLOW.
16685         (allocatable_size_p, annotate_value): Likewise.
16686         * trans.c (gnat_to_gnu): Likewise.
16687         * utils.c (unchecked_convert): Likewise.
16688         * utils2.c (build_simple_component_ref): Likewise.
16689
16690 2007-01-23  Richard Guenther  <rguenther@suse.de>
16691
16692         PR bootstrap/30541
16693         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
16694         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
16695         (gnatboot3): Likewise.
16696         (GNATBIND): Do not define.
16697         * Makefile.in (GNATBIND): Do not define.
16698
16699 2007-01-08  Richard Guenther  <rguenther@suse.de>
16700
16701         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
16702         * trans.c (gnat_to_gnu): Likewise.
16703
16704 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
16705
16706         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
16707         * adaint.c: Likewise.
16708
16709 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
16710
16711         Merge from gimple-tuples-branch:
16712         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
16713
16714         * ada-tree.h (lang_tree_node): Handle gimple tuples.
16715         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
16716         GIMPLE_MODIFY_STMT.
16717
16718 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
16719
16720         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
16721         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
16722         Fix typos.
16723
16724 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
16725
16726         PR ada/27936
16727         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
16728         if the initializer takes into account the padding.
16729
16730 2006-11-11  Richard Guenther  <rguenther@suse.de>
16731
16732         * trans.c (maybe_stabilize_reference): Remove handling of
16733         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
16734
16735 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
16736
16737         PR ada/29707
16738         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
16739         (To_Target_Priority): New function.
16740
16741 2006-10-31  Robert Dewar  <dewar@adacore.com>
16742
16743         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
16744         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
16745         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
16746         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
16747         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
16748         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
16749         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
16750         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
16751         a-szbzha.adb: Minor reformatting. Fix header.
16752
16753         * a-numaux-x86.adb: Add parentheses for use of unary minus
16754         * a-ngcefu.adb: Supply missing parentheses for unary minus
16755         * a-ngcoty.adb: Add parens for use of unary minus
16756         * a-ngelfu.adb: Add missing parens for unary minus
16757         * a-tifiio.adb: Add parentheses for uses of unary minus
16758
16759 2006-10-31  Robert Dewar  <dewar@adacore.com>
16760             Bob Duff  <duff@adacore.com>
16761             Ed Schonberg  <schonberg@adacore.com>
16762
16763         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
16764         with multiplying operator.
16765         (Expected_Type_Is_Any_Real): New function to determine from the Parent
16766         pointer whether the context expects "any real type".
16767         (Resolve_Arithmetic_Op): Do not give an error on calls to the
16768         universal_fixed "*" and "/" operators when they are used in a context
16769         that expects any real type. Also set the type of the node to
16770         Universal_Real in this case, because downstream processing requires it
16771         (mainly static expression evaluation).
16772         Reword some continuation messages
16773         Add some \\ sequences to continuation messages
16774         (Resolve_Call): Refine infinite recursion case. The test has been
16775         sharpened to eliminate some false positives.
16776         Check for Current_Task usage now includes entry barrier, and is now a
16777         warning, not an error.
16778         (Resolve): If the call is ambiguous, indicate whether an interpretation
16779         is an inherited operation.
16780         (Check_Aggr): When resolving aggregates, skip associations with a box,
16781         which are priori correct, and will be replaced by an actual default
16782         expression in the course of expansion.
16783         (Resolve_Type_Conversion): Add missing support for conversion from
16784         a class-wide interface to a tagged type. Minor code cleanup.
16785         (Valid_Tagged_Converion): Add support for abstact interface type
16786         conversions.
16787         (Resolve_Selected_Component): Call Generate_Reference here rather than
16788         during analysis, and use May_Be_Lvalue to distinguish read/write.
16789         (Valid_Array_Conversion): New procedure, abstracted from
16790         Valid_Conversion, to incorporate accessibility checks for arrays of
16791         anonymous access types.
16792         (Valid_Conversion): For a conversion to a numeric type occurring in an
16793         instance or inlined body, no need to check that the operand type is
16794         numeric, since this has been checked during analysis of the template.
16795         Remove legacy test for scope name Unchecked_Conversion.
16796
16797         * sem_res.ads: Minor reformatting
16798
16799         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
16800         (PE_Current_Task_In_Entry_Body): New exception code
16801         (SE_Restriction_Violation): Removed, not used
16802
16803         * a-except.ads:  Update comments.
16804
16805         * types.h, types.ads: Add definition for Validity_Check
16806         (PE_Current_Task_In_Entry_Body): New exception code
16807         (SE_Restriction_Violation): Removed, not used
16808
16809 2006-10-31  Thomas Quinot  <quinot@adacore.com>
16810
16811         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
16812         error status.
16813
16814 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
16815             Jose Ruiz  <ruiz@adacore.com>
16816
16817         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
16818         part of Ada.Calendar: all subprogram raise Unimplemented.
16819         (Split_W_Offset): Temp function body, raising Unimplemented
16820
16821         * a-calend.ads, a-calend-vms.ads:
16822         Add imported variable Invalid_TZ_Offset used to designate targets unable
16823         to support time zones.
16824         (Unimplemented): Temporary function raised by the body of new
16825         subprograms below.
16826         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
16827         unit provides handling of leap seconds and is used by the new Ada 2005
16828         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
16829         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
16830         version returns an extra value which is the offset to UTC.
16831
16832         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
16833         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
16834         (Split_W_Offset): New function body.
16835         (Time_Of): When a date is close to UNIX epoch, compute the time for
16836         that date plus one day (that amount is later substracted after
16837         executing mktime) so there are no problems with time zone adjustments.
16838
16839         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
16840
16841         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
16842         a-catizo.ads, a-catizo.adb: New files.
16843
16844         * impunit.adb: Add new Ada 2005 entries
16845
16846         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
16847         Rename all occurences of "__gnat_localtime_r" to
16848         "__gnat_localtime_tzoff".
16849         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
16850         zone data and calculate the GMT offset.
16851         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
16852         Use the field "tm_gmtoff" to extract the GMT offset.
16853         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
16854         the external variable "timezone" to calculate the GMT offset.
16855
16856 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
16857             Jose Ruiz  <ruiz@adacore.com>
16858
16859         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb,
16860         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads,
16861         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
16862         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
16863         System.Any_Priority to a POSIX priority on the target.
16864
16865         * system-linux-ia64.ads:
16866         Extend range of Priority types on Linux to use the whole range made
16867         available by the system.
16868
16869         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
16870         function maps from System.Any_Priority to a POSIX priority on the
16871         target.
16872         (PTHREAD_PRIO_PROTECT): Set real value.
16873         (PTHREAD_PRIO_INHERIT): Now a function.
16874         (SIGCPUFAIL): New signal.
16875         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
16876         are documented as reserved by the OS.
16877
16878         * system-aix.ads: Use the full range of priorities provided by the
16879         system on AIX.
16880
16881         * s-taprop-posix.adb: Call new function To_Target_Priority.
16882         (Set_Priority): Take into account Task_Dispatching_Policy and
16883         Priority_Specific_Dispatching pragmas when determining if Round Robin
16884         must be used for scheduling the task.
16885
16886         * system-linux-x86_64.ads, system-linux-x86.ads,
16887         system-linux-ppc.ads: Extend range of Priority types on Linux to use
16888         the whole range made available by the system.
16889
16890         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb,
16891         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb,
16892         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
16893         when deallocating the TCB in order to avoid potential references to
16894         deallocated data.
16895         (Set_Priority): Take into account Task_Dispatching_Policy and
16896         Priority_Specific_Dispatching pragmas when determining if Round Robin
16897         or FIFO within priorities must be used for scheduling the task.
16898
16899         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
16900         the Thread field (to be used internally by the run-time system) and the
16901         kernel-level task id in the LWP field (to be used by the debugger).
16902         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
16903         instance, and propagate the current task options to the spawned task.
16904         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
16905         (Initialize): Set Round Robin dispatching when the corresponding pragma
16906         is in effect.
16907
16908 2006-10-31  Robert Dewar  <dewar@adacore.com>
16909
16910         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
16911         system-linux-hppa.ads, system-hpux-ia64.ads,
16912         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads,
16913         system-vxworks-sparcv9.ads, system-solaris-x86.ads,
16914         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
16915         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads,
16916         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
16917         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
16918         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
16919         Default_Bit_Order) to kill constant condition warnings for references
16920         to this switch.
16921
16922 2006-10-31  Vincent Celier  <celier@adacore.com>
16923             Eric Botcazou  <ebotcazou@adacore.com>
16924
16925         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
16926         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
16927         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
16928         Ext_To, when building the library file name
16929
16930         * mlib-tgt-vxworks.adb: ditto.
16931         (Get_Target_Suffix): Add support for x86 targets.
16932
16933         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
16934
16935         * mlib-tgt-darwin.adb:
16936         Use Append_To, instead of Ext_To, when building the library file name
16937         (Flat_Namespace): New global variable.
16938         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
16939         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
16940         (Link_Shared_Libgcc): Delete.
16941         (Build_Dynamic_Library): Adjust for above changes.
16942         Use Opt package.
16943         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
16944
16945 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
16946
16947         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
16948         (Initialize): Add type conversions required by above change.
16949
16950 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
16951
16952         * s-osinte-vxworks.ads, s-osinte-vxworks.adb:
16953         (getpid): New body for this function that uses the underlying taskIdSelf
16954         function for VxWorks 5 and VxWorks 6 in kernel mode.
16955         (unsigned_int): New type, modular to allow logical bit operations.
16956         (taskOptionsGet): New imported function.
16957
16958         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
16959         field to be compliant with the type used by the corresponding operating
16960         system primitive.
16961
16962 2006-10-31  Pascal Obry  <obry@adacore.com>
16963             Eric Botcazou  <ebotcazou@adacore.com>
16964             Vincent Celier  <celier@adacore.com>
16965
16966         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
16967         ASCII version of the registry API. This is needed as the GNAT runtime
16968         is now UNICODE by default.
16969         Include version.h.
16970         (get_gcc_version): Do not hardcode the return value.
16971         (__gnat_file_time_name): On Windows properly set the default returned
16972         value to -1 which corresponds to Invalid_Time.
16973         (__gnat_fopen): New routine. A simple wrapper on all plateforms
16974          except on Windows where it does conversion for unicode support.
16975         (__gnat_freopen): Idem.
16976         (__gnat_locate_exec_on_path): If environment variable PATH does not
16977         exist, return a NULL pointer
16978
16979         * adaint.h: (__gnat_fopen): Declare.
16980         (__gnat_freopen): Likewise.
16981
16982         * mingw32.h (_tfreopen): Define this macro here for older MingW
16983         version.
16984         Activate the unicode support on platforms using a MingW runtime
16985         version 3.9 or newer.
16986
16987         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
16988         This is needed for proper unicode support on Windows.
16989         (freopen): Idem.
16990
16991 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
16992             Nicolas Setton  <setton@adacore.com>
16993             Olivier Hainque  <hainque@adacore.com>
16994             Gary Dismukes  <dismukes@adacore.com>
16995
16996         * gigi.h: (tree_code_for_record_type): Declare.
16997         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
16998         (get_global_renaming_pointers): Rename to
16999         invalidate_global_renaming_pointers.
17000         (static_ctors): Delete.
17001         (static_dtors): Likewise.
17002         (gnat_write_global_declarations): Declare.
17003         (create_var_decl): Adjust descriptive comment to indicate that the
17004         subprogram may return a CONST_DECL node.
17005         (create_true_var_decl): Declare new function, similar to
17006         create_var_decl but forcing the creation of a VAR_DECL node.
17007         (get_global_renaming_pointers): Declare.
17008         (add_global_renaming_pointer): Likewise.
17009
17010         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
17011
17012         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
17013         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
17014         processing.
17015         (gnat_to_gnu_entity): Remove From_With_Type from computation for
17016         imported_p.
17017         <E_Access_Type>: Use the Non_Limited_View as the full view of the
17018         designated type if the pointer comes from a limited_with clause.  Make
17019         incomplete designated type if it is in the main unit and has a freeze
17020         node.
17021         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
17022         Underlying_Full_View similarly.  Return earlier if the full view already
17023         has an associated tree.
17024         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
17025         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
17026         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
17027         reference type built for objects with an address clause.
17028         Use create_true_var_decl with const_flag set for
17029         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
17030         TREE_READONLY set.
17031         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
17032         for Character and Wide_Character types. This info is read by the
17033         dwarf-2 writer, and is needed to be able to use the command "ptype
17034         character" in the debugger.
17035         (gnat_to_gnu_entity): When generating a type representing
17036         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
17037         so that debug writers can distinguish it from ordinary integers.
17038         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
17039         addition to TREE_READONLY to assert the constantness of variables for
17040         elaboration purposes.
17041         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
17042         parameters to call new Einfo function First_Formal_With_Extras.
17043         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
17044         protected type with its corresponding discriminant, to obtain a usable
17045         declaration
17046         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
17047         for a multiple elaboration of the "equivalent" type.
17048         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
17049         into record_global_renaming_pointer.
17050         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
17051         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
17052         <E_Array_Subtype>: Likewise.
17053         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
17054         incomplete subtypes and incomplete subtypes of incomplete types visible
17055         through a limited with clause.
17056         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
17057         the base index type for the maximum size of the array only if they are
17058         constant.
17059         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
17060         expression into a SAVE_EXPR if stabilization failed.
17061
17062         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
17063         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
17064         by lower level compilation passes.
17065         (gnat_genericize): New function, lowering a function body to GENERIC.
17066         Turn the type of RESULT_DECL into a real reference type if the decl
17067         has been marked DECL_BY_REFERENCE, and adjust references to the latter
17068         accordingly.
17069         (gnat_genericize_r): New function. Tree walking callback for
17070         gnat_genericize.
17071         (convert_from_reference, is_byref_result): New functions. Helpers for
17072         gnat_genericize_r.
17073         (create_type_decl): Call gnat_pushdecl before calling
17074         rest_of_decl_compilation, to make sure that field TYPE_NAME of
17075         type_decl is properly set before calling the debug information writers.
17076         (write_record_type_debug_info): The heuristics which compute the
17077         alignment of a field in a variant record might not be accurate. Add a
17078         safety test to make sure no alignment is set to a smaller value than
17079         the alignment of the field type.
17080         (make_dummy_type): Use the Non_Limited_View as the underlying type if
17081         the type comes from a limited_with clause. Do not loop on the full view.
17082         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
17083         (dummy_node_table): New global variable, moved from decl.c.
17084         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
17085         (save_gnu_tree): Use above macros.
17086         (get_gnu_tree): Likewise.
17087         (present_gnu_tree): Likewise.
17088         (init_dummy_type): New function, moved from decl.c. Use above macros.
17089         (make_dummy_type): Likewise.
17090         (tree_code_for_record_type): New function extracted from make_dummy_type
17091         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
17092         (static_ctors): Change it to a vector, make static.
17093         (static_dtors): Likewise.
17094         (end_subprog_body): Adjust for above change.
17095         (build_global_cdtor): Moved from trans.c.
17096         (gnat_write_global_declarations): Emit global constructor and
17097         destructor, and call cgraph_optimize before emitting debug info for
17098         global declarations.
17099         (global_decls): New global variable.
17100         (gnat_pushdecl): Store the global declarations in global_decls, for
17101         later use.
17102         (gnat_write_global_declarations): Emit debug information for global
17103          declarations.
17104         (create_var_decl_1): Former create_var_decl, with an extra argument to
17105          state whether the creation of a CONST_DECL is allowed.
17106         (create_var_decl): Behavior unchanged. Now a wrapper around
17107         create_var_decl_1 allowing CONST_DECL creation.
17108         (create_true_var_decl): New function, similar to create_var_decl but
17109         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
17110         (create_field_decl): Do not always mark the field as addressable
17111         if its type is an aggregate.
17112         (global_renaming_pointers): New static variable.
17113         (add_global_renaming_pointer): New function.
17114         (get_global_renaming_pointers): Likewise.
17115
17116         * misc.c (gnat_dwarf_name): New function.
17117         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
17118         (gnat_post_options): Add comment about structural alias analysis.
17119         (gnat_parse_file): Do not call cgraph_optimize here.
17120         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
17121
17122         * trans.c (process_freeze_entity): Don't abort if we already have a
17123         non dummy GCC tree for a Concurrent_Record_Type, as it might
17124         legitimately have been elaborated while processing the associated
17125         Concurrent_Type prior to this explicit freeze node.
17126         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
17127         exception handler volatile if it is of variable size.
17128         (process_type): Remove bypass for types coming from a limited_with
17129         clause.
17130         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
17131         actual, convert the corresponding gnu_actual to the real destination
17132         type when necessary.
17133         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
17134         originally TREE_READONLY but whose elaboration cannot be performed
17135         statically.
17136         Part of fix for F504-021.
17137         (tree_transform, subprogram cases): Change loops on formal parameters to
17138         call new Einfo function First_Formal_With_Extras.
17139         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
17140         stemming from type conversion for the lhs.
17141         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
17142         number of bits per unit for components of records.
17143         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
17144         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
17145         with At_End_Proc after the SJLJ EH cleanup.
17146         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
17147         compilation unit.
17148         (elaborate_all_entities): Do not retest type_annotate_only.
17149         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
17150         result type of an abstract subprogram, which may be an itype associated
17151         with an anonymous access result (related to AI-318-02).
17152         (build_global_cdtor): Move to utils.c.
17153         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
17154         this choice is not a null tree nor an integer constant.
17155         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
17156         on the body of elaboration routines instead of mark_unvisited.
17157         (add_stmt): Do not mark the tree.
17158         (add_decl_expr): Tweak comment.
17159         (mark_unvisited): Delete.
17160         (unshare_save_expr): New static function.
17161         (call_to_gnu): Issue an error when making a temporary around a
17162         procedure call because of non-addressable actual parameter if the
17163         type of the formal is by_reference.
17164         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
17165         after building the elaboration routine.
17166
17167 2006-10-31  Bob Duff  <duff@adacore.com>
17168
17169         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
17170         as finalization-started, so we can raise Program_Error on 'new'.
17171
17172         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
17173         collection has already started.
17174
17175         * s-finimp.ads (Collection_Finalization_Started): Added new special
17176         flag value for indicating that a collection's finalization has started.
17177
17178         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
17179         create a task whose master has already waited for dependent tasks.
17180
17181 2006-10-31  Robert Dewar  <dewar@adacore.com>
17182
17183         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
17184
17185         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
17186         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
17187         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
17188         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
17189         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
17190         a-except-2005.ads: Add pragma Preelaborable_Warning
17191
17192 2006-10-31  Robert Dewar  <dewar@adacore.com>
17193             Jose Ruiz  <ruiz@adacore.com>
17194
17195         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
17196
17197         * ali.adb (Get_Name): Properly handle scanning of wide character names
17198         encoded with brackets notation.
17199         (Known_ALI_Lines): Add S lines to this list.
17200         (Scan_ALI): Acquire S (priority specific dispatching) lines.
17201         New flag Elaborate_All_Desirable in unit table
17202
17203         * ali.ads (Priority_Specific_Dispatching): Add this range of
17204         identifiers to be used for Priority_Specific_Dispatching table entries.
17205         (ALIs_Record): Add First_Specific_Dispatching and
17206         Last_Specific_Dispatching that point to the first and last entries
17207         respectively in the priority specific dispatching table for this unit.
17208         (Specific_Dispatching): Add this table for storing each S (priority
17209         specific dispatching) line encountered in the input ALI file.
17210         New flag Elaborate_All_Desirable in unit table
17211
17212         * bcheck.adb: (Check_Configuration_Consistency): Add call to
17213         Check_Consistent_Dispatching_Policy.
17214         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
17215         verifying that the use of Priority_Specific_Dispatching,
17216         Task_Dispatching_Policy, and Locking_Policy is consistent across the
17217         partition.
17218
17219         * bindgen.adb: (Public_Version_Warning): function removed.
17220         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
17221         required information from ALI files in order to initialize the table
17222         containing the specific dispatching policy.
17223         (Gen_Adainit_Ada): Generate the variables required for priority specific
17224         dispatching entries (__gl_priority_specific_dispatching and
17225         __gl_num_specific_dispatching).
17226         (Gen_Adainit_C): Generate the variables required for priority specific
17227         dispatching entries (__gl_priority_specific_dispatching and
17228         __gl_num_specific_dispatching).
17229         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
17230         pragma entries.
17231         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
17232         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
17233         (Tab_To): Removed.
17234         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
17235         a call to gnat_set_globals.
17236         Generate a string containing settings from
17237         Priority_Specific_Dispatching pragma entries.
17238         (Gen_Object_Files_Options): Do not include the runtime libraries when
17239         pragma No_Run_Time is specified.
17240
17241         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
17242         consistency with s-intman-posix.adb.
17243         (__gnat_error_handler, case FreeBSD): Account for the fact that the
17244         handler is installed with SA_SIGINFO.
17245         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
17246         FreeBSD ZCX support, copied from Linux version.
17247         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
17248         sigfillset, and sigemptyset so the routines defined by MaRTE.
17249         (__gl_priority_specific_dispatching): Add this variable that stores the
17250         string containing priority specific dispatching policies in the
17251         partition.
17252         (__gl_num_specific_dispatching): Add this variable that indicates the
17253         highest priority for which a priority specific dispatching pragma
17254         applies.
17255         (__gnat_get_specific_dispatching): Add this routine that returns the
17256         priority specific dispatching policy, as set by a
17257         Priority_Specific_Dispatching pragma appearing anywhere in the current
17258         partition. The input argument is the priority number, and the result
17259         is the upper case first character of the policy name.
17260         (__gnat_set_globals): Now a dummy function.
17261         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
17262         mechargs instead of sigargs, as the latter can be retrieved from the
17263         former and sigargs is not what we want on ia64.
17264         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
17265         mechargs argument.
17266         (__gnat_adjust_context_for_raise, ia64-vms): New function.
17267         (tasking_error): Remove unused symbol.
17268         (_abort_signal): Move this symbol to the IRIX specific part since this
17269         is the only target that uses this definition.
17270         (Check_Abort_Status): Move this symbol to the IRIX specific part since
17271         this is the only target that uses this definition.
17272         (Lock_Task): Remove unused symbol.
17273         (Unlock_Task): Remove unused symbol.
17274
17275         * lib-writ.adb (Write_ALI): Output new S lines for
17276         Priority_Specific_Dispatching pragmas.
17277         Implement new flag BD for elaborate body desirable
17278
17279         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
17280         (Specific_Dispatching): Add this table for storing the entries
17281         corresponding to Priority_Specific_Dispatching pragmas.
17282         Document new BD flag for elaborate body desirable
17283
17284         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
17285         of known pragmas.
17286
17287 2006-10-31  Javier Miranda  <miranda@adacore.com>
17288
17289         * a-tags.ads, a-tags.adb:
17290         (Predefined_DT): New function that improves readability of the code.
17291         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
17292         Inherit_DT): Use the new function Predefined_DT to improve code
17293         readability.
17294         (Register_Interface_Tag): Update assertion.
17295         (Set_Interface_Table): Update assertion.
17296         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
17297         determining progenitor interfaces in Tags.
17298         (Inherit_CPP_DT): New subprogram.
17299
17300         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
17301         analysis of the thunk code.
17302         (Expand_Interface_Conversion): Handle run-time conversion of
17303         access to class wide types.
17304         (Expand_Dispatching_Call): When generating the profile for the
17305         subprogram itype for a dispatching operation, properly terminate the
17306         formal parameters chaind list (set the Next_Entity of the last formal
17307         to Empty).
17308         (Collect_All_Interfaces): Removed. This routine has been moved to
17309         sem_util and renamed as Collect_All_Abstract_Interfaces.
17310         (Set_All_DT_Position): Hidden entities associated with abstract
17311         interface primitives are not taken into account in the check for
17312         3.9.3(10); this check is done with the aliased entity.
17313         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
17314         interfacing with CPP by default.
17315         (Expand_Interface_Conversion): Add missing support for static conversion
17316         from an interface to a tagged type.
17317         (Collect_All_Interfaces): Add new out formal containing the list of
17318         abstract interface types to cleanup the subprogram Make_DT.
17319         (Make_DT): Update the code to generate the table of interfaces in case
17320         of abstract interface types.
17321         (Is_Predefined_Dispatching_Alias): New function that returns true if
17322         a primitive is not a predefined dispatching primitive but it is an
17323         alias of a predefined dispatching primitive.
17324         (Make_DT): If the ancestor of the type is a CPP_Class and we are
17325         compiling under full ABI compatibility mode we avoid the generation of
17326         calls to run-time services that fill the dispatch tables because under
17327         this mode we currently inherit the dispatch tables in the IP subprogram.
17328         (Write_DT): Emit an "is null" indication for a null procedure primitive.
17329         (Expand_Interface_Conversion): Use an address as the type of the formal
17330         of the internally built function that handles the case in which the
17331         target type is an access type.
17332
17333 2006-10-31  Robert Dewar  <dewar@adacore.com>
17334
17335         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
17336
17337 2006-10-31  Robert Dewar  <dewar@adacore.com>
17338
17339         * bindusg.ads, bindusg.adb:
17340         Change to package and rename procedure as Display, which
17341         now ensures that it only outputs usage information once.
17342
17343 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
17344
17345         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
17346         using RTPs.
17347
17348         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
17349         when using RTPs.
17350
17351 2006-10-31  Robert Dewar  <dewar@adacore.com>
17352             Ed Schonberg  <schonberg@adacore.com>
17353
17354         * treepr.adb: Use new subtype N_Membership_Test
17355
17356         * checks.ads, checks.adb: Add definition for Validity_Check
17357         (Range_Or_Validity_Checks_Suppressed): New function
17358         (Ensure_Valid): Test Validity_Check suppressed
17359         (Insert_Valid_Check): Test Validity_Check suppressed
17360         (Insert_Valid_Check): Preserve Do_Range_Check flag
17361         (Validity_Check_Range): New procedure
17362         (Expr_Known_Valid): Result of membership test is always valid
17363         (Selected_Range_Checks): Range checks cannot be applied to discriminants
17364         by themselves. Disabling those checks must also be done for task types,
17365         where discriminants may be used for the bounds of entry families.
17366         (Apply_Address_Clause_Check): Remove side-effects if address expression
17367         is non-static and is not the name of a declared constant.
17368         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
17369         Code cleanup and new error messages.
17370         (Enable_Range_Check): Test for some cases of suppressed checks
17371         (Generate_Index_Checks): Suppress index checks if index checks are
17372         suppressed for array object or array type.
17373         (Apply_Selected_Length_Checks): Give warning for compile-time detected
17374         length check failure, even if checks are off.
17375         (Ensure_Valid): Do not generate a check on an indexed component whose
17376         prefix is a packed boolean array.
17377         * checks.adb: (Alignment_Checks_Suppressed): New function
17378         (Apply_Address_Clause_Check): New procedure, this is a completely
17379         rewritten replacement for Apply_Alignment_Check
17380         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
17381         we request a discriminal value only in case of discriminants.
17382         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
17383         assignments where the target subtype is unconstrained and the target
17384         object is a parameter or dereference (other aliased cases are known
17385         to be unconstrained).
17386
17387 2006-10-31  Robert Dewar  <dewar@adacore.com>
17388
17389         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
17390         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
17391         vms_conv.adb: Fix bad table increment values (much too small)
17392
17393         * table.adb (Realloc): Make sure we get at least some new elements
17394         Defends against silly small values for table increment
17395
17396 2006-10-31  Robert Dewar  <dewar@adacore.com>
17397             Ed Schonberg  <schonberg@adacore.com>
17398             Bob Duff  <duff@adacore.com>
17399
17400         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
17401         entities. Move other fields around to make this possible
17402         (Is_Derived_Type): Add missing call to Is_Type.
17403         (Extra_Formals): New function for subprograms, entries, subprogram
17404         types.
17405         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
17406         (First_Formal_With_Extras): New function for subprogs, entries, subp
17407         types.
17408         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
17409         Add node information for E_Return_Statement.
17410         (Elaborate_Body_Desirable): New flag
17411         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
17412         to be Is_Inherently_Limited_Type, because return-by-reference has
17413         no meaning in Ada 2005.
17414         (E_Return_Statement): New entity kind.
17415         (Return_Applies_To): Field of E_Return_Statement.
17416         (Is_Return_Object): New flag in object entities.
17417         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
17418         (Must_Have_Preelab_Init): New flag
17419         (Known_To_Have_Preelab_Init): New flag
17420         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
17421         (Is_Visible_Formal): New flag on entities in formal packages.
17422         (Low_Bound_Known): New flag
17423         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
17424         Incomplete_Kind.
17425         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
17426         output when Id is an incomplete subtype.
17427
17428 2006-10-31  Robert Dewar  <dewar@adacore.com>
17429
17430         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
17431         Avoid abbreviation Creat
17432         (Finalize): List all sources in extended mail source if -gnatl
17433         switch is active.
17434         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
17435         (Finalize): Implement new -gnatl=xxx switch to output listing to file
17436         (Set_Specific_Warning_On): New procedure
17437         (Set_Specific_Warning_Off): New procedure
17438         Add implementation of new insertion \\
17439         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
17440         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
17441         types.
17442         (Error_Msg_Internal): Make sure that we set Last_Killed to
17443         True when a message from another package is suppressed.
17444         Implement insertion character ~ (insert string)
17445         (First_Node): Minor adjustments to get better placement.
17446
17447         * frontend.adb:
17448         Implement new -gnatl=xxx switch to output listing to file
17449
17450         * gnat1drv.adb:
17451         Implement new -gnatl=xxx switch to output listing to file
17452
17453         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
17454         (Commands_To_Stdout): New flag
17455         Implement new -gnatl=xxx switch to output listing to file
17456         New switch Dump_Source_Text
17457         (Warn_On_Deleted_Code): New warning flag for -gnatwt
17458         Define Error_Msg_Line_Length
17459         (Warn_On_Assumed_Low_Bound): New switch
17460
17461         * osint.ads, osint.adb
17462         (Normalize_Directory_Name): Fix bug.
17463         Implement new -gnatl=xxx switch to output listing to file
17464         (Concat): Removed, replaced by real concatenation
17465         Make use of concatenation now allowed in compiler
17466         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
17467         we find the 'lib' or 'bin' directory even when the tool has been
17468         invoked with a relative path.
17469         (Executable_Name): New function taking string parameters.
17470
17471         * osint-c.ads, osint-c.adb:
17472         Implement new -gnatl=xxx switch to output listing to file
17473
17474         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
17475
17476         * switch-c.adb:
17477         Implement new -gnatl=xxx switch to output listing to file
17478         Recognize new -gnatL switch
17479         (no longer keep in old warning about old style usage)
17480         Use concatenation to simplify code
17481         Recognize -gnatjnn switch
17482         (Scan_Front_End_Switches): Clean up handling of -gnatW
17483         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
17484
17485 2006-10-31  Robert Dewar  <dewar@adacore.com>
17486
17487         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
17488         (Set_Specific_Warning_Off): New procedure
17489         (Warning_Specifically_Suppressed): New function
17490         (Validate_Specific_Warnings): New procedure
17491         (Output_Msg_Text): Complete rewrite to support -gnatjnn
17492
17493         * err_vars.ads: Implement insertion character ~ (insert string)
17494
17495 2006-10-31  Bob Duff  <duff@adacore.com>
17496             Ed Schonberg  <schonberg@adacore.com>
17497
17498         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
17499         the parent part is a build-in-place function call, generate assignments.
17500         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
17501         are build-in-place function calls.
17502         (Replace_Self_Reference): New subsidiary of
17503         Make_OK_Assignment_Statement, to replace an access attribute that is a
17504         self-reference into an access to the appropriate component of the
17505         target object. Generalizes previous mechanism to handle self-references
17506         nested at any level.
17507         (Is_Self_Referential_Init): Remove, not needed.
17508         (Is_Self_Referential_Init): New predicate to simplify handling of self
17509         referential components in record aggregates.
17510         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
17511         check for presence of entity before checking for self-reference.
17512         (Has_Default_Init_Comps): Return True if a component association is a
17513         self-reference to the enclosing type, which can only come from a
17514         default initialization.
17515         (Make_OK_Assignment_Statement): If the expression is of the form
17516         Typ'Acc, where Acc is an access attribute, the expression comes from a
17517         default initialized self-referential component.
17518         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
17519         that has been derived from several abstract interfaces we must also
17520         initialize the tags of the secondary dispatch tables.
17521
17522 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
17523             Thomas Quinot  <quinot@adacore.com>
17524             Javier Miranda  <miranda@adacore.com>
17525             Robert Dewar  <dewar@adacore.com>
17526
17527         * exp_attr.adb:
17528         (Expand_Access_To_Protected_Op): If the context indicates that an access
17529         to a local operation may be transfered outside of the object, create an
17530         access to the wrapper operation that must be used in an external call.
17531         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
17532         target, pass the Valid attribute applied to a floating-point prefix on
17533         to the back end without expansion.
17534         (Storage_Size): Use the new run-time function Storage_Size to retrieve
17535         the allocated storage when it is specified by a per-object expression.
17536         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
17537         Nothing to do here, the attribute has been rewritten during semantic
17538         analysis.
17539         (Expand_Attribute_Reference): Handle expansion of the new Priority
17540         attribute
17541         (Find_Fat_Info): Handle case of universal real
17542         (Expand_Access_To_Protected_Op): Fix use of access to protected
17543         subprogram from inside the body of a protected entry.
17544         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
17545         'Access and 'Unrestricted_Access, to transform the attribute reference
17546         into a fat pointer.
17547         (Is_Constrained_Aliased_View): New predicate to help determine whether a
17548         subcomponent's enclosing variable is aliased with a constrained subtype.
17549         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
17550         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
17551         an aliased prefix must be known to be constrained in order to use True
17552         for the attribute value, and now it's possible for some aliased views
17553         to be unconstrained.
17554
17555 2006-10-31  Robert Dewar  <dewar@adacore.com>
17556
17557         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
17558         (Expand_Entity_Reference): Correct error of not handling subprogram
17559         formals in current_value processing.
17560
17561 2006-10-31  Javier Miranda  <miranda@adacore.com>
17562             Robert Dewar  <dewar@adacore.com>
17563             Ed Schonberg  <schonberg@adacore.com>
17564             Gary Dismukes  <dismukes@adacore.com>
17565
17566         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
17567         register in the final list objects containing class-wide interfaces;
17568         otherwise we incorrectly register the tag of the interface in the final
17569         list.
17570         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
17571         generate the wrapper if the parent primitive is abstract. This is
17572         required to report the correct error message.
17573         (Expand_N_Subtype_Indication): Do validity checks on range
17574         (Clean_Task_Names): If an initialization procedure includes a call to
17575         initialize a task (sub)component, indicate that the procedure will use
17576         the secondary stack.
17577         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
17578         compatibility for interfacing with CPP by default.
17579         (Expand_N_Object_Declaration): Only build an Adjust call when the
17580         object's type is a nonlimited controlled type.
17581         * exp_ch3.adb: Add with and use of Exp_Ch6.
17582         (Expand_N_Object_Declaration): Check for object initialization that is a
17583         call to build-in-place function and apply Make_Build_In_Place_Call_In_
17584         Object_Declaration to the call.
17585         (Freeze_Type): When the designated type of an RACW was not frozen at the
17586         point where the RACW was declared, validate the primitive operations
17587         with respect to E.2.2(14) when it finally is frozen.
17588         (Build_Initialization_Call,Expand_Record_Controller): Rename
17589         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
17590         return-by-reference has no meaning in Ada 2005.
17591         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
17592         to register tag of the immediate ancestor interfaces in the
17593         run-time structure.
17594         (Init_Secondary_Tags): Moved to the specification to allow the
17595         initialization of extension aggregates with abstract interfaces.
17596         (Build_Master_Renaming): Make public, for use by function declarations
17597         whose return type is an anonymous access type.
17598         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
17599         Insert_List_Before_And_Analyze after the generation of the specs
17600         associated with null procedures.
17601         (Expand_Tagged_Root): Update documentation in its specification.
17602         (Init_Secondary_Tags): Update documentation.
17603         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
17604         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
17605         then generate code to inherit the contents of the dispatch table
17606         directly from the ancestor.
17607         (Expand_Record_Controller): Insert controller component after tags of
17608         implemented interfaces.
17609         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
17610         create null procedure overridings when null procedures are inherited
17611         from interfaces.
17612         (Make_Null_Procedure_Specs): New procedure to generate null procedure
17613         declarations for overriding null primitives inherited from interfaces.
17614         (Is_Null_Interface_Procedure): New function in
17615         Make_Null_Procedure_Specs.
17616         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
17617         immediate ancestor of a tagged type is an abstract interface type we
17618         must generate the specification of the predefined primitives associated
17619         with controlled types (because the dispatch table of the ancestor is
17620         null and hence these entries cannot be inherited). This is required to
17621         elaborate well the dispatch table.
17622
17623 2006-10-31  Javier Miranda  <miranda@adacore.com>
17624             Ed Schonberg  <schonberg@adacore.com>
17625             Bob Duff  <duff@adacore.com>
17626             Gary Dismukes  <dismukes@adacore.com>
17627             Robert Dewar  <dewar@adacore.com>
17628
17629         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
17630         conversion.
17631         (Expand_N_In): Do validity checks on range
17632         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
17633         (Expand_N_Allocator): For "new T", if the object is constrained by
17634         discriminant defaults, allocate the right amount of memory, rather than
17635         the maximum for type T.
17636         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
17637         when the allocator is initialized by a build-in-place call, since the
17638         allocator is already rewritten as a reference to the function result,
17639         and this prevents an unwanted duplication of the function call.
17640         Add with and use of Exp_Ch6.
17641         (Expand_Allocator_Expresssion): Check for an allocator whose expression
17642         is a call to build-in-place function and apply
17643         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
17644         untagged designated types).
17645         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
17646         optimization if source or target is biased.
17647         (Expand_N_Allocator): Add comments for case of an allocator within a
17648         function that returns an anonymous access type designating tasks.
17649         (Expand_N_Allocator): apply discriminant checks for access
17650         discriminants of anonymous access types (AI-402, AI-416)
17651
17652 2006-10-31  Bob Duff  <duff@adacore.com>
17653             Robert Dewar  <dewar@adacore.com>
17654             Gary Dismukes  <dismukes@adacore.com>
17655             Ed Schonberg  <schonberg@adacore.com>
17656
17657         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
17658
17659         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
17660         (Expand_N_Assignment_Statement): Call
17661         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
17662         build-in-place function call. Currently, this can happen only for
17663         assignments that come from aggregates.
17664         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
17665         in order to alleviate the upward compatibility introduced by AI-318.
17666         (Expand_N_Extended_Return_Statement): Add support for handling the
17667         return object as a build-in-place result.
17668         (Expand_Non_Function_Return): Implement simple return statements nested
17669         within an extended return.
17670         (Enable_New_Return_Processing): Turn on the new processing of return
17671         statements.
17672         (Expand_Non_Function_Return): For a return within an extended return,
17673         don't raise Program_Error, because Sem_Ch6 now gives a warning.
17674         (Expand_N_Extended_Return_Statement): Implement AI-318
17675         (Expand_Simple_Function_Return): Ditto.
17676         (Expand_N_If_Statement): Handle new -gnatwt warning
17677         (Expand_N_Case_Statement): Handle new -gnatwt warning
17678         (Expand_N_Assignment): Handle assignment to the Priority attribute of
17679         a protected object.
17680         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
17681         validity checking of assignments to elementary record components.
17682         (Expand_N_Return_Statement): return Class Wide types on the secondary
17683         stack independantly of their controlled status since with HIE runtimes,
17684         class wide types are not potentially controlled anymore.
17685
17686         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
17687         node kind.
17688
17689         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
17690         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
17691         it expects a block, procedure, or task. The return statement will get
17692         turned into a block, and Expand_Cleanup_Actions will happen then.
17693
17694 2006-10-31  Robert Dewar  <dewar@adacore.com>
17695             Ed Schonberg  <schonberg@adacore.com>
17696             Bob Duff  <duff@adacore.com>
17697             Gary Dismukes  <dismukes@adacore.com>
17698
17699         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
17700         capability.
17701         (Expand_Inlined_Call): Tagged types are by-reference types, and
17702         therefore should be replaced by a renaming declaration in the expanded
17703         body, as is done for limited types.
17704         (Expand_Call): If this is a call to a function with dispatching access
17705         result, propagate tag from context.
17706         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
17707         CPP by default.
17708         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
17709         build-in-place when the right-hand side of an assignment is a
17710         build-in-place function call.
17711         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
17712         of the explicit dereference of the allocator to the result subtype of
17713         the build-in-place function. This is needed to satisfy type checking
17714         in cases where the caller's return object is created by an allocator for
17715         a class-wide access type and the type named in the allocator is a
17716         specific type.
17717         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
17718         conversion of the reference to the declared object to the result subtype
17719         of the build-in-place function. This is needed to satisfy type checking
17720         in cases where the declared object has a class-wide type. Also, in the
17721         class-wide case, change the type of the object entity to the specific
17722         result subtype of the function, to avoid passing a class-wide object
17723         without explicit initialization to the back end.
17724         (Register_Interface_DT_Entry): Moved outside the body of
17725         Freeze_Subprogram because this routine is now public; it is called from
17726         Check_Dispatching_Overriding to handle late overriding of abstract
17727         interface primitives.
17728         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
17729         adding an implicit access actual on a call to a build-in-place function.
17730         (Expand_Actuals): Test for an actual parameter that is a call to a
17731         build-in-place function and apply
17732         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
17733         (Is_Build_In_Place_Function): New function to determine whether an
17734         entity is a function whose calls should be handled as build-in-place.
17735         (Is_Build_In_Place_Function_Call): New function to determine whether an
17736         expression is a function call that should handled as build-in-place.
17737         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
17738         calls to build-in-place functions as the initialization of an allocator.
17739         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
17740         handling calls to build-in-place functions in contexts that do not
17741         involve init of a separate object (for example, actuals of subprogram
17742         calls).
17743         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
17744         handling calls to build-in-place functions as the initialization of an
17745         object declaration.
17746         (Detect_Infinite_Recursion): Add explicit parameter Process to
17747         instantiation of Traverse_Body to avoid unreferenced warning.
17748         (Check_Overriding_Inherited_Interfaces): Removed.
17749         (Register_Interface_DT_Entry): Code cleanup.
17750         (Register_Predefined_DT_Entry): Code cleanup.
17751         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
17752         inlined statements if within a transient scope.
17753         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
17754         formal parameters with occurrences of actuals in inlined body, establish
17755         visibility on the proper view of the actual's subtype for the body's
17756         context.
17757         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
17758         compatibility mode and we have an imported CPP subprogram because
17759         for now we assume that imported CPP primitives correspond with
17760         objects whose constructor is in the CPP side (and therefore we
17761         don't need to generate code to register them in the dispatch table).
17762         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
17763         aligned selected component.
17764         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
17765         the actual of an in-mode parameter is a type conversion.
17766         (Expand_Actuals): If the call does not come from source and the actual
17767         is potentially misaligned, let gigi handle it rather than rejecting the
17768         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
17769         Class Wide types as returning by reference independantly of their
17770         controlled status since with HIE runtimes class wide types are not
17771         potentially controlled anymore.
17772
17773 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
17774
17775         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
17776         references that are private components of the protected object.
17777         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
17778         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
17779         instantiation to deal with warnings.
17780         (Initialize_Protection): If expression for priority is non-static, use
17781         System_Priority as its expected type, in case the expression has not
17782         been analyzed yet.
17783
17784 2006-10-31  Robert Dewar  <dewar@adacore.com>
17785
17786         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
17787         initialization of Homonym_Len.
17788         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
17789         names from fully qualified name. Fixes problem of duplicate
17790         external names differing only in the presence of such a block name.
17791
17792 2006-10-31  Thomas Quinot  <quinot@adacore.com>
17793             Pablo Oliveira  <oliveira@adacore.com>
17794
17795         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
17796         subprogram Ids, even if they are not yet assigned.
17797         (Build_Subprogram_Id): It is now this function that will take care of
17798         calling Assign_Subprogram_Ids if necessary.
17799         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
17800         should be done only once they are assigned.
17801         (Build_From_Any_Function, case of tagged types): Add missing call to
17802         Allocate_Buffer.
17803         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
17804         type for an RACW type.
17805         (Add_RACW_Features): When processing an RACW declaration for which the
17806         designated type is already frozen, enforce E.2.2(14) rules immediately.
17807         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
17808         special reordering of controlling formals.
17809
17810         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
17811         associated stub type for an RACW type.
17812
17813 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
17814
17815         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
17816         fixed-point operations in an integer context, i.e. as operands of a
17817         conversion to an integer type, indicate that result must be rounded.
17818
17819 2006-10-31  Robert Dewar  <dewar@adacore.com>
17820
17821         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
17822         cases, pass the encoding method, since it is now required by the run
17823         time.
17824
17825         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
17826         assumption that Str'First = 1.
17827         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
17828         it on to the Value_Wide_Wide_Character call.
17829         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
17830         properly handles a string of the form quote-encoded_wide_char-quote.
17831
17832         * s-wchcnv.adb: Minor reformatting
17833
17834 2006-10-31  Javier Miranda  <miranda@adacore.com>
17835
17836         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
17837         run-time membership test to ensure that the constructed object
17838         implements the target abstract interface.
17839
17840 2006-10-31  Robert Dewar  <dewar@adacore.com>
17841
17842         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
17843         Machine_Attribute pragma internally to implement the user pragma.
17844         Add processing for pragma Interface so that it is now completely
17845         equivalent to pragma Import.
17846
17847         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
17848         so that it can be applied to all entities, including record components
17849         and enumeration literals.
17850         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
17851         priority ranges are correct, verify compatibility against task
17852         dispatching and locking policies, and if everything is correct an entry
17853         is added to the table containing priority specific dispatching entries
17854         for this compilation unit.
17855         (Delay_Config_Pragma_Analyze): Delay processing
17856         Priority_Specific_Dispatching pragmas because when processing the
17857         pragma we need to access run-time data, such as the range of
17858         System.Any_Priority.
17859         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
17860         Allow pragma Unreferenced as a context item
17861         Add pragma Preelaborable_Initialization
17862         (Analyze_Pragma, case Interface): Interface is extended so that it is
17863         now syntactically and semantically equivalent to Import.
17864         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
17865         insertion characters.
17866         Add handling for Pragma_Wide_Character_Encoding
17867         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
17868         never supercedes a real restriction, and that a real restriction
17869         always supercedes a warning.
17870         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
17871         appropriate form.
17872
17873 2006-10-31  Bob Duff  <duff@adacore.com>
17874             Ed Schonberg  <schonberg@adacore.com>
17875             Robert Dewar  <dewar@adacore.com>
17876
17877         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
17878         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
17879         Is_Inherently_Limited_Type, because return-by-reference has no meaning
17880         in Ada 2005.
17881         (Find_Node_To_Be_Wrapped): Use new method of determining the result
17882         type of the function containing a return statement, because the
17883         Return_Type field was removed. We now use the Return_Applies_To field.
17884
17885         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
17886         (Build_Task_Image_Decl): If procedure is not called from an
17887         initialization procedure, indicate that function that builds task name
17888         uses the sec. stack. Otherwise the enclosing initialization procedure
17889         will carry the indication.
17890         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
17891         N_Object_Declaration instead.
17892         (Kill_Dead_Code): New interface to implement -gnatwt warning for
17893         conditional dead code killed, and change implementation accordingly.
17894         (Insert_Actions): Add N_Return_Object_Declaration case.
17895         Correct comment to mention N_Extension_Aggregate node.
17896         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
17897         attempts to save information for global variables which cannot be
17898         safely tracked.
17899         (Get_Current_Value_Condition): Handle conditions the other way round
17900         (constant on left). Also handle right operand of AND and AND THEN
17901         (Set_Current_Value_Condition): Corresponding changes
17902         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
17903         (Get_Current_Value_Condition): Handle simple boolean operands
17904         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
17905         (Get_Current_Value_Condition): If the variable reference is within an
17906         if-statement, does not appear in the list of then_statments, and does
17907         not come from source, treat it as being at unknown location.
17908         (Get_Current_Value_Condition): Enhance to allow while statements to be
17909         processed as well as if statements.
17910         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
17911         come from source.
17912         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
17913         of loop. This is safe now that we fixed Kill_Current_Values.
17914         (OK_To_Do_Constant_Replacement): Check whether current scope is
17915         Standard, before examining outer scopes.
17916
17917 2006-10-31  Vincent Celier  <celier@adacore.com>
17918
17919         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
17920         When True, apply VMS treatment to children of packages A, G, I and S.
17921         For F320-016
17922
17923         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
17924
17925 2006-10-31  Robert Dewar  <dewar@adacore.com>
17926             Ed Schonberg  <schonberg@adacore.com>
17927
17928         * freeze.adb: Add handling of Last_Assignment field
17929         (Warn_Overlay): Supply missing continuation marks in error msgs
17930         (Freeze_Entity): Add check for Preelaborable_Initialization
17931
17932         * g-comlin.adb: Add Warnings (Off) to prevent new warning
17933
17934         * g-expect.adb: Add Warnings (Off) to prevent new warning
17935
17936         * lib-xref.adb: Add handling of Last_Assignment field
17937         (Generate_Reference): Centralize handling of pragma Obsolescent here
17938         (Generate_Reference): Accept an implicit reference generated for a
17939         default in an instance.
17940         (Generate_Reference): Accept a reference for a node that is not in the
17941         main unit, if it is the generic body corresponding to an subprogram
17942         instantiation.
17943
17944         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
17945
17946         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
17947         -gnatwq/Q.
17948         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
17949         exception handler.
17950         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
17951         use clauses, to avoid messages on packages used to qualify, and also
17952         to avoid messages from obsolescent units.
17953         (Warn_On_Useless_Assignments): Don't generate messages for imported
17954         and exported variables.
17955         (Warn_On_Useless_Assignments): New procedure
17956         (Output_Obsolescent_Entity_Warnings): New procedure
17957         (Check_Code_Statement): New procedure
17958
17959         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
17960         Change name Is_Ada_2005 to Is_Ada_2005_Only
17961         (Last_Assignment): New field for useless assignment warning
17962
17963 2006-10-31  Olivier Hainque  <hainque@adacore.com>
17964
17965         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
17966         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
17967
17968 2006-10-31  Bob Duff  <duff@adacore.com>
17969             Robert Dewar  <dewar@adacore.com>
17970             Ed Schonberg  <schonberg@adacore.com>
17971
17972         * g-awk.adb (Default_Session, Current_Session): Compile this file in
17973         Ada 95 mode, because it violates the new rules for AI-318.
17974
17975         * g-awk.ads: Use overloaded subprograms in every case where we used to
17976         have a default of Current_Session. This makes the code closer to be
17977         correct for both Ada 95 and 2005.
17978
17979         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
17980         code, relying on the fact that the compiler generates a warning
17981         instead of an error in -gnatg mode.
17982
17983         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
17984         E_Return_Statement entity kind.
17985         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
17986
17987         * par.adb (P_Interface_Type_Definition): Addition of one formal to
17988         report an error if the reserved word abstract has been previously found.
17989         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
17990
17991         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
17992         parenthesized range attribute usage
17993         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
17994
17995         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
17996         in the syntax for extended_return_statement. This is not in the latest
17997         RM, but the ARG is expected to issue an AI allowing this.
17998         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
17999         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
18000         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
18001         P_Return_Statement): Parse the new syntax for extended_return_statement.
18002
18003         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
18004         Output_End_Missing): Add error-recovery code for the new
18005         extended_return_statement syntax; that is, the new E_Return entry on
18006         the scope stack.
18007
18008         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
18009         limited to nonlimited, because otherwise we violate the new Ada 2005
18010         rules about returning limited types in function Create_AST_Handler in
18011         s-asthan.adb.
18012
18013         * sem.adb (Analyze): Add cases for new node kinds
18014         N_Extended_Return_Statement and N_Return_Object_Declaration.
18015
18016         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
18017         type is in the same category as type of context before applying check,
18018         to prevent anomalies in instantiations.
18019         (Resolve_Aggregate): Remove test for limited components in aggregates.
18020         It's unnecessary in Ada 95, because if it has limited components, then
18021         it must be limited. It's wrong in Ada 2005, because limited aggregates
18022         are now allowed.
18023         (Resolve_Record_Aggregate): Move check for limited types later, because
18024         OK_For_Limited_Init requires its argument to have been resolved.
18025         (Get_Value): When copying the component default expression for a
18026         defaulted association in an aggregate, use the sloc of the aggregate
18027         and not that of the original expression, to prevent spurious
18028         elaboration errors, when the expression includes function calls.
18029         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
18030         were missing. We also didn't handle qualified expressions. Now also
18031         allow function calls. Use new common routine OK_For_Limited_Init.
18032         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
18033         with space can upper case letter).
18034
18035         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
18036         Has_Static_Discriminants flag
18037         (Record_Type_Declaration): Diagnose an attempt to declare an interface
18038         type with discriminants.
18039         (Process_Range_Expr_In_Decl): Do validity checks on range
18040         (Build_Discriminant_Constraints): Use updated form of
18041         Denotes_Discriminant.
18042         (Process_Subtype): If the subtype is a private subtype whose full view
18043         is a concurrent subtype, introduce an itype reference to prevent scope
18044         anomalies in gigi.
18045         (Build_Derived_Record_Type, Collect_Interface_Primitives,
18046         Record_Type_Declaration):  The functionality of the subprograms
18047         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
18048         is now performed by a single routine.
18049         (Build_Derived_Record_Type): If the type definition includes an explicit
18050         indication of limitedness, then the type must be marked as limited here
18051         to ensure that any access discriminants will not be treated as having
18052         a local anonymous access type.
18053         (Check_Abstract_Overriding): Issue a detailed error message when an
18054         abstract subprogram was not overridden due to incorrect mode of its
18055         first parameter.
18056         (Analyze_Private_Extension_Declaration): Add support for the analysis of
18057         synchronized private extension declarations. Verify that the ancestor is
18058         a limited or synchronized interface or in the generic case, the ancestor
18059         is a tagged limited type or synchronized interface and all progenitors
18060         are either limited or synchronized interfaces.
18061         Derived_Type_Declaration): Check for presence of private extension when
18062         dealing with synchronized formal derived types.
18063         Process_Full_View): Enchance the check done on the usage of "limited" by
18064         testing whether the private view is synchronized.
18065         Verify that a synchronized private view is completed by a protected or
18066         task type.
18067         (OK_For_Limited_Init_In_05): New function.
18068         (Analyze_Object_Declaration): Move check for limited types later,
18069         because OK_For_Limited_Init requires its argument to have been resolved.
18070         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
18071         in order to alleviate the upward compatibility introduced by AI-318.
18072         (Constrain_Corresponding_Record): If the constraint is for a component
18073         subtype, mark the itype as frozen, to avoid out-of-scope references to
18074         discriminants in the back-end.
18075         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
18076         this subprogram against wrong sources.
18077         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
18078         discriminant of limited type completed with a protected type, when the
18079         discriminant is used to constrain a private component of the type, and
18080         expansion is disabled.
18081         (Find_Type_Of_Object): Do not treat a return subtype that is an
18082         anonymous subtype as a local_anonymous_type, because its accessibility
18083         level is the return type of the enclosing function.
18084         (Check_Initialization): In -gnatg mode, turn the error "cannot
18085         initialize entities of limited type" into a warning.
18086         (OK_For_Limited_Init): Return true for generated nodes, since it
18087         sometimes violates the legality rules.
18088         (Make_Incomplete_Declaration): If the type for which an incomplete
18089         declaration is created happens to be the currently visible entity,
18090         preserve the homonym chain when removing it from visibility.
18091         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
18092         inherited subprograms.
18093         (Access_Definition): If this is an access to function that is the return
18094         type of an access_to_function definition, context is a type declaration
18095         and the scope of the anonymous type is the current one.
18096         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
18097         incomplete subtype to the set of private dependents of the original
18098         incomplete type.
18099         (Constrain_Discriminated_Type): Emit an error message whenever an
18100         incomplete subtype is being constrained.
18101         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
18102         corresponding subtype of the full view of the original incomplete type.
18103         (Check_Incomplete): Properly detect invalid usage of incomplete types
18104         and subtypes.
18105
18106 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
18107
18108         * g-catiio.ads, g-catiio.adb (Value): New function.
18109         Given an input String, try and parse a valid Time value.
18110
18111 2006-10-31  Vincent Celier  <celier@adacore.com>
18112
18113         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
18114         Integer_Address arithmetic, as in Set_Valid.
18115
18116 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
18117             Robert Dewar  <dewar@adacore.com>
18118
18119         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
18120         handling executable extension manually and duplicating code.
18121
18122         * make.adb: Implement new -S switch
18123         (Gnatmake): Use new function Osint.Executable_Name instead
18124         of handling executable extension manually.
18125
18126         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
18127         is specified, the executable name ends with this suffix.
18128         Take advantage of Osint.Executable_Name instead of duplicating code.
18129
18130         * switch-m.adb: Recognize new gnatmake -S switch
18131
18132         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
18133         variable.
18134         (Get_Target_Parameters): Set Executable_Extension_On_Target if
18135         available.
18136
18137         * makeusg.adb: Add line for gnatmake -S switch
18138
18139 2006-10-31  Vincent Celier  <celier@adacore.com>
18140
18141         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
18142         call it with -static-libgcc, as there are some platforms, such as
18143         Darwin, where one of these two switches is compulsory to link.
18144
18145 2006-10-31  Vincent Celier  <celier@adacore.com>
18146
18147         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
18148         instead of ADA_PROJECT_PATH, for the project path.
18149         (Gnatls): When displaying the project path directories, use host dir
18150         specs.
18151
18152         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
18153         names in the project path, as absolute paths may correspond to
18154         multi-valued VMS logical names.
18155
18156 2006-10-31  Vincent Celier  <celier@adacore.com>
18157
18158         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
18159         absolute path name.
18160         (Locate_Regular_File): Ditto
18161         (Change_Dir): Remove, no longer used
18162         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
18163         on Windows. Get it calling Get_Current_Dir.
18164         (OpenVMS): Remove imported boolean, no longer needed.
18165         (Normalize_Pathname)[VMS]: Do not resolve directory names.
18166         (Pid_To_Integer): New function to convert a Process_Id to  Integer
18167
18168 2006-10-31  Thomas Quinot  <quinot@adacore.com>
18169
18170         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
18171         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
18172         to No_Socket.
18173         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
18174         W_Sig_Socket.
18175
18176 2006-10-31  Robert Dewar  <dewar@adacore.com>
18177
18178         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
18179         initial letter o as a zero.
18180
18181 2006-10-31  Robert Dewar  <dewar@adacore.com>
18182
18183         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
18184
18185 2006-10-31  Robert Dewar  <dewar@adacore.com>
18186
18187         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
18188         variant records
18189         (Layout_Variant_Record): Retrieve the discriminants from the entity
18190         rather than from the type definition, because in the case of a full
18191         type for a private type we need to take the discriminants from the
18192         partial view.
18193         (Layout_Component_List): When applying the Max operator to variants with
18194         a nonstatic size, check whether either operand is static and scale that
18195         operand from bits to storage units before applying Max.
18196         (Layout_Type): In VMS, if a C-convention access type has no explicit
18197         size clause (and does not inherit one in the case of a derived type),
18198         then the size is reset to 32 from 64.
18199
18200 2006-10-31  Vincent Celier  <celier@adacore.com>
18201
18202         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
18203         its file has already been loaded, according to the unit being loaded,
18204         not to the current value of Multiple_Unit_Index.
18205
18206 2006-10-31  Thomas Quinot  <quinot@adacore.com>
18207             Eric Botcazou  <ebotcazou@adacore.com>
18208             Arnaud Charlet  <charlet@adacore.com>
18209
18210         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
18211         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
18212         possible.
18213         (a-except.o): Pass it to the compiler.
18214         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
18215         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
18216         a-calend-mingw.adb version.
18217
18218         * Makefile.rtl: Added s-dsaser.
18219         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
18220         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
18221         Ada.Dispatching.Round_Robin.
18222         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
18223
18224         * Make-lang.in: Remove all references to gt-ada-decl.h.
18225         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
18226         sources.
18227         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
18228         Update dependencies.
18229
18230         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
18231
18232 2006-10-31  Vincent Celier  <celier@adacore.com>
18233
18234         * mlib-utl.adb (Initialized): Remove, no longer used
18235         (Initialize): Remove, no longer used
18236         (Ar): If Ar_Exec is null, get the location of the archive builder and,
18237         if there is one, the archive indexer. Fail if the archive builder cannot
18238         be found.
18239         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
18240         be found.
18241
18242 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18243
18244         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
18245         Process_Body_Clauses): If the context of a body includes a use clause
18246         for P.Q then a with_clause for P in the same body is not redundant,
18247         even if the spec also has a with_clause on P.
18248         Add missing continuation mark to error msg
18249         (Build_Limited_Views): A limited view of a type is tagged if its
18250         declaration includes a record extension.
18251         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
18252         node, even if the subunit has errors. This avoids malfunction by
18253         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
18254         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
18255         generation of obsolescent messages for with statements (cannot do
18256         this too early, or we cannot implement avoiding the messages in the
18257         case of obsolescent units withing obsolescent units).
18258         (Install_Siblings): If the with_clause is on a remote descendant of
18259         an ancestor of the current compilation unit, find whether there is
18260         a sibling child unit that is immediately visible.
18261         (Remove_Private_With_Clauses): New procedure, invoked after completing
18262         the analysis of the private part of a nested package, to remove from
18263         visibility the private with_clauses of the enclosing package
18264         declaration.
18265         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
18266         now centralized in Generate_Reference.
18267         (Install_Limited_Context_Clauses): Remove superfluous error
18268         message associated with unlimited view visible through use
18269         and renamings. In addition, at the point in which the error
18270         is reported, we add the backslash to the text of the error
18271         to ensure that it is reported as a single error message.
18272         Use new // insertion for some continuation messages
18273         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
18274         to create implicit with_clause for parent unit mentioned in original
18275         limited_with_clause.
18276         (Install_Limited_With_Unit): Set entity of parent identifiers if the
18277         unit is a child unit. For ASIS queries.
18278         (Analyze_Subunit): If the subunit appears within a child unit, make all
18279         ancestor child units directly visible again.
18280
18281 2006-10-31  Robert Dewar  <dewar@adacore.com>
18282
18283         * par-ch10.adb (P_Context_Clause): Minor error message fix
18284
18285 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
18286             Javier Miranda  <miranda@adacore.com>
18287
18288         * par-ch12.adb: Grammar update and cleanup.
18289         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
18290         support for synchronized derived type definitions.
18291         Add the new actual Abstract_Present to every call to
18292         P_Interface_Type_Definition.
18293         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
18294         a formal object declaration with an access definition or a subtype mark
18295         with a null exclusion.
18296         (P_Generic_Association): Handle association with box, and others_choice
18297         with box, to support Ada 2005 partially parametrized formal packages.
18298
18299 2006-10-31  Robert Dewar  <dewar@adacore.com>
18300             Javier Miranda  <miranda@adacore.com>
18301
18302         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
18303         (P_Type_Declaration): Remove barrier against the reserved word "limited"
18304         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
18305         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
18306         private extensions.
18307         (P_Type_Declaration): Add the new actual Abstract_Present to every call
18308         to P_Interface_Type_Definition.
18309         (P_Interface_Type_Definition): Addition of one formal to report an error
18310         if the reserved word abstract has been previously found.
18311         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
18312         object renaming declaration with an access definition or subtype mark
18313         with a possible null exclusion.
18314
18315         * par-ch9.adb: Minor error msg fix
18316
18317         * par-load.adb: Add missing continuation mark to error msg
18318
18319         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
18320
18321 2006-10-31  Vincent Celier  <celier@adacore.com>
18322
18323         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
18324         unknown attribute in unknown package or in package that does not need
18325         to be checked.
18326         (Parse_Package_Declaration): Do not issue warning for unknown package in
18327         quiet output.
18328
18329 2006-10-31  Vincent Celier  <celier@adacore.com>
18330
18331         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
18332         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
18333         Packages_To_Check.
18334
18335 2006-10-31  Vincent Celier  <celier@adacore.com>
18336
18337         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
18338         on VMS, change "__" to '.' before checking the name.
18339         (Record_Ada_Source): Always add the source file name in the list of
18340         of sources, even if it is not the first time, as it is for another
18341         source index.
18342         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
18343         dot, instead of replacing only the first '_'.
18344
18345         * prj-part.adb (Parse): Convert project file path to canonical form
18346
18347         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
18348         extended, the project id of the project extending it is recorded in its
18349         data, even when it has already been processed as an imported project.
18350
18351 2006-10-31  Robert Dewar  <dewar@adacore.com>
18352
18353         * repinfo.adb (List_Entities): Don't list entities from renaming
18354         declarations.
18355
18356 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
18357             Robert Dewar  <dewar@adacore.com>
18358
18359         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
18360         only a restriction warning is active for the given restriction. This is
18361         desirable because we do not want to modify code in the case where only
18362         a warning is set.
18363         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
18364         causes overriding of real restrictions.
18365         Take advantage of new No_Restrictions constant.
18366
18367         * raise.h: (__gnat_set_globals): Change profile.
18368
18369 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
18370
18371         * rtsfind.adb: Remove s-polint from comment as it exists no more.
18372
18373         * rtsfind.ads:
18374         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
18375         Move all the entities in obsolete package System.PolyORB_Interface to
18376         System.Partition_Interface.
18377         (RE_Storage_Size): New function in System.Tasking.
18378         (RE_Get_Ceiling): New entity.
18379         (RE_Set_Ceiling): New entity.
18380         (RO_PE_Get_Ceiling): New entity.
18381         (RO_RE_Set_Ceiling): New entity.
18382         (Inherit_CPP_DT): New entity
18383
18384 2006-10-31  Robert Dewar  <dewar@adacore.com>
18385
18386         * scng.adb (Scan, case of numeric literal): Better msg for identifier
18387         starting with a digit.
18388
18389 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18390             Thomas Quinot  <quinot@adacore.com>
18391             Javier Miranda  <miranda@adacore.com>
18392             Gary Dismukes  <dismukes@adacore.com>
18393
18394         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
18395         properly an attempt to apply Unchecked_Access to a protected operation.
18396         (OK_Self_Reference): New subprogram to check the legality of an access
18397         attribute whose prefix is the type of an enclosing aggregate.
18398         Generalizes previous mechanism to handle attribute references nested
18399         arbitrarily deep within the aggregate.
18400         (Analyze_Access_Attribute): An access attribute whose prefix is a type
18401         can appear in an aggregate if this is a default-initialized aggregate
18402         for a self-referential type.
18403         (Resolve_Attribute, case Access): Ditto.
18404         Add support for new implementation defined attribute Stub_Type.
18405         (Eval_Attribute, case Attribute_Stub_Type): New case.
18406         (Analyze_Attribute, case Attribute_Stub_Type): New case.
18407         (Stream_Attribute_Available): Implement using new subprogram from
18408         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
18409         Has_Specified_Stream_Attribute flag.
18410         Disallow Storage_Size and Storage_Pool for access to subprogram
18411         (Resolve_Attribute, case 'Access et al): Take into account anonymous
18412         access types of return subtypes in extended return statements. Remove
18413         accessibility checks on anonymous access types when Unchecked_Access is
18414         used.
18415         (Analyze_Attribute): Add support for the use of 'Class to convert
18416         a class-wide interface to a tagged type.
18417         Add support for the attribute Priority.
18418         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
18419         whether the designated type is discriminated with a constrained partial
18420         view and require static matching in that case.
18421         Add local variable Des_Btyp. The Designated_Type
18422         of an access to incomplete subtype is either its non-limited view if
18423         coming from a limited with or its etype if regular incomplete subtype.
18424
18425         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
18426         Fix predicate to identify and allow cases of (expander-generated)
18427         references to tag of designated object of a RACW.
18428         (Validate_Static_Object_Name): In Ada 2005, a formal object is
18429         non-static, and therefore cannot appear as a primary in a preelaborable
18430         package.
18431         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
18432         Has_Read_Write_Attributes.
18433         (Has_Read_Write_Attributes): Reimplement in termes of
18434         Has_Stream_Attribute_Definition.
18435         (Missing_Read_Write_Attributes): When checking component types in a
18436         record, unconditionally call Missing_Read_Write_Attributes recursively
18437         (remove guard checking for Is_Record_Type / Is_Access_Type).
18438
18439 2006-10-31  Robert Dewar  <dewar@adacore.com>
18440
18441         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
18442         useless assignments here and conditionalize it on absence of exception
18443         handlers.
18444         (Analyze_Exception_Handlers): Small code reorganization of error
18445         detection code, for new handling of formal packages.
18446
18447 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18448             Hristian Kirtchev  <kirtchev@adacore.com>
18449
18450         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
18451         that has been constant-folded, preserve information of original tree,
18452         for ASIS uses.
18453         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
18454         generated private extension declaration if the formal derived type is
18455         synchronized. Carry synchronized present over to the generated private
18456         extension.
18457         (Validate_Derived_Type_Instance): Ensure that the actual of a
18458         synchronized formal derived type is a synchronized tagged type.
18459         (Instantiate_Formal_Package): When creating the instantiation used to
18460         validate the actual package of a formal declared without a box, check
18461         whether the formal itself depends on a prior actual.
18462         (Instantiate_Formal_Subprogram): Create new entities for the defining
18463         identifiers of the formals in the renaming declaration, for ASIS use.
18464         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
18465         a renaming declaration or a subtype declaration for an actual in an
18466         instance, capture location information of declaration in generic, for
18467         ASIS use.
18468         (Instantiate_Formal_Package): Add comments on needed additional tests.
18469         AI-317 (partial parametrization) is fully implemented.
18470         (Validate_Private_Type_Instance): Add check for actual which
18471         must have preelaborable initialization
18472         Use new // insertion for some continuation messages
18473         (Analyze_Formal_Object_Declaration): Change usage of Expression to
18474         Default_Expression. Add type retrieval when the declaration has an
18475         access definition. Update premature usage of incomplete type check.
18476         (Check_Access_Definition): New subsidiary routine. Check whether the
18477         current compilation version is Ada 05 and the supplied node has an
18478         access definition.
18479         (Instantiate object): Alphabetize local variables. Handle the creation
18480         of new renaming declarations with respect to the kind of definition
18481         used - either an access definition or a subtype mark. Guard against
18482         unnecessary error message in the context of anonymous access types after
18483         they have been resolved. Add check for required null exclusion in a
18484         formal object declaration.
18485         (Switch_View): A private subtype of a non-private type needs to be
18486         switched (the base type can have been switched without its private
18487         dependents because of the last branch of Check_Private_View.
18488         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
18489         value from BT.
18490         (Instantiate_Type): Emit an error message whenever a class-wide type of
18491         a tagged incomplete type is used as a generic actual.
18492         (Find_Actual_Type): Extend routine to handle a component type in a child
18493         unit that is imported from a formal package in a parent.
18494         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
18495         agree on constrainedness, rather than checking against ultimate ancestor
18496         (Instantiate_Subprogram_Body): Create a cross-reference link to the
18497         generic body, for navigation purposes.
18498
18499 2006-10-31  Robert Dewar  <dewar@adacore.com>
18500             Thomas Quinot  <quinot@adacore.com>
18501
18502         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
18503         type.
18504         (New_Stream_Subprogram): When processing an attribute definition clause
18505         for a stream-oriented subprogram, record an entity node occurring at
18506         the point of clause to use for checking the visibility of the clause,
18507         as defined by 8.3(23) as amended by AI-195.
18508         (New_Stream_Subprogram): New procedure, factoring behaviour from both
18509          New_Stream_Function and New_Stream_Procedure.
18510         (New_Stream_Function, New_Stream_Procedure): Removed.
18511         (Analyze_Attribute_Definition_Clause, case Address): Check new
18512         Alignment_Check check
18513
18514 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18515             Javier Miranda  <miranda@adacore.com>
18516             Robert Dewar  <dewar@adacore.com>
18517
18518         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
18519         generate the same errors compiling under -gnatc.
18520         (Try_Object_Operation): If no candidate interpretation succeeds, but
18521         there is at least one primitive operation with the right name, report
18522         error in call rather than on a malformed selected component.
18523         (Analyze_Selected_Component): If the prefix is an incomplete type from
18524         a limited view, and the full view is available, use the full view to
18525         determine whether this is a prefixed call to a primitive operation.
18526         (Operator_Check): Verify that a candidate interpretation is a binary
18527         operation before checking the type of its second formal.
18528         (Analyze_Call): Add additional warnings for function call contexts not
18529         yet supported.
18530         (Analyze_Allocator): Move the check for "initialization not allowed for
18531         limited types" after analyzing the expression. This is necessary,
18532         because OK_For_Limited_Init looks at the structure of the expression.
18533         Before analysis, we don't necessarily know what sort of expression it
18534         is. For example, we don't know whether F(X) is a function call or an
18535         indexed component; the former is legal in Ada 2005; the latter is not.
18536         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
18537         were missing. We also didn't handle qualified expressions. Now also
18538         allow function calls. Use new common routine OK_For_Limited_Init.
18539         (Analyze_Type_Conversion): Do not perform some legality checks in an
18540         instance, because the error message will be redundant or spurious.
18541         (Analyze_Overloaded_Selected_Component): Do not do style check when
18542         setting an entity, since we do not know it is the right entity yet.
18543         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
18544         (Analyze_Overloaded_Selected_Component): Same change
18545         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
18546         since regular incomplete subtypes are transformed into corresponding
18547         subtypes of their full views.
18548         (Complete_Object_Operation): Treat name of transformed subprogram call
18549         as coming from source, for browsing purposes.
18550         (Try_Primitive_Operation): If formal is an access parameter, compare
18551         with base type of object to determine whether it is a primitive
18552         operation.
18553         (Operator_Check): If no interpretation of the operator matches, check
18554         whether a use clause on any candidate might make the operation legal.
18555         (Try_Class_Wide_Operation): Check whether the first parameter is an
18556         access type whose designated type is class-wide.
18557
18558 2006-10-31  Robert Dewar  <dewar@adacore.com>
18559             Ed Schonberg  <schonberg@adacore.com>
18560             Gary Dismukes  <dismukes@adacore.com>
18561
18562         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
18563         warn on infinite loops.
18564         Add \\ to some continuation messages
18565         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
18566         (Process_Bounds): If the bounds are integer literals that result from
18567         constant-folding, and they carry a user-defined type, preserve that type
18568         rather than treating this as an integer range.
18569         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
18570         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
18571         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
18572         left hand side of assignment.
18573         (Analyze_Assignment): Add suport to manage assigments to the attribute
18574         priority of a protected object.
18575         (Check_Possible_Current_Value_Condition): Allow fully qualified names
18576         not just identifiers.
18577         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
18578         or AND THEN for possible tracking.
18579         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
18580         case of while loops so we can track values in the loop body.
18581
18582 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18583             Hristian Kirtchev  <kirtchev@adacore.com>
18584             Bob Duff  <duff@adacore.com>
18585
18586         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
18587         procedure cannot be a protected operation (it is a basic_declaration,
18588         not a subprogram_declaration).
18589         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
18590         Subp. Add logic for entry processing.
18591         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
18592         Determine whether an entry or subprogram of a protected or task type
18593         override an inherited primitive of an implemented interface.
18594         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
18595         Update the actual used in calls to Check_Overriding_Indicator.
18596         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
18597         generate the proper reference to the parent unit, for cross-reference.
18598         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
18599         Is_Formal.
18600         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
18601         (Add_Extra_Formal): Revise procedure to allow passing in associated
18602         entity, scope, and name suffix, and handle setting of the new
18603         Extra_Formals field.
18604         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
18605         pass new parameters. Add support for adding the new extra access formal
18606         for functions whose calls are treated as build-in-place.
18607         (Analyze_A_Return_Statement): Correct casing in error message.
18608         Move Pop_Scope to after Analyze_Function_Return, because an extended
18609         return statement really is a full-fledged scope. Otherwise, visibility
18610         doesn't work right. Correct use of "\" for continuation messages.
18611         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
18612         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
18613         the node doesn't get properly marked as analyzed.
18614         (Analyze_Subprogram_Body): If subprogram is a function that returns
18615         an anonymous access type that denotes a task, build a Master Entity
18616         for it.
18617         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
18618         proper usage of null exclusion in a result definition.
18619         (Process_Formals): Code cleanup and new error message.
18620         (Process_Formals): Detect incorrect application of null exclusion to
18621         non-access types.
18622         (Conforming_Types): Handle conformance between [sub]types and itypes
18623          generated for entities that have null exclusions applied to them.
18624         (Maybe_Primitive_Operation): Add an additional type retrieval when the
18625          base type is an access subtype. This case arrises with null exclusions.
18626         (New_Overloaded_Entity): Do not remove the overriden entity from the
18627         homonym chain if it corresponds with an abstract interface primitive.
18628         (Process_Formals): Replace membership test agains Incomplete_Kind with a
18629         call to the synthesized predicate Is_Incomplete_Type.
18630         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
18631         primitives.
18632         (Analyze_Subprogram_Declaration): Check that abstract interface
18633         primitives are abstract or null.
18634         (Analyze_Subprogram_Specification): Remove previous check for abstract
18635         interfaces because it was not complete.
18636         (Has_Interface_Formals): Removed.
18637
18638 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18639             Javier Miranda  <miranda@adacore.com>
18640
18641         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
18642         of Analyze_Package_Body, to create Itype references for anonymous
18643         access types created in the package declaration, whose designated types
18644         may have only a limited view.
18645         (Analyze_Package_Specification): For the private part of a nested
18646         package, install private_with_clauses of enclosing compilation unit if
18647         we are in its visible part.
18648         (Declare_Inherited_Private_Subprograms): Complete barrier
18649         to ensure that the primitive operation has an alias to some parent
18650         primitive. This is now required because, after the changes done for the
18651         implementation of abstract interfaces, the contents of the list of
18652         primitives has entities whose alias attribute references entities of
18653         such list of primitives.
18654         (Analyze_Package_Specification): Simplify code that handles parent units
18655         of instances and formal packages.
18656         (Uninstall_Declarations): Check the convention consistency among
18657         primitive overriding operations of a tagged record type.
18658
18659 2006-10-31  Robert Dewar  <dewar@adacore.com>
18660             Hristian Kirtchev  <kirtchev@adacore.com>
18661             Javier Miranda  <miranda@adacore.com>
18662             Ed Schonberg  <schonberg@adacore.com>
18663
18664         * sem_ch8.adb: Minor error msg rewording
18665         (Undefined): When checking for misspellings, invert arguments (to get
18666         expected and found set right)
18667         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
18668         (Analyze_Generic_Renaming): Same fix
18669         (Use_One_Package): Do not take into account the internal entities of
18670         abstract interfaces during the analysis of entities that are marked
18671         as potentially use-visible.
18672         (Find_Type): Handle the case of an attribute reference for
18673         implementation defined attribute Stub_Type (simply let the analysis of
18674         the attribute reference rewrite it).
18675         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
18676         type that appears in a Use_Type clause.
18677         (Analyze_Object_Renaming): Add support for renaming of the Priority
18678         attribute.
18679         (Find_Type): In Ada 2005, a task type can be used within its own body,
18680         when it appears in an access definition.
18681         (Analyze_Object_Renaming): Remove warning on null_exclusion.
18682         (Analyze_Object_Renaming): Introduce checks for required null exclusion
18683          in a formal object declaration or in a subtype declaration.
18684         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
18685         (Check_Null_Exclusion): New local routine to
18686         Analyze_Subprogram_Renaming. Check whether the formals and return
18687         profile of a renamed subprogram have required null exclusions when
18688         their counterparts of the renaming already impose them.
18689         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
18690         Determine whether an entity is inside a generic scope.
18691         (In_Open_Scope): First pass of documentation update.
18692         (Find_Expanded_Name): Add support for shadow entities associated with
18693         limited withed packages. This is required to handle nested packages.
18694         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
18695         that makes a renaming of a limited withed package illegal.
18696
18697 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
18698             Ed Schonberg  <schonberg@adacore.com>
18699
18700         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
18701         Check_Overriding_Indicator.
18702         (Analyze_Task_Definition): Ditto.
18703         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
18704         (Check_Overriding_Indicator): To find overridden interface operation,
18705         examine only homonyms that have an explicit subprogram declaration, not
18706         inherited operations created by an unrelated type derivation.
18707         (Check_Overriding_Indicator): When checking for the presence of "null"
18708         in a procedure, ensure that the queried node is a procedure
18709         specification.
18710         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
18711         type when the formal is an access to variable.
18712         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
18713         (Analyze_Task_Type): Same addition
18714         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
18715         provide navigation capabilities for entries.
18716
18717 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
18718             Ed Schonberg  <schonberg@adacore.com>
18719             Javier Miranda  <miranda@adacore.com>
18720             Gary Dismukes  <dismukes@adacore.com>
18721
18722         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
18723         inherited from an interface ancestor by another interface in the
18724         context of an instance as 'late'.
18725         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
18726         of a call to a function that dispatches on access result.
18727         (Check_Dispatching_Operation): In case of late overriding of a primitive
18728         that covers abstract interface subprograms we register it in all the
18729         secondary dispatch tables associated with abstract interfaces.
18730         (Check_Dispatching_Call): Add check that a dispatching call is not made
18731         to a function with a controlling result of a limited type. This is a
18732         current implementation restriction.
18733         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
18734         (Check_Dispatching_Operation): Do no emit a warning if the controlling
18735         argument is an interface type that is a generic formal.
18736         (Is_Interface_Subprogram): Removed.
18737         (Check_Dispatching_Operation): If the subprogram is not a dispatching
18738         operation, check the formals to handle the case in which it is
18739         associated with an abstract interface type.
18740
18741 2006-10-31  Robert Dewar  <dewar@adacore.com>
18742             Ed Schonberg  <schonberg@adacore.com>
18743
18744         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
18745         Add new calls to this procedure during traversal
18746         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
18747         another unit if expansion is disabled.
18748
18749 2006-10-31  Robert Dewar  <dewar@adacore.com>
18750
18751         * sem_eval.adb (Compile_Time_Compare): Make use of information from
18752         Current_Value in the conditional case, to evaluate additional
18753         comparisons at compile time.
18754
18755 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18756             Hristian Kirtchev  <kirtchev@adacore.com>
18757             Javier Miranda  <miranda@adacore.com>
18758
18759         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
18760         subprogram type to provide better diagnostics in case of ambiguity.
18761         (Covers): Handle coverage of formal and actual anonymous access types in
18762         the context of generic instantiation.
18763         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
18764         abstract interface types; this is required to handle concurrent types
18765         with discriminants and abstract interface types.
18766         (Covers): Include type coverage of both regular incomplete subtypes and
18767         incomplete subtypes of incomplete type visibles through a limited with
18768         clause.
18769
18770 2006-10-31  Robert Dewar  <dewar@adacore.com>
18771             Hristian Kirtchev  <kirtchev@adacore.com>
18772             Ed Schonberg  <schonberg@adacore.com>
18773
18774         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
18775         messages for entities in packages which are not used.
18776         (Collect_Synchronized_Interfaces): New procedure.
18777         (Overrides_Synchronized_Primitive): New function.
18778         (Denotes_Discriminant): Extend predicate to apply to task types.
18779         Add missing continuation marks in error msgs
18780         (Unqualify): New function for removing zero or more levels of
18781         qualification from an expression. There are numerous places where this
18782         ought to be used, but we currently only deal properly with zero or one
18783         level.
18784         (In_Instance); The analysis of the actuals in the instantiation of a
18785         child unit is not within an instantiation, even though the parent
18786         instance is on the scope stack.
18787         (Safe_To_Capture_Value): Exclude the case of variables that are
18788         renamings.
18789         (Check_Obsolescent): Removed
18790         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
18791         is an aliased view, even when rewritten as a reference to the target
18792         object in an assignment.
18793         (Get_Subprogram_Entity): New function
18794         (Known_To_Be_Assigned): New function
18795         (Type_Access_Level): Compute properly the access level of a return
18796         subtype that is an anonymous access type.
18797         (Explain_Limited_Type): Correct use of "\" for continuation messages.
18798         (Is_Transfer): The new extended_return_statement causes a transfer of
18799         control.
18800         (Has_Preelaborable_Initialization): New function
18801         (Has_Null_Exclusion): New function. Given a node N, determine whether it
18802         has a null exclusion depending on its Nkind.
18803         Change Is_Lvalue to May_Be_Lvalue
18804         (May_Be_Lvalue): Extensive additional code to deal with subprogram
18805         arguments (IN parameters are not Lvalues, IN OUT parameters are).
18806         (Safe_To_Capture_Value): Extend functionality so it can be used for
18807         the current value condition case.
18808         (Has_Compatible_Alignment): New function
18809         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
18810         objects to handle the Ada 2005 case, where aliasedness no longer implies
18811         that the object is constrained. In particular, for dereferenced names,
18812         the designated object must be assumed to be unconstrained.
18813         (Kill_Current_Values): Properly deal with the case where we encounter
18814         a loop in the scope chain.
18815         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
18816         a value.
18817         (Compile_Time_Constraint_Error): Improve error message in error case
18818
18819         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
18820         associated with entities of abstract interface primitives.
18821         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
18822
18823 2006-10-31  Robert Dewar  <dewar@adacore.com>
18824
18825         * s-osinte-tru64.adb:
18826         Mark Asm statements Volatile to prevent warnings (seems a
18827         reasonable change anyway)
18828         Fixes new warnings
18829
18830         * s-mastop-irix.adb: Add Volatile to Asm statements
18831         Suppresses warning, and seems appropriate in any case
18832
18833         * s-osinte-vms.adb: Add Volatile to Asm statement
18834
18835         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
18836
18837         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
18838         returned.
18839         Add call to Check_Code_Statement
18840
18841 2006-10-31  Robert Dewar  <dewar@adacore.com>
18842             Ed Schonberg  <schonberg@adacore.com>
18843             Bob Duff  <duff@adacore.com>
18844
18845         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
18846         Synchronized_Present): Add Formal_Derived_Type_Definition and
18847         Private_Extension_Declaration to the list of assertions.
18848         (Is_Entry_Barrier_Function): New flag
18849         (Has_Self_Reference): New flag on aggregates, to indicate that they
18850         contain a reference to the enclosing type, inserted through a default
18851         initialization.
18852         (Next_Rep_Item): Move from Node4 to Node5.
18853         (Entity): Add this field for N_Attribute_Definition_Clause.
18854         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
18855         (N_Return_Object_Declaration): Remove this node kind. We now use
18856         N_Object_Declaration instead.
18857         (Actual_Designated_Subtype): Move to a different place to make room in
18858         N_Extended_Return_Statement.
18859         (Procedure_To_Call): Move to a different place to make room in
18860         N_Extended_Return_Statement.
18861         (Return_Type): Removed this field to make room in return statements
18862         (both kinds).
18863         (Return_Statement_Entity): New field in return statements, in part to
18864         replace Return_Type, and in part to support the fact that return
18865         statements are now pushed on the scope stack during semantic analysis.
18866         (Return_Object_Declarations): New field to support extended return
18867         statements.
18868         (N_Extended_Return_Statement): New node for extended_return_statement
18869         nonterminal.
18870         (N_Return_Object_Declaration): New node for part of
18871         extended_return_statement nonterminal. Needed because all the necessary
18872         fields won't fit in N_Extended_Return_Statement.
18873         Generic_associations now carry the Box_Present flag, to indicate a
18874         default for an actual in a partially parametrized formal package.
18875
18876         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
18877         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
18878         and for the new predefined dispatching policies: EDF_Across_Priorities,
18879         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
18880         Introduce new name Stub_Type for implementation defined attribute.
18881         Add pragma Preelaborable_Initialization
18882         Add entry for Priority attribute.
18883         Add Pragma_Wide_Character_Encoding
18884         (Get_Convention_Name): Given a convention id, this function returns the
18885         corresponding name id from the names table.
18886
18887 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18888             Robert Dewar  <dewar@adacore.com>
18889             Bob Duff  <duff@adacore.com>
18890
18891         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
18892         print null exclusion twice in the case of an access definition,
18893         Implement new -gnatL switch
18894         Remove N_Return_Object_Declaration. We now use
18895         N_Object_Declaration instead. Implement the case for
18896         N_Extended_Return_Statement. Alphabetize the cases.
18897         Add cases for new nodes N_Extended_Return_Statement and
18898         N_Return_Object_Declaration. The code is not yet written.
18899         Update the output for N_Formal_Object_Declaration
18900         and N_Object_Renaming_Declaration.
18901         (Write_Itype): Account for the case of a modular integer subtype whose
18902         base type is private.
18903
18904 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
18905
18906         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
18907         Remove elaboration code, now done in the binder.
18908
18909         * s-rident.ads: Make this unit Preelaborate.
18910         (No_Restrictions): New constant used to clean up code and follow
18911         preelaborate constraints.
18912
18913         * s-stalib.adb:
18914         Add System.Restrictions dependence, referenced directly from the
18915         binder generated file.
18916
18917 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
18918
18919         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
18920         True when AAMP extended floating-point is in use (48-bit). Change type
18921         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
18922         the two byte array types on AFloat. Change type of IV_Ilf overlay
18923         variable from Byte8 to ByteLF. Add appropriate initializations of
18924         floating-point overlays for AAMP cases.
18925
18926 2006-10-31  Javier Miranda  <miranda@adacore.com>
18927
18928         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
18929         (Get_Ceiling): New subprogram that returns
18930         the ceiling priority of the protected object.
18931         (Set_Ceiling): New subprogram that sets the new ceiling priority of
18932         the protected object.
18933
18934         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
18935
18936         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
18937
18938 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
18939
18940         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
18941         requeuing to the same protected object to give higher priority tasks
18942         the opportunity to execute.
18943
18944 2006-10-31  Robert Dewar  <dewar@adacore.com>
18945
18946         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
18947         add more precise check for the character sequence that follows '[' to
18948         avoid possible confusion in case if '[' is the last character of a
18949         string literals.
18950         (Scan_Wide): Always allow brackets encoding
18951
18952 2006-10-31  Olivier Hainque  <hainque@adacore.com>
18953
18954         * s-stchop.ads: make this unit preelaborate. This is desirable in
18955         general and made mandatory by the use of this unit by s-taprop which
18956         is itself preelaborate.
18957
18958         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
18959         Td_Events component.
18960
18961 2006-10-31  Vincent Celier  <celier@adacore.com>
18962
18963         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
18964         in file names.
18965
18966 2006-10-31  Vincent Celier  <celier@adacore.com>
18967
18968         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
18969
18970 2006-10-31  Vincent Celier  <celier@adacore.com>
18971
18972         * makegpr.adb (Check_Compilation_Needed): Take into account path names
18973         with spaces.
18974         (Check_Compilation_Needed): When checking a C or C++ source, do not
18975         resolve symbolic links.
18976         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
18977         When not in verbose mode and Ellipse is True, display "..." for the
18978         first argument with Display set to False.
18979         (Build_Global_Archive): Always set Display True for the first object
18980         file. Call Display_Command with Ellipse set to True.
18981
18982 2006-10-31  Matt Heaney  <heaney@adacore.com>
18983
18984         * a-crbtgo.ads: Commented each subprogram
18985
18986         * a-crbtgo.adb: Added reference to book from which algorithms were
18987         adapted.
18988
18989         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
18990         indicate which child.
18991         (Generic_Conditional_Insert): changed parameter name from "Success" to
18992         "Inserted".
18993         (Generic_Unconditional_Insert_With_Hint): improved algorithm
18994
18995         * a-coorse.adb (Replace_Element): changed parameter name in call to
18996         conditional insert operation.
18997
18998         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
18999
19000         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
19001         Generic_Iteration
19002
19003         * a-ciorse.adb (Replace_Element): changed parameter name in call to
19004         conditional insert operation.
19005
19006         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
19007         Generic_Iteration.
19008
19009         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
19010         instead of mode inout.
19011
19012         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
19013         draft
19014         (Generic_Read): preserve existing buckets array if possible
19015         (Generic_Write): don't send buckets array length anymore
19016
19017         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
19018         instead of mode inout.
19019
19020         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
19021         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
19022
19023         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
19024         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
19025         (Replace_Element): local operation is now an instantiation
19026
19027         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
19028         check current length.
19029         (Generic_Replace_Element): new operation
19030
19031 2006-10-31  Doug Rupp  <rupp@adacore.com>
19032
19033         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
19034         Call TBK$SYMBOLIZE without omitting parameters.
19035
19036 2006-10-31  Vincent Celier  <celier@adacore.com>
19037
19038         * symbols-processing-vms-ia64.adb,
19039         symbols-processing-vms-alpha.adb (Process): Do not include symbols
19040         that come from generic instantiations in bodies.
19041
19042 2006-10-31  Pat Rogers  <rogers@adacore.com>
19043
19044         * a-rttiev.ads, a-rttiev.adb:
19045         This is a significant redesign primarily for the sake of automatic
19046         timer task termination but also to fix a design flaw.
19047         Therefore we are now using an RTS lock, instead of a protected
19048         object, to provide mutual exclusion to the queue of pending events
19049         and the type Timing_Event is no longer a protected type.
19050
19051 2006-10-31  Robert Dewar  <dewar@adacore.com>
19052             Cyrille Comar  <comar@adacore.com>
19053             Ben Brosgol  <brosgol@adacore.com>
19054
19055         * debug.adb:  Update flags documentation
19056
19057         * gnat_ugn.texi: Add documentation for new -gnatwq switch
19058         Clean up documentation for several other warning switches
19059         Clarify how task stack size can be specified with various
19060         versions of Windows.
19061         Add note that -gnatVo includes ranges including loops
19062         Add documentation for -gnatL switch
19063         Add note on elaboration warning for initializing variables
19064         Add documentation for new -gnatwt warning switch
19065         Document new form of pragma Warnings (On|Off, string)
19066         Add comment on use of pragma Warnings to control warnings
19067         Add documentation for -gnatjnn switch
19068         Modify section on interfacing with C for VMS 64-bit.
19069         Add doc for -gnatVe/E
19070         Add documentation of new warning flags -gnatww/-gnatwW
19071         Add warnings about address clause overlays to list of warnings
19072         (Exception Handling Control): Document that the option --RTS must be
19073         used consistently for gcc and gnatbind.
19074         Clarify that inlining is not always possible
19075         Update documentation on pragma Unchecked_Union.
19076
19077         * gnat_rm.texi:
19078         Add documentation for new extended version of pragma Obsolescent
19079         Add documentation for implementation defined attribute 'Stub_Type.
19080         Add note on use of Volatile in asm statements
19081         Add documentation on use of pragma Unreferenced in context clause
19082         Document new form of pragma Warnings (On|Off, pattern)
19083         Document pragma Wide_Character_Encoding
19084         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
19085         enforced if code generation is active.
19086         Add section on pragma Suppress to document GNAT specific check
19087         Alignment_Check
19088         Clarify difference between No_Dispatching_Calls & No_Dispatch.
19089         Add documentation for pragma Restrictions (No_Elaboration_Code)
19090
19091         * gnat-style.texi:
19092         Add comments on layout of subprogram local variables in the
19093         presence of nested subprograms.
19094
19095         * ug_words: Resync.
19096
19097         * elists.ads: Minor reformatting
19098         Node returns Node_Or_Entity_Id (doc change only)
19099
19100         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
19101
19102         * g-arrspl.ads (Create): Update comments.
19103
19104         * sem.ads: Add details on the handling of the scope stack.
19105
19106         * usage.adb: Update documentation.
19107
19108         * validsw.ads, validsw.adb:
19109         Add definition of Validity_Check_Components and implement -gnatVe/E
19110
19111         * vms_data.ads: Add missing VMS qualifiers.
19112
19113         * s-addope.ads: Add documentation on overflow and divide by zero
19114
19115 2006-10-31  Robert Dewar  <dewar@adacore.com>
19116             Thomas Quinot  <quinot@adacore.com>
19117             Arnaud Charlet  <charlet@adacore.com>
19118
19119         * fmap.adb: Put routines in alpha order
19120
19121         * g-boumai.ads: Remove redundant 'in' keywords
19122
19123         * g-cgi.adb: Minor reformatting
19124
19125         * g-cgi.ads: Remove redundant 'in' keywords
19126
19127         * get_targ.adb: Put routines in alpha order
19128
19129         * prj-attr.ads: Minor reformatting
19130
19131         * s-atacco.ads: Minor reformatting
19132
19133         * scn.adb: Put routines in alpha order
19134
19135         * sinput-l.adb: Minor comment fix
19136
19137         * sinput-p.adb: Minor comment fix
19138
19139         * s-maccod.ads: Minor reformatting
19140
19141         * s-memory.adb: Minor reformatting
19142
19143         * s-htable.adb: Fix typo in comment.
19144
19145         * s-secsta.adb: Minor comment update.
19146
19147         * s-soflin.adb: Minor reformatting
19148
19149         * s-stoele.ads:
19150         Add comment about odd qualification in Storage_Offset declaration
19151
19152         * s-strxdr.adb:
19153         Remove unnecessary 'in' keywords for formal parameters.
19154
19155         * treeprs.adt: Minor reformatting
19156
19157         * urealp.adb: Put routines in alpha order
19158
19159         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
19160         taking string.
19161
19162         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
19163
19164         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
19165
19166         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
19167         workaround as on other platforms.
19168
19169         * g-eacodu-vms.adb: Remove redundant 'in' keywords
19170         * g-expect-vms.adb: Remove redundant 'in' keywords
19171
19172         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
19173         clear error message if the list-of-files file cannot be opened.
19174
19175         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
19176         equality operator is always visible.
19177
19178         * lang.opt: Woverlength-strings: New option.
19179
19180         * nmake.adt:
19181         Update copyright, since nmake.ads and nmake.adb have changed.
19182
19183         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
19184         (Binder_Output_Time_Stamps_Set): removed.
19185         (Old_Binder_Output_Time_Stamp): idem.
19186         (New_Binder_Output_Time_Stamp): idem.
19187         (Recording_Time_From_Last_Bind): idem.
19188         (Recording_Time_From_Last_Bind): Make constant.
19189
19190         * output.ads, output.adb (Write_Str): Allow LF characters
19191         (Write_Spaces): New procedure
19192
19193         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
19194
19195         * inline.adb: Minor reformatting
19196
19197         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
19198
19199         * s-mastop-vms.adb: Remove redundant 'in' keywords
19200
19201         * s-osprim-vms.adb: Remove redundant 'in' keywords
19202
19203         * s-trafor-default.adb: Remove redundant 'in' keywords
19204
19205         * 9drpc.adb: Remove redundant 'in' keywords
19206
19207         * s-osinte-mingw.ads: Minor reformatting
19208
19209         * s-inmaop-posix.adb: Minor reformatting
19210
19211         * a-direio.ads: Remove quotes from Compile_Time_Warning message
19212
19213         * a-exexda.adb: Minor code reorganization
19214
19215         * a-filico.adb: Minor reformatting
19216
19217         * a-finali.adb: Minor reformatting
19218
19219         * a-nudira.ads: Remove quote from Compile_Time_Warning message
19220
19221         * a-numeri.ads: Minor reformatting
19222
19223         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
19224
19225         * exp_pakd.ads: Fix obsolete comment
19226
19227         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
19228         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
19229         Probably not a bug, but certainly neater and more efficient.
19230
19231         * a-tienio.adb: Minor reformatting
19232
19233         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
19234         Avoid assuming low bound of string is 1.
19235
19236         * gnatbind.adb: Change Bindusg to package and rename procedure as
19237         Display, which now ensures that it only outputs usage information once.
19238         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
19239
19240         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
19241         Table'First.
19242
19243         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
19244         warning.
19245         (Match): Add pragma Assert to ensure that Matches'First is zero
19246
19247         * g-regpat.ads (Match): Document that Matches lower bound must be zero
19248
19249         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
19250         documented preconditions (also kills warnings about bad indexes).
19251
19252         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
19253         is 1.
19254         (Build_Import_Library): Ditto;
19255
19256         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
19257
19258         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
19259
19260         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
19261         lower bound of choice table is 1.
19262
19263         * sem_case.ads (Analyze_Choices): Document that lower bound of
19264         Choice_Table is 1.
19265
19266         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
19267         string is 1.
19268
19269         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
19270         and add appropriate Assert pragma to suppress warnings.
19271
19272         * atree.h, atree.ads, atree.adb
19273         Change Elist24 to Elist25
19274         Add definitions of Field28 and Node28
19275         (Traverse_Field): Use new syntactic parent table in sinfo.
19276
19277         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
19278
19279         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
19280
19281         * exp_tss.adb: Put routines in alpha order
19282
19283         * fe.h: Remove redundant declarations.
19284
19285 2006-10-23 Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
19286
19287         * utils.c (builtin_function): Rename to gnat_builtin_function.
19288         Move common code to add_builtin_function.
19289         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
19290         gnat_builtin_function.
19291         * gigi.h (builtin_function): Rename to gnat_builtin_function.
19292         Change the signature.
19293
19294 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
19295
19296         * Makefile.in: Add TEXI2PDF definition.
19297         * Make-lang.in: Add "ada.pdf" target.
19298
19299 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
19300
19301         * decl.c, utils.c: Fix comment typos.
19302         * utils.c: Fix a typo.
19303
19304 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
19305
19306         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
19307         on "pure" Ada subprograms if SJLJ exceptions are used.
19308         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
19309         on the declaration node of JMPBUF_SAVE.
19310         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
19311         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
19312         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
19313
19314 2006-08-20  Laurent Guerby  <laurent@guerby.net>
19315
19316         PR ada/28716
19317         g-socket.adb (Bind_Socket): Call Set_Address.
19318
19319 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
19320
19321         PR ada/15802
19322         * decl.c (same_discriminant_p): New static function.
19323         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
19324         subtype and we have discriminants, fix up the COMPONENT_REFs
19325         for the discriminants to make them reference the corresponding
19326         fields of the parent subtype after it has been built.
19327
19328 2006-09-15  Roger Sayle  <roger@eyesopen.com>
19329
19330         PR ada/18817
19331         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
19332         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
19333
19334 2006-09-13  Olivier Hainque  <hainque@adacore.com>
19335
19336         PR ada/29025
19337         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
19338         of a SAVE_EXPR, just make the operand addressable/not-readonly and
19339         let the common gimplifier code make and propagate a temporary copy.
19340         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
19341         out/in-out actuals and defer setting the addressable/readonly bits
19342         to the gimplifier.
19343
19344 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
19345
19346         PR ada/28591
19347         * decl.c (components_to_record): Defer emitting debug info for the
19348         record type associated with the variant until after we are sure to
19349         actually use it.
19350
19351 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
19352
19353         PR ada/21952
19354         * gigi.h (gnat_internal_attribute_table): Declare.
19355         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
19356         * utils.c (gnat_internal_attribute_table): New global variable.
19357         (builtin_function): Always call decl_attributes on the builtin.
19358         (handle_const_attribute): New static function.
19359         (handle_nothrow_attribute): Likewise.
19360
19361 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
19362
19363         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
19364
19365 2006-06-23  Olivier Hainque  <hainque@adacore.com>
19366
19367         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
19368         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
19369
19370 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
19371             Eric Botcazou  <ebotcazou@adacore.com>
19372
19373         PR ada/18692
19374         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
19375         check-gnat into check-acats.
19376
19377 2006-06-17  Karl Berry  <karl@gnu.org>
19378
19379         * gnat-style.texi (@dircategory): Use "Software development"
19380         instead of "Programming", following the Free Software Directory.
19381
19382 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19383
19384         PR ada/27944
19385         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
19386
19387 2006-06-06  Laurent Guerby  <laurent@guerby.net>
19388
19389         PR ada/27769
19390         mlib-utl.adb: Use Program_Name.
19391
19392 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
19393
19394         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
19395         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
19396         trans.c, utils.c: Fix comment typos.  Follow spelling
19397         conventions.
19398         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
19399         conventions.
19400
19401 2006-05-19  Nicolas Setton  <setton@adacore.com>
19402
19403         * misc.c (gnat_dwarf_name): New function.
19404         (LANG_HOOKS_DWARF_NAME): Define to it.
19405
19406 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
19407
19408         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
19409         (ada/misc.o): Likewise.
19410         (ada/utils.o): Likewise.
19411
19412 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
19413
19414         * Makefile.in: Add Ada support for GNU/kFreeBSD.
19415         * s-osinte-kfreebsd-gnu.ads: New file.
19416
19417 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
19418
19419         * Make-lang.in: Rename docdir to gcc_docdir.
19420
19421 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
19422
19423         * gigi.h (get_ada_base_type): Delete.
19424         * utils2.c (get_ada_base_type): Likewise.
19425         * trans.c (convert_with_check): Operate in the real base type.
19426
19427 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19428
19429         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
19430
19431 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
19432
19433         * utils.c (create_var_decl): Use have_global_bss_p when deciding
19434         whether to make the decl common.
19435
19436 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
19437
19438         * Make-lang.in (Ada): Remove.
19439         (.PHONY): Remove Ada
19440
19441 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
19442
19443         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
19444         aggregate, check the interpretations of the other operand to find one
19445         that may be a boolean array.
19446
19447         (Analyze_Selected_Component): Fix flow-of-control typo in case where
19448         the prefix is a private extension.
19449
19450 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
19451
19452         PR ada/26315
19453         * utils2.c (find_common_type): If both input types are BLKmode and
19454         have the same constant size, keep using the first one.
19455
19456         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
19457
19458         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
19459
19460         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
19461
19462 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
19463
19464         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
19465         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
19466         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb,
19467         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
19468         Abort_Defer/Undefer pairs to avoid the possibility of a task being
19469         aborted while owning a lock.
19470
19471 2006-02-17  Javier Miranda  <miranda@adacore.com>
19472             Robert Dewar  <dewar@adacore.com>
19473
19474         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
19475         through an access to class-wide interface we force the displacement of
19476         the pointer to the allocated object to reference the corresponding
19477         secondary dispatch table.
19478         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
19479         if Long_Shifts are supported on the target, even if 64 bit divides
19480         are not supported (configurable run time mode).
19481         (Expand_N_Type_Conversion): Do validity check if validity checks on
19482         operands are enabled.
19483         (Expand_N_Qualified_Expression): Do validity check if validity checks
19484         on operands are enabled.
19485
19486 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
19487
19488         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
19489         must be materialized when the renamed expression is an explicit
19490         dereference.
19491
19492 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
19493
19494         * freeze.adb (Statically_Discriminated_Components): Return false if
19495         the bounds of the type of the discriminant are not static expressions.
19496
19497         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
19498         the bounds of the discriminant type are not static.
19499
19500 2006-02-17  Robert Dewar  <dewar@adacore.com>
19501
19502         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
19503         then we close To if it is valid.
19504
19505 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
19506
19507         * init.c (facility_resignal_table): new array
19508         (__gnat_default_resignal_p): enhance default predicate to resignal if
19509         VMS condition has one of the predefined facility codes.
19510
19511 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
19512
19513         * Makefile.in: Use VMS64 specialized versions of several units in
19514         Interfaces.C hierarchy to be compatible with HP C default size choices.
19515         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
19516
19517 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
19518
19519         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
19520         instantiation, the corresponding entity is the related_instance of the
19521         wrapper package created for the instance.
19522
19523 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
19524
19525         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
19526         the current instance is nested within another instance in a child unit.
19527
19528 2006-02-17  Javier Miranda  <miranda@adacore.com>
19529             Ed Schonberg  <schonberg@adacore.com>
19530
19531         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
19532         type we cannot inherit the primitive operations; we inherit the
19533         Corresponding_Record_Type (which has the list of primitive operations).
19534         (Check_Anonymous_Access_Types): When creating anonymous access types for
19535         access components, use Rewrite in order to preserve the tree structure,
19536         for ASIS use.
19537         (Analyze_Object_Declaration): For limited types with access
19538         discriminants with defaults initialized by an aggregate, obtain
19539         subtype from aggregate as for other mutable types.
19540         (Derived_Type_Declaration): If the derived type is a limited interface,
19541         set the corresponding flag (Is_Limited_Record is not sufficient).
19542
19543 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
19544
19545         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
19546         to inline a function that returns an unconstrained type, the return
19547         expression must be the first variable declared in the body of the
19548         function.
19549
19550 2006-02-17  Javier Miranda  <miranda@adacore.com>
19551
19552         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
19553         abstract interface type, the static analysis is not enough to know if
19554         the interface is implemented or not by the source tagged type. Hence
19555         we must pass the work to the expander to generate the required code to
19556         evaluate the conversion at run-time.
19557         (Resolve_Equality_Op): Do not apply previous
19558         transformation if expansion is disasbled, to prevent anomalies when
19559         locating global references in a generic unit.
19560
19561 2006-02-17  Vincent Celier  <celier@adacore.com>
19562
19563         * snames.ads, snames.adb: New standard names for new project attributes:
19564         archive_builder, archive_indexer, compiler_pic_option,
19565         config_body_file_name, config_body_file_name_pattern,
19566         config_file_switches, config_file_unique, config_spec_file_name,
19567         config_spec_file_name_pattern, default_builder_switches,
19568         default_global_compiler_switches, default_language,
19569         dependency_file_kind, global_compiler_switches, include_path,
19570         include_path_file, language_kind, linker_executable_option,
19571         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
19572         roots, runtime_project.
19573
19574 2006-02-17  Matthew Heaney  <heaney@adacore.com>
19575
19576         * a-convec.ads, a-convec.adb:
19577         (operator "&"): handle potential overflow for large index types
19578         (Insert): removed Contraint_Error when using large index types
19579         (Insert_Space): removed Constraint_Error for large index types
19580         (Length): moved constraint check from Length to Insert
19581
19582         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
19583         as not null access.
19584         Explicit raise statements now include an exception message.
19585         (operator "&"): handle potential overflow for large index types
19586         (Insert): removed Contraint_Error when using large index types
19587         (Insert_Space): removed Constraint_Error for large index types
19588         (Length): moved constraint check from Length to Insert
19589
19590 2006-02-17  Robert Dewar  <dewar@adacore.com>
19591
19592         * s-wchcnv.adb: Document handling of [ on output (we do not change
19593         this to ["5B"] and the new comments say why not.
19594
19595         * gnat_ugn.texi:
19596         Add note for -gnatVo that this now includes the cases of type
19597         conversions and qualified expressions.
19598         Add comments on handling of brackets encoding for Text_IO
19599
19600 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
19601             Thomas Quinot  <quinot@adacore.com>
19602             Robert Dewar  <dewar@adacore.com>
19603             Javier Miranda  <miranda@adacore.com>
19604
19605         * expander.adb: Fix typo in comment
19606
19607         * exp_pakd.adb: Fix typo
19608         Minor comment reformatting.
19609
19610         * g-dyntab.adb: Minor reformatting
19611
19612         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
19613         aliased subprograms to look for the abstract interface subprogram.
19614
19615 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
19616
19617         * env.c (__gnat_setenv): Use size_t.
19618         (__gnat_unsetenv): Likewise.
19619         (__gnat_clearenv): Likewise.
19620
19621 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
19622
19623         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
19624
19625 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
19626
19627         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
19628         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
19629         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
19630         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
19631         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
19632         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
19633         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
19634         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
19635         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
19636         no longer used.
19637
19638 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
19639
19640         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
19641         protection against race conditions is not needed.
19642         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
19643         fallback handler.
19644         (Set_Specific_Handler): Add mutual exclusive access to the specific
19645         handler.
19646         (Specific_Handler): Add mutual exclusive access for retrieving the
19647         specific handler.
19648
19649         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
19650         back handler.
19651
19652         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
19653         Fall_Back_Handler and Specific_Handler.
19654
19655         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
19656         termination handlers.
19657         Set two different owerflow depending on the maximal stack size.
19658
19659         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
19660         protection against race conditions is not needed when executing the
19661         task termination handler.
19662
19663 2006-02-13  Robert Dewar  <dewar@adacore.com>
19664
19665         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
19666         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
19667         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
19668         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
19669         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
19670         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
19671         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
19672         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
19673         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
19674         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
19675         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
19676         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
19677         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
19678         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
19679         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
19680         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
19681         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
19682         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
19683         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
19684         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
19685         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
19686         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
19687         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
19688         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
19689         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
19690         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
19691         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
19692         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
19693         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
19694         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
19695         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
19696         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
19697         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
19698         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
19699         reformatting.
19700
19701 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
19702
19703         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
19704         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
19705         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
19706         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
19707         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
19708         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
19709         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
19710         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
19711         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
19712
19713 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
19714
19715         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads,
19716         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads,
19717         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
19718         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
19719         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads,
19720         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
19721         replaced by anonymous access type.
19722         (pthread_sigmask): Now take an access sigset_t
19723
19724         * s-osinte-hpux.ads:  Ditto.
19725         (pthread_mutex_t, pthread_cond_t): Update definitions to support
19726         properly 32 and 64 bit ABIs.
19727
19728 2006-02-13  Pascal Obry  <obry@adacore.com>
19729
19730         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb,
19731         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
19732         s-taprop-linux.adb, s-taprop-solaris.adb,
19733         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
19734         adjustement is already done when calling this routine.
19735
19736 2006-02-13  Pascal Obry  <obry@adacore.com>
19737
19738         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
19739         table to take advantage of the 16 priority levels available on Windows
19740         2000 and XP. On NT4 there are only 7 priority levels, this is properly
19741         supported by this new mapping.
19742
19743 2006-02-13  Nicolas Setton  <setton@adacore.com>
19744
19745         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
19746         (get_encoding): New subprogram. Extracts the encodings from an encoded
19747         Ada name.
19748
19749 2006-02-13  Pascal Obry  <obry@adacore.com>
19750             Nicolas Roche  <roche@adacore.com>
19751             Arnaud Charlet  <charlet@adacore.com>
19752
19753         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
19754         support.
19755         (__gnat_try_lock): Add unicode support by using a specific section on
19756         Windows.
19757         (__gnat_get_current_dir): Idem.
19758         (__gnat_open_read): Idem.
19759         (__gnat_open_rw): Idem.
19760         (__gnat_open_create): Idem.
19761         (__gnat_create_output_file): Idem.
19762         (__gnat_open_append): Idem.
19763         (__gnat_open_new): Idem.
19764         (__gnat_file_time_name): Idem.
19765         (__gnat_set_file_time_name): Idem.
19766         (__gnat_stat): Idem.
19767         (win32_no_block_spawn): Idem.
19768         (__gnat_locate_exec_on_path): Idem.
19769         (__gnat_opendir): New routine.
19770         (__gnat_closedir): Idem.
19771         (__gnat_readdir): Add new parameter length (pointer to int). Update
19772         implementation to use it and add specific Win32 code for Unicode
19773         support.
19774         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
19775         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
19776         (convert_addresses): Do not define this dummy routine on VMS.
19777
19778         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
19779         runtime Unicode support will be activated.
19780         (S2WS): String to Wide-String conversion. This version just copy a
19781         string in non Unicode version.
19782         (WS2S): Wide-String to String conversion. This version just copy a
19783         string in non Unicode version.
19784
19785         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
19786         (Open): Now import __gnat_opendir from adaint.c.
19787         (Read): Change the implementation to support unicode characters. It is
19788         not possible to use strlen() on Windows as this version supports only
19789         standard ASCII characters. So the length of the directory entry is now
19790         returned from the imported __gnat_readdir routine.
19791         Update copyright notice.
19792
19793         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
19794         (opendir): Moved to adaint.c.
19795
19796         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
19797         (Get_Directory): Fix wrong indexing.
19798         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
19799         __gnat_getenv from env.c
19800         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
19801         from env.c
19802
19803         * env.h, env.c: New file.
19804
19805         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
19806         adaint.c by __gnat_getenv from env.c
19807
19808         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
19809         adaint.c by __gnat_getenv from env.c
19810
19811         * Make-lang.in: Add env.o in the list of C object needed by gnat1
19812         and gnatbind.
19813         Update dependencies.
19814
19815 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19816             Olivier Hainque  <hainque@adacore.com>
19817             Eric Botcazou  <ebotcazou@adacore.com>
19818
19819         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
19820
19821         * gigi.h (value_factor_p): Add prototype and description, now public.
19822
19823         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
19824         promotion for field with rep clause if the associated size was proven
19825         to be in error.
19826         Expand comments describing attempts to use a packable type.
19827         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
19828         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
19829         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
19830         necessary since these are not different types and pointers may
19831         actually designate any subtype in this hierarchy.
19832         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
19833         discriminants but put them into record only if not Unchecked_Union;
19834         pass flag to components_to_record showing Unchecked_Union.
19835         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
19836         components before variants; don't set TYPE_UNCHECKED_UNION_P.
19837         (components_to_record): New argument UNCHECKED_UNION.
19838         Remove special case code for Unchecked_Union and instead use main code
19839         with small changes.
19840
19841         PR ada/26096
19842         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
19843         variable with the expression being built, only its inner field.
19844
19845         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
19846         emit_sequence_entry_statements.
19847         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
19848         (establish_gnat_vms_condition_handler): Move before
19849         Subprogram_Body_to_gnu.
19850         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
19851         for a subprogram if it has a foreign convention or is exported.
19852         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
19853         substituted for a CONST_DECL.
19854         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
19855         Etype to assoc_to_constructor.
19856         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
19857         discriminants of Unchecked_Union.
19858         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
19859         don't need cluttering preprocessor directives.
19860         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
19861         condition handler as current in the compiled function.
19862         (body_with_handlers_p): New function. Tell whether a given sequence of
19863         statements node is attached to a package or subprogram body and involves
19864         exception handlers possibly nested within inner block statements.
19865         (emit_sequence_entry_statements): New function, to emit special
19866         statements on entry of sequences when necessary. Establish GNAT
19867         condition handler in the proper cases for VMS.
19868         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
19869         emit_sequence_entry_statements.
19870
19871         * utils2.c (find_common_type): If both input types are BLKmode and
19872         have a constant size, use the smaller one.
19873         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
19874         the same.
19875
19876         * utils.c (value_factor_p): Make public, to allow uses from other gigi
19877         units.
19878         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
19879         (convert, case UNION_TYPE): Remove special treatment for unchecked
19880         unions.
19881
19882         PR ada/18659
19883         (update_pointer_to): Update variants of pointer types to unconstrained
19884         arrays by attaching the list of fields of the main variant.
19885
19886 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
19887             Robert Dewar  <dewar@adacore.com>
19888
19889         * a-exexpr.adb, a-exexpr-gcc.adb
19890         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
19891         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
19892         Remove code unused for exception propagation for the compiler itself
19893         from a-except.adb and update to still share separate packages.
19894
19895         * a-except.ads, a-except.adb: Ditto.
19896         Add comments that this version is now used only by the compiler and
19897         other basic tools. The full version that includes the Ada 2005 stuff
19898         is in separate files a-except-2005.ads/adb. The reason is that we do
19899         not want to cause bootstrap problems with compilers not recognizing
19900         Wide_Wide_String.
19901         Add exception reason code PE_Implicit_Return
19902         Add new exception reason code (Null Exception_Id)
19903
19904         * a-except-2005.adb, a-except-2005.ads: New files.
19905
19906         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
19907
19908         * s-wchcon.adb: New file.
19909
19910         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
19911         (traceback.o deps): Likewise.
19912         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
19913         Activate build of GMEM instrumentation library on VMS targets.
19914         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
19915         Use a-except-2005.ads/adb for all run-time library builds unless
19916         specified otherwise.
19917         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
19918         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
19919         Use s-parame.adb on all native platforms.
19920         Use s-parame-vxworks.adb on all vxworks platforms.
19921         Add env.c env.h in LIBGNAT_SRCS
19922         Add env.o in LIBGNAT_OBJS
19923         (GNATMAKE_OBJS): Remove ctrl_c.o object.
19924         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
19925         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
19926         supports VxWorks 6 RTPs.
19927         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
19928         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
19929
19930         * types.h, types.ads (Terminate_Program): New exception
19931         Add comment on modifying multiple versions of a-except.adb when the
19932         table of exception reasons is modified.
19933         Add exception reason code PE_Implicit_Return
19934         Add new exception reason code (Null Exception_Id)
19935
19936         * clean.adb (Initialize): Get the target parameters before checking
19937         if target is OpenVMS. Move the OpenVMS specific code here from package
19938         body elaboration code.
19939
19940 2006-02-13  Thomas Quinot  <quinot@adacore.com>
19941             Vincent Celier  <celier@adacore.com>
19942             Robert Dewar  <dewar@adacore.com>
19943
19944         * ali-util.adb (Get_File_Checksum): Update to account for change in
19945         profile of Initialize_Scanner.
19946
19947         * gprep.adb (Gnatprep): Update to account for change in profile of
19948         Initialize_Scanner.
19949         (Process_One_File): Same.
19950
19951         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
19952         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
19953         that behaviour using the new Unit information recorded in the source
19954         files table, rather than going through all units every time.
19955         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
19956         (Get_Source_Unit): Same.
19957
19958         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
19959         change in profile of Initialize_Scanner.
19960         (Prepare_To_Preprocess): Same.
19961
19962         * lib.ads: Fix typo in comment (templace -> template).
19963
19964         * prj-part.adb (Parse_Single_Project): Update to account for change in
19965         profile of Initialize_Scanner.
19966
19967         * scn.adb (Initialize_Scanner): Account for change in profile of
19968         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
19969         Also record the association of the given Source_File_Index to the
19970         corresponding Unit_Number_Type.
19971
19972         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
19973         procedure.
19974         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
19975         Remove Unit formal for generic scanner: this formal
19976         is only relevant to Scn (the scanner instance used to parse Ada source
19977         files), not to other instances. Update comment accordingly.
19978         (Scan): Use new function Snames.Is_Keyword_Name.
19979
19980         * sinfo-cn.adb: Fix typo in comment.
19981
19982         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
19983         Unit.
19984
19985         * sinput.ads (Source_File_Record): New component Unit, used to capture
19986         the unit identifier (if any) associated to a source file.
19987
19988         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
19989         Unit in Source_File_Record.
19990
19991         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
19992         in profile of Initialize_Scanner.
19993
19994         * scans.adb (Initialize_Ada_Keywords): New procedure
19995
19996         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
19997         Ada keywords in the Namet table, without the need to call
19998         Initialize_Scanner.
19999
20000         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
20001         (Is_Keyword_Name): New function
20002
20003         * snames.ads: Add subtype Configuration_Pragma_Names
20004         Add pragma Ada_2005 (synonym for Ada_05)
20005         (Is_Keyword_Name): New function
20006
20007         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
20008
20009 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
20010
20011         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
20012         index.
20013
20014         * a-stwima.adb (To_Set): Add extra check when N = 0.
20015
20016         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
20017
20018 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
20019
20020         * s-parame-mingw.adb, s-parame-linux.adb,
20021         s-parame-solaris.adb: Removed, replaced by s-parame.adb
20022
20023         * s-parame-vxworks.ads: Fix typo.
20024
20025         * s-parame-vxworks.adb: New file.
20026
20027         * s-parame.adb: Version now used by all native platforms.
20028         (Default_Stack_Size): Use 2 megs for default stack size and use
20029         __gl_default_stack_size when available.
20030         (Minimum_Stack_Size): Use 12K.
20031
20032         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
20033         (Create_Task): Refine implementation taking advantage of the XP stack
20034         size support. On XP, we now create the thread using the flag
20035         STACK_SIZE_PARAM_IS_A_RESERVATION.
20036
20037         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
20038
20039         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
20040         XP and 0 on older Windows versions.
20041
20042         * interfac-vms.ads: Removed, no longer used.
20043
20044 2006-02-13  Matthew Heaney  <heaney@adacore.com>
20045
20046         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb,
20047         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb,
20048         a-cohase.adb: All explicit raise statements now include an exception
20049         message.
20050
20051         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
20052         (Update_Element_Preserving_Key): renamed op to just Update_Element.
20053         Explicit raise statements now include an exception message
20054
20055         * a-cihase.ads, a-cohase.ads: Removed comment.
20056
20057         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
20058         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
20059         a-szbzha.adb, a-szfzha.ads: New files.
20060
20061 2006-02-13  Matthew Heaney  <heaney@adacore.com>
20062
20063         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
20064         quicksort.
20065
20066 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
20067
20068         * lang.opt: Wvariadic-macros: New option.
20069         Wold-style-definition: Likewise.
20070         Wmissing-format-attribute: Likewise.
20071
20072         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
20073         -Wold-style-definition and -Wmissing-format-attribute.
20074
20075 2006-02-13  Robert Dewar  <dewar@adacore.com>
20076
20077         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
20078
20079         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
20080
20081 2006-02-13  Nicolas Roche  <roche@adacore.com>
20082
20083         * a-envvar.adb, a-envvar.ads: New files.
20084
20085 2006-02-13  Douglas Rupp  <rupp@adacore.com>
20086
20087         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
20088
20089         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
20090
20091 2006-02-13  Pat Rogers  <rogers@adacore.com>
20092
20093         * a-rttiev.adb, a-rttiev.ads: New files.
20094
20095 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
20096
20097         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
20098         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
20099
20100         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
20101
20102 2006-02-13  Robert Dewar  <dewar@adacore.com>
20103
20104         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb,
20105         sem_case.adb: Minor code reorganization (not Present should be No)
20106
20107 2006-02-13  Geert Bosch  <bosch@adacore.com>
20108             Gary Dismukes  <dismukes@adacore.com>
20109
20110         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
20111         0, since the lower bound of the actual string may be greater than one.
20112
20113         PR ada/20753
20114         * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
20115         layout is requested.
20116
20117 2006-02-13  Vincent Celier  <celier@adacore.com>
20118
20119         * back_end.adb (Scan_Compiler_Arguments): Check if
20120         Search_Directory_Present is True and, if it is, add the argument in
20121         the source search directory path.
20122
20123         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
20124         Search_Directory_Present to True.
20125
20126 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
20127
20128         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
20129         volatile, to tell the compiler to preserve this variable at any level
20130         of optimization.
20131         (Gen_Versions_Ada): Temporarily work around codegen bug.
20132
20133 2006-02-13  Vincent Celier  <celier@adacore.com>
20134
20135         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
20136         gcc to link with option -shared-libgcc.
20137         (Gnatlink): Remove duplicate switches -shared-libgcc
20138
20139 2006-02-13  Robert Dewar  <dewar@adacore.com>
20140
20141         * gnatvsn.ads (Current_Year): New constant, used to easily update
20142         copyright on all GNAT tools.
20143
20144         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
20145         copyright notice.
20146
20147 2006-02-13  Robert Dewar  <dewar@adacore.com>
20148
20149         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
20150         after hyphen (small aesthetic change useful for a range of numbers
20151         using ^-^.
20152         Suppress range checks for a couple of assignments which otherwise
20153         cause validity checks with validity checking turned on.
20154
20155         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
20156         Improvement in error message for object.
20157         (Rep_Item_Too_Late): Remove '!' in warning message.
20158
20159 2006-02-13  Robert Dewar  <dewar@adacore.com>
20160             Eric Botcazou  <ebotcazou@adacore.com>
20161
20162         * err_vars.ads: Suppress range checks for a couple of assignments
20163         which otherwise cause validity checks with validity checking turned on.
20164         Update comments.
20165
20166         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
20167         Make message unconditional if it is a warning.
20168         (Error_Msg_NEL): Always output warning messages.
20169         Suppress range checks for a couple of assignments which otherwise
20170         cause validity checks with validity checking turned on.
20171
20172         * errout.ads (Message Insertion Characters): Document that '!' is
20173         implied by '?' in error messages.
20174
20175         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
20176         (Gnat1drv): Use a goto to end of main subprogram instead of
20177         Exit_Program (E_Success) so that finalization can occur normally.
20178
20179 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
20180
20181         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
20182         wrapped around.
20183
20184 2006-02-13  Vincent Celier  <celier@adacore.com>
20185
20186         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
20187         Unchecked_Conversion functions.
20188         (Modification_Time): Use direct conversion of OS_Time to Calendar time
20189         when OpenVMS returns False.
20190
20191         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
20192         a-dirval.adb (OpenVMS): New Boolean function
20193
20194 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20195             Thomas Quinot  <quinot@adacore.com>
20196
20197         * checks.adb (Build_Discriminant_Checks): If the expression being
20198         checks is an aggregate retrieve the values of its discriminants to
20199         generate the check, rather than creating a temporary and a reference
20200         to it.
20201         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
20202         (Install_Null_Excluding_Check): Ditto
20203         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
20204         not for the renamed object, so that the actual itype is attached in the
20205         proper context.
20206
20207 2006-02-13  Robert Dewar  <dewar@adacore.com>
20208             Vincent Celier  <celier@adacore.com>
20209
20210         * debug.adb: Eliminate numeric switches for binder/gnatmake
20211
20212         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
20213         switches for the compiler.
20214         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
20215         (Scan_Make_Switches): When failing with an illegal switch, output an
20216         error message with the full switch.
20217         Eliminate numeric switches for binder/gnatmake
20218
20219         * switch.ads, switch.adb (Bad_Switch): New procedure
20220
20221         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
20222         Remove 0-9 as debug flag character possibilities
20223         -d is now controlling the primary stack size when its value is a
20224         positive. Also add checks against invalid values, and support for kb,
20225         mb. Ditto for -D switch.
20226
20227 2006-02-13  Robert Dewar  <dewar@adacore.com>
20228             Serguei Rybin  <rybin@adacore.com>
20229
20230         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
20231         save/restore routines.
20232         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20233         were not always properly handled previously.
20234         Since we are changing the tree format anyway, also get rid of the
20235         junk obsolete Immediate_Errors flag.
20236         (Tree_Read): Change the way of reading Tree_Version_String - now we
20237         read the version string from the tree even if its length is not the
20238         same as the length of the version string computed from Gnatvsn.
20239         (Search_Directory_Present): New Boolean flag for the compiler.
20240         Define Tree_Version_String as a dynamic string.
20241         (Default_Stack_Size): new variable, used to handle switch -d.
20242
20243         * par-prag.adb:
20244         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
20245         only for main unit.
20246         Add pragma Ada_2005 (synonym for Ada_05)
20247         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20248         were not always properly handled previously.
20249
20250         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
20251         explicit Ada_95 to Ada_2005.
20252
20253 2006-02-13  Javier Miranda  <miranda@adacore.com>
20254             Robert Dewar  <dewar@adacore.com>
20255             Ed Schonberg  <schonberg@adacore.com>
20256
20257         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
20258         against errors in the source program: a private types for which the
20259         corresponding full type declaration is missing and pragma CPP_Virtual
20260         is used.
20261         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
20262         (Is_Known_Null): New flag
20263         (Has_Pragma_Pure): New flag
20264         (No_Return): Present in all entities, set only for procedures
20265         (Is_Limited_Type): A type whose ancestor is an interface is limited if
20266         explicitly declared limited.
20267         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
20268         entities. Only used for component marked Is_Tag. If present it stores
20269         the Offset_To_Top function used to provide this value in tagged types
20270         whose ancestor has discriminants.
20271
20272         * exp_ch2.adb: Update status of new Is_Known_Null flag
20273
20274         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
20275
20276         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
20277         the categorization sense if Is_Pure was set by pragma Pure_Function.
20278
20279 2006-02-13  Quentin Ochem  <ochem@adacore.com>
20280             Olivier Hainque  <hainque@adacore.com>
20281
20282         * bindusg.adb: Updated documentation for -d and -D switches.
20283
20284         * raise.h (__gnat_set_globals): added new parameter for
20285         Default_Stack_Size.
20286
20287         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
20288         (__gnat_handle_vms_condition): Adjust context before raise.
20289         (__gnat_install_handler): Restore the global vector setup for GCC
20290         versions before 3.4, as the frame based circtuitry is not available
20291         in this case.
20292         (__gnat_set_globals): added a parameter default_stack_size
20293         (__gl_default_stack_size): new variable.
20294
20295 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20296
20297         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
20298         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
20299         does not exist in the Ada RM.
20300         (Compatible_Int_Bounds): Determine whether two integer range bounds
20301         are of equal length and have the same start and end values.
20302         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
20303         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
20304         aggregate when it is part of an object declaration.
20305         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
20306         constrains discriminants of its parent, add explicitly the discriminant
20307         constraints of the ancestor by retrieving them from the
20308         stored_constraint of the parent.
20309
20310 2006-02-13  Robert Dewar  <dewar@adacore.com>
20311
20312         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
20313         attribute Mechanism_Code is applied to renamed subprogram, modify
20314         prefix to point to base subprogram.
20315         Max/Min attributes now violate Restriction No_Implicit_Conditionals
20316
20317         * sinfo.ads: Document that Mechanism_Code cannot be applied to
20318         renamed subprograms so that the front-end must replace the prefix
20319         appropriately.
20320
20321 2006-02-13  Javier Miranda  <miranda@adacore.com>
20322             Gary Dismukes  <dismukes@adacore.com>
20323
20324         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
20325         availability of RE_Interface_Tag.
20326         (Build_Initialization_Call): Fix wrong access to the discriminant value.
20327         (Freeze_Record_Type): Do not generate the tables associated with
20328         timed and conditional dispatching calls through synchronized
20329         interfaces if compiling under No_Dispatching_Calls restriction.
20330         When compiling for Ada 2005, for a nonabstract
20331         type with a null extension, call Make_Controlling_Function_Wrappers
20332         and insert the wrapper function declarations and bodies (the latter
20333         being appended as freeze actions).
20334         (Predefined_Primitive_Bodies): Do not generate the bodies of the
20335         predefined primitives associated with timed and conditional
20336         dispatching calls through synchronized interfaces if we are
20337         compiling under No_Dispatching_Calls.
20338         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
20339         service is available before generating a call.
20340         (Make_Controlling_Function_Wrappers): New procedure.
20341         (Expand_N_Full_Type_Declaration): Create a class-wide master for
20342         access-to-limited-interfaces because they can be used to reference
20343         tasks that implement such limited interface.
20344         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
20345         procedure spec and body of the Offset_To_Top function that is generated
20346         when the parent of a type with discriminants has secondary dispatch
20347         tables.
20348         (Init_Secondary_Tags): Handle the case in which the parent of the type
20349         containing secondary dispatch tables has discriminants to generate the
20350         correct arguments to call Set_Offset_To_Top.
20351         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
20352
20353         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
20354         Add Wide_[Wide_]Expanded_Name.
20355         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
20356         the same functionality of Get_Prim_Op_Address but applied to predefined
20357         primitive operations because the pointers to the predefined primitives
20358         are now saved in a separate table.
20359         (Parent_Size): Modified to get access to the separate table of primitive
20360         operations or the parent type.
20361         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
20362         functionality of Set_Prim_Op_Address but applied to predefined primitive
20363         operations.
20364         (Set_Signature): New subprogram used to store the signature of a DT.
20365         (Displace): If the Offset_To_Top value is not static then call the
20366         function generated by the expander to get such value; otherwise use
20367         the value stored in the table of interfaces.
20368         (Offset_To_Top): The type of the actual has been changed to Address to
20369         give the correct support to tagged types with discriminants. In this
20370         case this value is stored just immediately after the tag field.
20371         (Set_Offset_To_Top): Two new formals have been added to indicate if the
20372         offset_to_top value is static and hence pass this value to the run-time
20373         to store it in the table of interfaces, or else if this value is dynamic
20374         and then pass to the run-time the address of a function that is
20375         generated by the expander to provide this value for each object of the
20376         type.
20377
20378         * rtsfind.ads (Default_Prin_Op_Count): Removed.
20379         (Default_Prim_Op_Count): New entity
20380         (Get_Predefined_Prim_Op_Address): New entity
20381         (Set_Predefined_Prim_Op_Address): New entity
20382         (RE_Set_Signature): New entity
20383
20384 2006-02-13  Thomas Quinot  <quinot@adacore.com>
20385             Ed Schonberg  <schonberg@adacore.com>
20386
20387         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
20388         Make_Adjust_Call done for a newly-allocated object.
20389
20390         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
20391         in a subprogram are wrapped in a cleanup block, indicate that the
20392         subprogram contains an inner block with an exception handler.
20393         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
20394         Adjust call is for a newly-allocated object. In that case we must not
20395         assume that the finalization list chain pointers are correct (since they
20396         come from a bit-for-bit copy of the original object's pointers) so if
20397         the attach level would otherwise be zero (no change), we set it to 4
20398         instead to cause the pointers to be reset to null.
20399
20400         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
20401         reset chain pointers to null.
20402
20403 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20404
20405         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
20406         string, and the context requires a loop for the assignment (e.g.
20407         because the left-hand side is packed), generate a unique name for the
20408         temporary that holds the string, to prevent spurious name clashes.
20409
20410 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20411             Javier Miranda  <miranda@adacore.com>
20412             Robert Dewar  <dewar@adacore.com>
20413             Gary Dismukes  <dismukes@adacore.com>
20414
20415         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
20416         return unconstrained arrays.
20417         Update comments.
20418         (Expand_Call):  An indirect call through an access parameter of a
20419         protected operation is not a protected call.
20420         Add circuit to raise CE in Ada 2005 mode following call
20421         to Raise_Exception.
20422         (Register_DT_Entry): Do nothing if
20423         the run-time does not give support to abstract interfaces.
20424         (Freeze_Subprogram): In case of dispatching operations, do not generate
20425         code to register the operation in the dispatch table if the source
20426         is compiled with No_Dispatching_Calls.
20427         (Register_Predefined_DT_Entry): Generate code that calls the new
20428         run-time subprogram Set_Predefined_Prim_Op_Address instead of
20429         Set_Prim_Op_Address.
20430
20431         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
20432         on array assignments if the right-hand side is a function call that has
20433         been inlined. Check is performed on the assignment in the block.
20434         (Process_Bounds): If bounds and range are overloaded, apply preference
20435         rule for root operations to disambiguate, and diagnose true ambiguity.
20436         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
20437         a tag-indeterminate right-hand side even when Expander_Active is True.
20438         Needed to ensure that dispatching calls to T'Input are allowed and
20439         get the tag of the target class-wide object.
20440
20441         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
20442         an inherited primitive operation that already overrides several
20443         abstract interface primitives. For transitivity, the new entity must
20444         also override all the abstract interface primitives covered by the
20445         inherited overriden primitive.
20446         Emit warning if new entity differs from homograph in same scope only in
20447         that one has an access parameter and the other one has a parameter of
20448         a general access type with the same designated type, at the same
20449         position in the signature.
20450         (Make_Inequality_Operator): Use source locations of parameters and
20451         subtype marks from corresponding equality operator when creating the
20452         tree structure for the implicit declaration of "/=". This does not
20453         change anything in behaviour except that the decoration of the
20454         components of the subtree created for "/=" allows ASIS to get the
20455         string images of the corresponding identifiers.
20456         (Analyze_Return_Statement): Remove '!' in warning message.
20457         (Check_Statement_Sequence): Likewise.
20458         (Analyze_Subprogram_Body): For an access parameter whose designated type
20459         is an incomplete type imported through a limited_with clause, use the
20460         type of the corresponding formal in the body.
20461         (Check_Returns): Implicit return in No_Return procedure now raises
20462         Program_Error with a compile time warning, instead of beging illegal.
20463         (Has_Single_Return):  Function returning unconstrained type cannot be
20464         inlined if expression in unique return statement is not an identifier.
20465         (Build_Body_To_Inline): It is possible to inline a function call that
20466         returns an unconstrained type if all return statements in the function
20467         return the same local variable. Subsidiary procedure Has_Single_Return
20468         verifies that the body conforms to this restriction.
20469
20470         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
20471         same type, and  one of them is of an anonymous access type, convert
20472         the other operand to it, so that this is a valid binary operation for
20473         gigi.
20474         (Resolve_Type_Conversion): Handle subtypes of protected types and
20475         task types when accessing to the corresponding record type.
20476         (Resolve_Allocator): Add '\' in 2-line warning message.
20477         Remove '!' in warning message.
20478         (Resolve_Call): Add '\' in 2-line warning message.
20479         (Valid_Conversion): Likewise.
20480         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
20481         resulting type may be an access type with an implicit dereference.
20482         Obtain the proper component from the designated type.
20483         (Make_Call_Into_Operator): Handle properly a call to predefined equality
20484         given by an expanded name with prefix Standard, when the operands are
20485         of an anonymous access type.
20486         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
20487         Explicit_Dereference and Resolve_Selected_Component, to verify that the
20488         prefix of the expression is not of an incomplete type. Allows full
20489         diagnoses of all semantic errors.
20490         (Resolve_Actuals): If the actual is an allocator whose directly
20491         designated type is a class-wide interface we build an anonymous
20492         access type to use it as the type of the allocator. Later, when
20493         the subprogram call is expanded, if the interface has a secondary
20494         dispatch table the expander will add a type conversion to force
20495         the displacement of the pointer.
20496         (Resolve_Call): If a function that returns an unconstrained type is
20497         marked Inlined_Always and inlined, the call will be inlined and does
20498         not require the creation of a transient scope.
20499         (Check_Direct_Boolean_Op): Removed
20500         (Resolve_Comparison_Op): Remove call to above
20501         (Resolve_Equality_Op): Remove call to above
20502         (Resolve_Logical_Op): Inline above, since this is only call.
20503         (Valid_Conversion): Handle properly conversions between arrays of
20504         convertible anonymous access types.
20505
20506         PR ada/25885
20507         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
20508         the literal in an unchecked conversion, because GCC 4.x needs a static
20509         value for a string bound.
20510
20511 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20512             Hristian Kirtchev  <kirtchev@adacore.com>
20513
20514         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
20515         components of the corresponding record, take into account component
20516         definitions that are access definitions.
20517         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
20518         procedure is not considered a dispatching call and will be expanded
20519         properly.
20520
20521 2006-02-13  Javier Miranda  <miranda@adacore.com>
20522
20523         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
20524         controlling argument of the dispatching call is an abstract interface
20525         class-wide type then we use it directly.
20526         Check No_Dispatching_Calls restriction.
20527         (Default_Prim_Op_Position): Remove the code that looks for the last
20528         entity in the list of aliased subprograms. This code was wrong in
20529         case of renamings.
20530         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
20531         when the source is compiled with the No_Dispatching_Calls restriction.
20532         (Init_Predefined_Interface_Primitives): No need to inherit primitives
20533         if we are compiling with restriction No_Dispatching_Calls.
20534         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
20535         subprograms if we are compiling under No_Dispatching_Calls restriction.
20536         (Make_DT): Generate a dispatch table with a single dummy entry if
20537         we are compiling with the No_Dispatching_Calls restriction. In
20538         addition, in this case we don't generate code that calls to the
20539         following run-time subprograms: Set_Type_Kind, Inherit_DT.
20540         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
20541         of this subprogram if compiling with the No_Dispatching_Calls
20542         restriction.
20543         (Expand_Type_Conversion): Instead of using the actual parameter,
20544         the argument passed as parameter to the conversion function was
20545         erroneously referenced by the expander.
20546         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
20547         Set_Predefined_Primitive_Op_Address and Set_Signature.
20548         (Expand_Dispatching_Call): Generate call to
20549         Get_Predefined_Prim_Op_Address for predefined primitives.
20550         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
20551         predefined primitives.
20552         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
20553         primitives we reserve one dummy entry to ensure that the tag does not
20554         point to some memory that is associated with some other object. In
20555         addition, remove all the old code that generated the assignments
20556         associated with the signature of the dispatch table and replace them
20557         by a call to the new subprogram Set_Signature.
20558         (Set_All_DT_Position): Change the algorithm because now we have a
20559         separate dispatch table associated with predefined primitive operations.
20560         (Expand_Interface_Conversion): In case of non-static offset_to_top
20561         add explicit dereference to get access to the object after the call
20562         to displace the pointer to the object.
20563         (Expand_Interface_Thunk): Modify the generation of the actual used
20564         in the calls to the run-time function Offset_To_Top to fulfil its
20565         new interface.
20566         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
20567
20568 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20569
20570         * exp_dist.adb (Copy_Specification): For access parameters, copy
20571         Null_Exclusion flag, which will have been set for stream subprograms
20572         in Ada2005 mode.
20573
20574 2006-02-13  Pascal Obry  <obry@adacore.com>
20575
20576         * expect.c (__gnat_expect_portable_execvp): New implementation. The
20577         previous implementation was using the C runtime spawnve routine but
20578         the corresponding wait was using directly the Win32 API. This was
20579         causing some times a lock when waiting for an event using
20580         WaitForSingleObject in __gnat_waitpid. This new implementation uses
20581         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
20582         API fixes this problem.
20583
20584 2006-02-13  Robert Dewar  <dewar@adacore.com>
20585
20586         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
20587         call.
20588
20589 2006-02-13  Thomas Quinot  <quinot@adacore.com>
20590
20591         * exp_pakd.ads: Fix typos in comments.
20592
20593         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
20594         array reference that is an explicit dereference, mark the converted
20595         (packed) array reference as analyzed to prevent a forthcoming
20596         reanalysis from resetting its type to the original (non-packed) array
20597         type.
20598
20599 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20600             Javier Miranda  <miranda@adacore.com>
20601             Eric Botcazou  <ebotcazou@adacore.com>
20602
20603         * exp_util.ads, exp_util.adb (Find_Prim_Op,
20604         Is_Predefined_Primitive_Operation): When
20605         searching for the predefined equality operator, verify that operands
20606         have the same type.
20607         (Is_Predefined_Dispatching_Operation): Remove the code that looks
20608         for the last entity in the list of aliased subprograms. This code
20609         was wrong in case of renamings.
20610         (Set_Renamed_Subprogram): New procedure
20611         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
20612         Exp_Type constant computed when entering this subprogram.
20613         (Known_Null): New function
20614         (OK_To_Do_Constant_Replacement): New function
20615         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
20616         (Side_Effect_Free): An attribute reference 'Input is not free of
20617         side effect, unlike other attributes that are functions. (from code
20618         reading).
20619         (Remove_Side_Effects): Expressions that involve packed arrays or records
20620         are copied at the point of reference, and therefore must be marked as
20621         renamings of objects.
20622         (Is_Predefined_Dispatching_Operation): Return false if the operation is
20623         not a dispatching operation.
20624
20625         PR ada/18819
20626         (Remove_Side_Effects): Lift enclosing type conversion nodes for
20627         elementary types in all cases.
20628
20629 2006-02-13  Javier Miranda  <miranda@adacore.com>
20630
20631         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
20632         task types when accessing to the corresponding record type.
20633         Remove '!' in warning message.
20634
20635 2006-02-13  Olivier Hainque  <hainque@adacore.com>
20636
20637         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
20638         to avoid useless and space inefficient overalignments on targets where
20639         Max_Alignment is larger than 16.
20640
20641 2006-02-13  Pascal Obry  <obry@adacore.com>
20642
20643         * g-catiio.adb (Sec_Number): New type used to compute the number of
20644         seconds since 1-1-1970.
20645         (Image) [Natural]: The parameter was an Integer, as we can't deal with
20646         negative numbers (years, months...) it is better to have a Natural here.
20647         Code clean-up.
20648         (Image) [Number]: Change parameter from Long_Integer to Number.
20649         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
20650         overflow for dates past year 2038.
20651
20652 2006-02-13  Matthew Heaney  <heaney@adacore.com>
20653
20654         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
20655         Constraint_Error.
20656
20657 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
20658
20659         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
20660         native platforms.
20661         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
20662         finalization can occur normally.
20663
20664 2006-02-13  Vincent Celier  <celier@adacore.com>
20665
20666         * gnatcmd.adb (Rules_Switches): New table
20667         (Add_To_Rules_Switches): New procedure
20668         (GNATCmd): For command CHECK, put all options following "-rules" in the
20669         Rules_Switches table. Append these -rules switches after the -cargs
20670         switches.
20671
20672 2006-02-13  Robert Dewar  <dewar@adacore.com>
20673
20674         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
20675         These two cases were generating incorrect output, and if this unit
20676         was built with checks on, generated a discriminant mismatch constraint
20677         error.
20678
20679 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20680             Robert Dewar  <dewar@adacore.com>
20681
20682         * lib-xref.adb (Get_Type_Reference): For a private type whose full
20683         view is an array type, indicate the component type as well, for
20684         navigation purposes.
20685         (Generate_Reference): Don't consider array ref on LHS to be a case
20686         of violating pragma Unreferenced.
20687         Do not give Ada 2005 warning except on real reference.
20688
20689 2006-02-13  Vincent Celier  <celier@adacore.com>
20690
20691         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
20692         main source, add switch -mdebug-main=_ada_ so that the executable can
20693         be debugged by the standard VMS debugger.
20694         (Gnatmake): Set No_Main_Subprogram to True when there is no main
20695         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
20696         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
20697         of the last source, as the binding and linking phases are never
20698         performed.
20699         Set all executable obsolete when rebuilding a library.
20700
20701         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
20702         options.
20703
20704 2006-02-13  Javier Miranda  <miranda@adacore.com>
20705
20706         PR ada/23973
20707         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
20708         code to improve the error message reported when the program has
20709         declarations of abstract interface types and it is not compiled with
20710         the -gnat05 switch.
20711         (P_Access_Definition): Reorganize the code to improve the error
20712         message reported when the new Ada 2005 syntax for anonymous
20713         access types is used and the program is not compiled with the
20714         -gnat05 switch.
20715
20716 2006-02-13  Robert Dewar  <dewar@adacore.com>
20717
20718         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
20719         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
20720         (MODE_IN)
20721
20722 2006-02-13  Javier Miranda  <miranda@adacore.com>
20723
20724         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
20725         against source containing syntax errors.
20726
20727 2006-02-13  Vincent Celier  <celier@adacore.com>
20728
20729         * prj.adb (Reset): Initialize the first element of table Namings with
20730         the standard naming data.
20731
20732 2006-02-13  Vincent Celier  <celier@adacore.com>
20733
20734         * prj.ads (Error_Warning): New enumeration type
20735
20736         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
20737         unknown, use the location of the project to report the error.
20738         (When_No_Sources): New global variable
20739         (Report_No_Ada_Sources): New procedure
20740         (Check): New parameter When_No_Sources. Set value of global variable
20741         When_No_Sources,
20742         (Find_Sources): Call Report_No_Ada_Sources when appropriate
20743         (Get_Sources_From_File): Ditto
20744         (Warn_If_Not_Sources): Better warning messages indicating the unit name
20745         and the file name.
20746
20747         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
20748         Call Prj.Proc.Process with parameter When_No_Sources.
20749
20750         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
20751         Call Recursive_Check with parameter When_No_Sources.
20752         (Recursive_Check): New parameter When_No_Sources. Call itself and
20753         Prj.Nmsc.Check with parameter When_No_Sources.
20754         (Process): New parameter When_No_Sources. Call Check with parameter
20755         When_No_Sources.
20756         (Copy_Package_Declarations): New procedure to copy renamed parameters
20757         and setting the location of the declared attributes to the location
20758         of the renamed package.
20759         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
20760         packages.
20761
20762 2006-02-13  Vincent Celier  <celier@adacore.com>
20763
20764         * prj-makr.adb (Make): Preserve the comments from the original project
20765         file.
20766         When removing nodes (attributes Source_Dirs, Source_Files,
20767         Source_List_File and package Naming), save the comments and attach the
20768         saved comments to the newly created nodes.
20769         Do not add a with clause for the naming package if one already exists.
20770
20771 2006-02-13  Javier Miranda  <miranda@adacore.com>
20772             Gary Dismukes  <dismukes@adacore.com>
20773             Robert Dewar  <dewar@adacore.com>
20774
20775         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
20776
20777         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
20778         aliased entities to look for the overriden abstract interface
20779         subprogram.
20780         (Is_Interface_Subprogram): Complete documentation.
20781         (Check_Dispatching_Operation): Do not generate code to register the
20782         operation in the dispatch table if the source is compiled with
20783         restriction No_Dispatching_Calls.
20784         (Override_Dispatching_Operation): Check for illegal attempt to override
20785         No_Return procedure with procedure that is not No_Return
20786         (Check_Dispatching_Call): Suppress the check for an abstract operation
20787         when the original node of an actual is a tag-indeterminate attribute
20788         call, since the attribute, which must be 'Input, can never be abstract.
20789         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
20790         call to the Input attribute (even when rewritten).
20791         (Propagate_Tag): Augment comment to indicate the possibility of a call
20792         to an Input attribute.
20793
20794         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
20795         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
20796
20797         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
20798         No_Wide_Characters is no longer partition-wide
20799         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
20800         rather than GNAT
20801
20802 2006-02-13  Douglas Rupp  <rupp@adacore.com>
20803
20804         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
20805
20806 2006-02-13  Javier Miranda  <miranda@adacore.com>
20807
20808         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
20809         handles default-initialized components to keep separate the management
20810         of this feature but also avoid the unrequired resolution and
20811         expansion of components that do not have partially initialized
20812         values.
20813         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
20814         (Check_Bounds): Likewise.
20815         (Check_Length): Likewise.
20816
20817 2006-02-13  Javier Miranda  <miranda@adacore.com>
20818             Ed Schonberg  <schonberg@adacore.com>
20819
20820         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
20821         abstract interface type call analyze_and_resolve to expand the type
20822         conversion into the corresponding displacement of the
20823         reference to the base of the object.
20824         (Eval_Attribute, case Width): For systems where IEEE extended precision
20825         is supported, the maximum exponent occupies 4 decimal digits.
20826         (Accessibility_Message): Add '\' in 2-line warning message.
20827         (Resolve_Attribute): Likewise.
20828         (case Attribute_Access): Significantly revise checks
20829         for illegal access-to-subprogram Access attributes to properly enforce
20830         the rules of 3.10.2(32/2).
20831         Diagnose use of current instance with an illegal attribute.
20832
20833         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
20834         to a Node_Id.
20835         (Enclosing_Generic_Unit): New function to return a node's innermost
20836         enclosing generic declaration node.
20837         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
20838         (Type_Access_Level): The accessibility level of anonymous acccess types
20839         associated with discriminants is that of the current instance of the
20840         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
20841         (Compile_Time_Constraint_Error): Handle case of conditional expression.
20842         (Kill_Current_Values_For_Entity): New function
20843         (Enter_Name): Change formal type to Entity_Id
20844
20845 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
20846             Ed Schonberg  <schonberg@adacore.com>
20847             Gary Dismukes  <dismukes@adacore.com>
20848
20849         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
20850         Analyze_Compilation_Unit.
20851         Detect and warn on redundant with clauses detected in a package spec
20852         and/or body when -gnatwr is used.
20853         (Analyze_Context): Analyze config pragmas before other items
20854         (Install_Context_Items): Don't analyze config pragmas here
20855         (Install_Limited_Withed_Unit): Set limited entity of package in
20856         with_clause so that cross-reference information or warning messages on
20857         unused packages can be properly generated
20858         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
20859         has Error_Posted set. Prevent infinite loops in illegal programs.
20860         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
20861         to the point of the error test requiring the current unit to be private.
20862         This ensures that private with clauses are not exempted from the basic
20863         checking for being a descendant of the same library unit parent as a
20864         withed private descendant unit.
20865         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
20866         handle private with clauses properly, as well as to account for cases
20867         where the withed unit is a public descendant of a private ancestor
20868         (in which case the current unit must be a descendant of the private
20869         ancestor's parent). The spec comments were updated accordingly. Also,
20870         the old error message in this subprogram was replaced with error
20871         messages that mirror the errors tested and reported by
20872         Check_Private_Child_Unit.
20873         Parameter and variable names improved for readability.
20874         (Install_Limited_Context_Clauses): Remove test for a withed unit being
20875         private as the precondition for calling
20876         Check_Private_Limited_Withed_Unit since that subprogram has been
20877         revised to test public units as well as private units.
20878
20879 2006-02-13  Thomas Quinot  <quinot@adacore.com>
20880             Robert Dewar  <dewar@adacore.com>
20881             Ed Schonberg  <schonberg@adacore.com>
20882             Javier Miranda  <miranda@adacore.com>
20883
20884         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
20885         that Scope_Stack.First = 1.
20886         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20887         were not always properly handled previously.
20888         (Formal_Entity): Complete rewrite, to handle properly some complex case
20889         with multiple levels of parametrization by formal packages.
20890         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
20891         to the corresponding derived type declaration for proper semantics.
20892
20893         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
20894         (Check_Component): Enforce restriction on components of
20895         unchecked_unions: a component in a variant cannot contain tasks or
20896         controlled types.
20897         (Unchecked_Union): Allow nested variants and multiple discriminants, to
20898         conform to AI-216.
20899         Add pragma Ada_2005 (synonym for Ada_05)
20900         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20901         were not always properly handled previously.
20902         Document that pragma Propagate_Exceptions has no effect
20903         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
20904         (Set_Convention_From_Pragma): Check that if a convention is
20905         specified for a dispatching operation, then it must be
20906         consistent with the existing convention for the operation.
20907         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
20908         longer required to specify an vtable-ptr component in the record. For
20909         compatibility reasons we leave the support for the previous definition.
20910         (Analyze_Pragma, case No_Return): Allow multiple arguments
20911
20912         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
20913         non-overrideen inherited operation with a controlling result as
20914         illegal only its implicit declaration comes from the derived type
20915         declaration of its result's type.
20916         (Check_Possible_Deferred_Completion): Relocate the object definition
20917         node of the subtype indication of a deferred constant completion rather
20918         than directly analyzing it. The analysis of the generated subtype will
20919         correctly decorate the GNAT tree.
20920         (Record_Type_Declaration): Check whether this is a declaration for a
20921         limited derived record before analyzing components.
20922         (Analyze_Component_Declaration): Diagnose record types  not explicitly
20923         declared limited when a component has a limited type.
20924         (Build_Derived_Record_Type): Code reorganization to check if some of
20925         the inherited subprograms of a tagged type cover interface primitives.
20926         This check was missing in case of a full-type associated with a private
20927         type declaration.
20928         (Constant_Redeclaration): Check that the subtypes of the partial and the
20929         full view of a constrained deferred constant statically match.
20930         (Mentions_T): A reference to the current type in an anonymous access
20931         component declaration  must be an entity name.
20932         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
20933         class_wide type to refer to full type, not to the incomplete one.
20934         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
20935         available. Required to give support to the certified run-time.
20936         (Analyze_Component_Declaration): In case of anonymous access components
20937         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
20938         (Process_Discriminants): For an access discriminant, use the
20939         discriminant specification as the associated_node_for_itype, to
20940         simplify accessibility checks.
20941
20942 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20943             Javier Miranda  <miranda@adacore.com>
20944
20945         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
20946         abstract interpretations on an operator, remove interpretations that
20947         yield Address or a type derived from it, if one of the operands is an
20948         integer literal.
20949         (Try_Object_Operation.Try_Primitive_Operation,
20950         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
20951         location when creating the new reference to a primitive or class-wide
20952         operation as a part of rewriting a subprogram call.
20953         (Try_Primitive_Operations): If context requires a function, collect all
20954         interpretations after the first match, because there may be primitive
20955         operations of the same type with the same profile and different return
20956         types. From code reading.
20957         (Try_Primitive_Operation): Use the node kind to choose the proper
20958         operation when a function and a procedure have the same parameter
20959         profile.
20960         (Complete_Object_Operation): If formal is an access parameter and prefix
20961         is an object, rewrite as an Access reference, to match signature of
20962         primitive operation.
20963         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
20964         by an expanded name with prefix Standard, when the operands are of an
20965         anonymous access type.
20966         (Remove_Abstract_Operations): If the operation is abstract because it is
20967         inherited by a user-defined type derived from Address, remove it as
20968         well from the set of candidate interpretations of an overloaded node.
20969         (Analyze_Membership_Op): Membership test not applicable to cpp-class
20970         types.
20971
20972 2006-02-13  Bob Duff  <duff@adacore.com>
20973
20974         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
20975         redundant use clauses.
20976         In particular, if the scope of two use clauses overlaps, but one is not
20977         entirely included in the other, we should not warn.  This can happen
20978         with nested packages.
20979         (Analyze_Subprogram_Renaming): Protect the compiler against previously
20980         reported errors. The bug was reported when the compiler was built
20981         with assertions enabled.
20982         (Find_Type): If the node is a 'Class reference and the prefix is a
20983         synchronized type without a corresponding record, return the type
20984         itself.
20985
20986 2006-02-13  Javier Miranda  <miranda@adacore.com>
20987
20988         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
20989         if this is the full-declaration associated with a private declaration
20990         that implement interfaces, then the private type declaration must be
20991         limited.
20992         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
20993         as aliased. The use of the 'access attribute is not available for such
20994         object (for this purpose the object should be explicitly marked as
20995         aliased, but being an anonymous type this is not possible).
20996
20997 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20998             Robert Dewar  <dewar@adacore.com>
20999
21000         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
21001         compilation unit is an elaboration scope.
21002         (Add_Task_Proc): Add '\' in 2-line warning message.
21003         (Activate_All_Desirable): Deal with case of unit with'ed by parent
21004
21005 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21006             Javier Miranda  <miranda@adacore.com>
21007
21008         * sem_type.adb (Write_Overloads): Improve display of candidate
21009         interpretations.
21010         (Add_One_Interp): Do not add to the list of interpretations aliased
21011         entities corresponding with an abstract interface type that is an
21012         immediate ancestor of a tagged type; otherwise we have a dummy
21013         conflict between this entity and the aliased entity.
21014         (Disambiguate): The predefined equality on universal_access is not
21015         usable if there is a user-defined equality with the proper signature,
21016         declared in the same declarative part as the designated type.
21017         (Find_Unique_Type): The universal_access equality operator defined under
21018         AI-230 does not cover pool specific access types.
21019         (Covers): If one of the types is a generic actual subtype, check whether
21020         it matches the partial view of the other type.
21021
21022 2006-02-13  Thomas Quinot  <quinot@adacore.com>
21023
21024         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
21025         line. This is necessary to allow In_Extended_Main_Unit to provide
21026         correct results for itypes while writing out expanded source.
21027         (Close_File): No need to update the source_index_table here since it's
21028         now done for each line.
21029
21030 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21031             Robert Dewar  <dewar@adacore.com>
21032
21033         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
21034         preserve the source unit where the itype is declared, and prevent a
21035         backend abort.
21036         (Note_Implicit_Run_Time_Call): New procedure
21037         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
21038         E_Subprogram_Type)
21039
21040         * sprint.ads: Document use of $ for implicit run time routine call
21041
21042 2006-02-13  Quentin Ochem  <ochem@adacore.com>
21043
21044         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
21045         task name.
21046
21047 2006-02-13  Bob Duff  <duff@adacore.com>
21048
21049         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
21050         Scan_Unsigned, so we do not scan leading blanks and sign twice.
21051         Integer'Value("- 5") and Integer'Value("-+5") now correctly
21052         raise Constraint_Error.
21053
21054         * s-vallli.adb (Scan_Long_Long_Integer): Call
21055         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
21056         do not scan leading blanks and sign twice.
21057         Integer'Value("- 5") and Integer'Value("-+5") now correctly
21058         raise Constraint_Error.
21059
21060         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
21061         Scan_Long_Long_Unsigned): Split out most of the processing from
21062         Scan_Long_Long_Unsigned out into
21063         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
21064         This prevents scanning leading blanks and sign twice.
21065         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
21066         See RM-3.5(44).
21067
21068         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
21069         out most of the processing from Scan_Unsigned out into
21070         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
21071         This prevents scanning leading blanks and sign twice.
21072
21073         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
21074         use with Modular'Value attribute.
21075         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
21076         attribute.
21077
21078 2006-02-13  Robert Dewar  <dewar@adacore.com>
21079
21080         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
21081
21082 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
21083
21084         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
21085         (PPC VxWorks): Likewise.
21086         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
21087         (forced_callee): Make non-inlinable and non-pure.
21088         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
21089
21090 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
21091             Ben Brosgol  <brosgol@adacore.com>
21092             Robert Dewar  <dewar@adacore.com>
21093
21094         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
21095         support.
21096         Document that gnatbind -M option is for cross environments only.
21097         Added description of using gnatmem to trace gnat rtl allocs and deallocs
21098         Add note on use of $ to label implicit run time calls
21099         Add documentation for -gnatyI (check mode IN)
21100         Updated chapter on compatibility with HP Ada
21101         VMS-oriented edits.
21102         Ran spell and corrected errors
21103         Add documentation for gnatbind -d and rework documentation of -D
21104         at the same time.
21105         Add subprogram/data elimination section.
21106         Minor editing of annex A.
21107         Add section for gnatcheck.
21108         Add documentation for restriction No_Dispatching_Calls
21109         Add documentation for pragma Ada_2005
21110         Remove mention of obsolete pragma Propagate_Exceptions
21111         Document that pragma Unreferenced can appear after DO in ACCEPT
21112         Clarify Pure_Function for library level units
21113         Mention Max/Min in connection with No_Implicit_Conditionals
21114         No_Wide_Characters restriction is no longer partition-wide
21115         Add a nice example for Universal_Literal_String attribute
21116         Document that pragma No_Return can take multiple arguments
21117
21118         * ug_words: Added entry for gnatcheck
21119
21120         * g-ctrl_c.ads (Install_Handler): Enhance comments
21121
21122         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
21123
21124         * g-trasym.ads: Add documentation on how to do off line symbolic
21125         traceback computation.
21126
21127         * s-fatgen.adb: Add comments for Unaligned_Valid
21128
21129         * stand.ads: Fix typo in comment
21130
21131 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21132
21133         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
21134
21135 2006-02-06  Roger Sayle  <roger@eyesopen.com>
21136
21137         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
21138
21139 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21140
21141         PR target/25926
21142         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
21143         implementation that calls __main.
21144
21145 2006-01-25  Peter O'Gorman  <peter@pogma.com>
21146
21147         PR bootstrap/25859
21148         * Makefile.in (GCC_LINK): Remove quotes.
21149         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
21150         or $(GCC_LINK).
21151
21152         (powerpc-darwin): Pass -shared-libgcc when building shared library.
21153
21154 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21155
21156         PR ada/24533
21157         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
21158
21159 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21160
21161         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
21162
21163 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
21164
21165         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
21166         needed.
21167
21168 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
21169
21170         * Make-lang.in: Update dependencies
21171
21172 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
21173
21174         * Make-lang.in: Add rule for ada/exp_sel.o
21175
21176 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
21177
21178         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
21179
21180 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
21181
21182         * gnatvsn.ads (Library_Version): Bump to version 4.2
21183         (ASIS_Version_Number): Bumped.
21184
21185 2005-12-09  Doug Rupp  <rupp@adacore.com>
21186
21187         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
21188         Ada bind file prefix on VMS from b$ to b__.
21189         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
21190         __init.
21191
21192         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
21193         Targparm.OpenVMS_On_Target.
21194         (Object_Suffix): Initialize with target object suffix.
21195         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
21196
21197         * butil.adb: Change some Hostparm.OpenVMS checks to
21198         Targparm.OpenVMS_On_Target.
21199
21200         * clean.adb: Change some Hostparm.OpenVMS checks to
21201         Targparm.OpenVMS_On_Target.
21202         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
21203         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
21204         Ada bind file prefix on VMS from b$ to b__.
21205
21206         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
21207         --GCC so that Get_Target_Parameters can find system.ads.
21208         (Gnatlink): Call Get_Target_Parameters in mainline.
21209         Initialize standard packages for Targparm.
21210         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
21211         (Process_Args): Also Check for object files with target object
21212         extension.
21213         (Make_Binder_File_Names): Create with target object extension.
21214         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
21215         to b__.
21216
21217         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
21218         Targparm.OpenVMS_On_Target.
21219         ({declaration},Build_Library,Check_Library): Change Ada bind file
21220         prefix on VMS from b$ to b__.
21221
21222         * osint-b.adb: Change some Hostparm.OpenVMS checks to
21223         Targparm.OpenVMS_On_Target.
21224         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
21225         b__.
21226
21227         * targext.c: New file.
21228
21229         * Makefile.in: add support for vxworks653 builds
21230         (../../vxaddr2line): gnatlink with targext.o.
21231         (TOOLS_LIBS): Move targext.o to precede libgnat.
21232         (init.o, initialize.o): Minor clean up in dependencies.
21233         (GNATLINK_OBJS): Add targparm.o, snames.o
21234         Add rules fo building targext.o and linking it explicitly with all
21235         tools.
21236         Also add targext.o to gnatlib.
21237
21238         * Make-lang.in: Add rules for building targext.o and linking it in
21239         with gnat1 and gnatbind.
21240         Add entry for exp_sel.o.
21241
21242         * osint.adb Change some Hostparm.OpenVMS checks to
21243         Targparm.OpenVMS_On_Target.
21244         (Object_File_Name): Use target object suffix.
21245
21246         * osint.ads (Object_Suffix): Remove, no longer used.
21247         (Target_Object_Suffix): Initialize with target object suffix.
21248
21249         * rident.ads: Add special exception to license.
21250
21251         * targparm.adb (Get_Target_Parameters): Set the value of
21252         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
21253         value.
21254         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
21255
21256         * targparm.ads: Add special exception to license.
21257
21258         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
21259         function.
21260         (Copy_File): Make sure from file is closed if error on to file
21261         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
21262
21263         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
21264         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
21265
21266         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
21267         target object suffix.
21268
21269 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
21270             Quentin Ochem  <ochem@adacore.com>
21271             Florian Villoing  <villoing@adacore.com>
21272
21273         * a-taster.ads, a-taster.adb: New files.
21274
21275         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
21276         link to the version that does nothing. This way the task termination
21277         routine is not executed twice for the environment task when finishing
21278         because of an unhandled exception.
21279
21280         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
21281         handler because of an unhandled exception.
21282
21283         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
21284         System.Tasking.Utilities instead of that in System.Tasking.Stages.
21285
21286         * s-finimp.adb (initialization code): Modify the soft link for the
21287         finalization of the global list instead of Adafinal.
21288
21289         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
21290         non-tasking version of the soft link for task termination. We do
21291         nothing since if we are using the non-tasking version it
21292         means that the task termination functionality is not used.
21293         (Null_Finalize_Global_List): Add this null version for the procedure
21294         in charge of finalizing the global list for controlled objects.
21295         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
21296         instead for handling run-time termination in a more flexible way.
21297         (Adafinal_NT): This new procedure will take care of finalizing the
21298         global list for controlled objects if needed, but no tasking
21299         finalization.
21300
21301         * s-tarest.adb (Task_Lock): Do not try to lock again the
21302         Global_Task_Lock if we already own it. Otherwise, we get blocked in
21303         some run-time operations.
21304         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
21305         until all nested locks have been released.
21306         (Task_Wrapper): Call the fall-back task termination handler. It
21307         applies to all tasks but the environment task.
21308         (Finalize_Global_Tasks): Add the call for the task termination
21309         procedure for the environment task.
21310         (Task_Wrapper): suppress warnings around declaration of
21311         Secondary_Stack_Address.
21312
21313         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
21314         moved to the Common_ATCB record.
21315         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
21316         Common_ATCB record.
21317         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
21318         Common_ATCB record.
21319
21320         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
21321         Fall_Back_Handler, and Specific_Handler.
21322
21323         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
21324         defined in Ada.Task_Termination, to avoid circular dependencies.
21325         (Termination_Handler): Redefine this type here, alredy defined in
21326         Ada.Task_Termination, for avoiding circular dependencies.
21327         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
21328         for storing task termination handlers. In addition,
21329         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
21330         Common_ATCB because it is used by both the regular and the restricted
21331         run times.
21332         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
21333         Common_ATCB because it is used by both the regular and the restricted
21334         run times.
21335         (Common_ATCB): Added a dynamic task analyzer field.
21336
21337         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
21338         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
21339         (Task_Wrapper): Call the task termination handler. It applies to all
21340         tasks but the environment task.
21341         (Finalize_Global_Tasks): Call the task termination procedure for the
21342         environment task. The call to Finalize_Global_List is now performed
21343         using the soft links mechanism.
21344         (Task_Wrapper): added dynamic stack analysis.
21345
21346         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
21347         potentially blocking operations has been moved from
21348         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
21349         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
21350         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
21351         this run-time check.
21352
21353         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
21354         of task termination procedure.
21355         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
21356         link for the task termination procedure.
21357
21358         * bindusg.adb: (Bindusg): Added documentation for -u option.
21359
21360         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
21361         (Get_Main_C): Add handling of dynamic stack analysis.
21362         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
21363
21364         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
21365         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
21366         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
21367
21368         * opt.ads: Added flags used by dynamic stack measurement.
21369         (Max_Line_Length): Remove (not used anymore)
21370
21371         * s-io.ads, s-io.adb (Standard_Error): new subprogram
21372         (Standart_Output): new subprogram
21373         (Set_Output): new subprogram
21374         (Put): now uses the value of Current_Out to know if the output has to be
21375         send to stderr or stdout.
21376
21377         * s-stausa.ads: Complete implementation.
21378
21379         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
21380
21381         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
21382         list of Ada 05 files.
21383         (GNAT Library Units): Add AltiVec files.
21384
21385         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
21386         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
21387         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
21388
21389 2005-12-09  Nicolas Setton  <setton@adacore.com>
21390
21391         * adaint.c (__gnat_locate_regular_file): Return immediately if
21392         file_name is empty.
21393
21394 2005-12-09  Javier Miranda  <miranda@adacore.com>
21395             Hristian Kirtchev  <kirtchev@adacore.com>
21396
21397         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
21398         to the specification because the frontend generates code that uses this
21399         subprogram.
21400         (Set_Interface_Table): Add missing assertion.
21401         Update documentation describing the run-time structure.
21402         (Displace): New subprogram that displaces the pointer to the object
21403         to reference one of its secondary dispatch tables.
21404         (IW_Membership): Modified to use the new table of interfaces.
21405         (Inherit_TSD): Modified to use the new table of interfaces.
21406         (Register_Interface_Tag): Use the additional formal to fill the
21407         contents of the new table of interfaces.
21408         (Set_Interface_Table): New subprogram that stores in the TSD the
21409         pointer to the table of interfaces.
21410         (Set_Offset_To_Top): Use the additional formal to save copy of
21411         the offset value in the table of interfaces.
21412         Update structure of GNAT Primary and Secondary dispatch table diagram.
21413         Add comment section on GNAT dispatch table prologue.
21414         (Offset_To_Signature): Update the constant value of the Signature field.
21415         (Dispatch_Table): Update comment on hidden fields in the prologue.
21416         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
21417         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
21418         the type of formal parameter T to Tag, introduce additional assertions.
21419         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
21420         conversion.
21421         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
21422
21423         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
21424         in all the calls to Expand_Interface_Thunk. Instead of referencing the
21425         record component containing the tag of the secondary dispatch table we
21426         have to use the Offset_To_Top run-time function to get this information;
21427         otherwise if the pointer to the base of the object has been displace
21428         we get a wrong value if we use the 'position attribute.
21429
21430         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
21431         all the calls to Expand_Interface_Thunk.
21432         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
21433         interfaces; hence the call to Set_Interface_Table was clearly wrong.
21434         (Collect_All_Interfaces): Modify the internal subprogram Collect to
21435         ensure that the interfaces implemented by the ancestors are placed
21436         at the header of the generated list.
21437         (Expand_Interface_Conversion): Handle the case in which the displacement
21438         associated with the interface conversion is not statically known. In
21439         this case we generate a call to the new run-time subprogram Displace.
21440         (Make_DT): Generate and fill the new table of interfaces.
21441         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
21442         Get_Tagged_Kind and Set_Tagged_Kind.
21443         (Tagged_Kind): New function that determines the tagged kind of a type
21444         with respect to limitedness and concurrency and returns a reference to
21445         RE_Tagged_Kind.
21446         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
21447         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
21448         primary dispatch table for a type.
21449         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
21450         secondary dispatch table respectively of a tagged type.
21451
21452         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
21453         (Expand_Interface_Conversion): New subprogram to indicate if the
21454         displacement of the type conversion is statically known.
21455         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
21456
21457         * rtsfind.ads (RE_Offset_To_Top): New entity
21458         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
21459         accessible to users.
21460         (Re_Displace): New entity
21461         (RE_Interface_Data): New entity
21462         (RE_Set_Interface_Data): New_Entity
21463         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
21464         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
21465         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
21466         RE_TK_Tagged, RE_TK_Task.
21467
21468         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
21469         Init_Secondary_Tags_Internal to allow its use with interface types and
21470         also to generate the code for the new additional actual required
21471         by Set_Offset_To_Top.
21472         (Build_Init_Statements): In case of components associated with abstract
21473         interface types there is no need to generate a call to its IP.
21474         (Freeze_Record_Type): Generate Select Specific Data tables only for
21475         concurrent types.
21476         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
21477         the bodies and specifications of the predefined primitive operations
21478         dealing with dispatching selects and abort, 'Callable, 'Terminated only
21479         for concurrent types.
21480
21481         * exp_sel.ads, exp_sel.adb: New files.
21482
21483         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
21484         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
21485         properly protected objects and attach handler in the case of the
21486         restricted profile.
21487         Move embeded package Select_Expansion_Utilities into a separate external
21488         package.
21489         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
21490         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
21491         (Build_K, Build_S_Assignment): New subprograms, part of the select
21492         expansion utilities.
21493         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
21494         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
21495         where the trigger is a dispatching procedure of a limited tagged type.
21496
21497 2005-12-09  Olivier Hainque  <hainque@adacore.com>
21498
21499         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
21500         pointer initialization values. Make a SAVE_EXPR instead. Add comments
21501         about the use and expansion of SAVE_EXPRs in the various possible
21502         renaming handling cases.
21503         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
21504         abusing DECL_FCONTEXT.
21505
21506 2005-12-09  Matthew Heaney  <heaney@adacore.com>
21507
21508         * a-convec.adb (Merge): Added assertions to check whether vector params
21509         are sorted.
21510
21511         * a-coinve.adb (Merge): Added assertions to check whether vector params
21512         are sorted.
21513
21514         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
21515         draft.
21516         (Cursor'Read): raises PE
21517
21518         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
21519         to its default value.
21520
21521         * a-cihama.adb: Manually check whether cursor's key and elem are
21522         non-null
21523
21524         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
21525         (Merge): Assert that target and source lists are in order
21526         (Swap): Declare non-const temporaries, to pass to Splice
21527
21528         * a-cdlili.ads: (Splice): Changed param name and param mode
21529
21530         * a-cdlili.adb: (Splice): Changed param name and param mode
21531         (Merge): Assert that target and source lists are in order
21532         (Swap): Declare non-const temporaries, to pass to Splice
21533
21534         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
21535         (Write): declare Stream param as not null
21536
21537         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
21538         an exception message.
21539
21540 2005-12-09  Thomas Quinot  <quinot@adacore.com>
21541             Robert Dewar  <dewar@adacore.com>
21542
21543         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
21544         which is the absolute maximum length we can support.
21545
21546         * frontend.adb: For the processing of configuration pragma files,
21547         remove references to Opt.Max_Line_Length, which is not checked anymore.
21548
21549         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
21550         length.
21551
21552         * scn.adb, scng.adb:
21553         Always check line length against the absolute supported maximum,
21554         Hostparm.Max_Line_Length.
21555
21556         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
21557         value for the maximum line length is Max_Line_Length (not
21558         Column_Number'Last).
21559         Minor error msg update
21560         (Set_Style_Check_Options): New interface returning error msg
21561         Minor code reorganization (processing for 'M' was out of alpha order)
21562
21563         * switch-c.adb: New interface for Set_Style_Check_Options
21564
21565         * stylesw.ads (Set_Style_Check_Options): New interface returning error
21566         msg.
21567
21568 2005-12-09  Javier Miranda  <miranda@adacore.com>
21569
21570         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
21571         with IP subprogram were only supported if there were limited types.
21572
21573         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
21574         records with IP subprogram were only supported if there were limited
21575         types.
21576
21577 2005-12-09  Olivier Hainque  <hainque@adacore.com>
21578             Eric Botcazou  <ebotcazou@adacore.com>
21579
21580         * trans.c (tree_transform, emit_check): Adjust calls to
21581         build_call_raise, passing the now expected GNAT_NODE argument.
21582
21583         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
21584         source line information than what the current global locus indicates
21585         when appropriate.
21586
21587         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
21588         field has overflowed.
21589         (build_call_raise): Add a GNAT_NODE argument to convey better source
21590         line information than what the current global locus indicates when
21591         appropriate.
21592         (build_component_ref): Adjust call to build_call_raise.
21593
21594 2005-12-09  Pascal Obry  <obry@adacore.com>
21595
21596         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
21597         the iterator is quitting iteration on parent directory.
21598
21599 2005-12-09  Javier Miranda  <miranda@adacore.com>
21600
21601         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
21602         and the assignment to a class-wide object, before the assignment we
21603         generate a run-time check to ensure that the tag of the Target is
21604         covered by the tag of the source.
21605
21606 2005-12-09  Robert Dewar  <dewar@adacore.com>
21607
21608         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
21609         parameter in call to Image_Wide_Character.
21610
21611         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
21612         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
21613         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
21614         annoying FFFE/FFFF inconsistency.
21615
21616 2005-12-09  Robert Dewar  <dewar@adacore.com>
21617             Javier Miranda  <miranda@adacore.com>
21618             Ed Schonberg  <schonberg@adacore.com>
21619
21620         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
21621         of type conversion.
21622         (Find_Interface): New subprogram that given a tagged type and one of its
21623         component associated with the secondary table of an abstract interface
21624         type, return the entity associated with such abstract interface type.
21625         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
21626         base type to create anonymous subtype, because entity may be a locally
21627         declared subtype or generic actual.
21628         (Find_Interface): New subprogram that given a tagged type and one of its
21629         component associated with the secondary table of an abstract interface
21630         type, return the entity associated with such abstract interface type.
21631
21632         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
21633         conversion cannot be handled at compile time. In this case we pass this
21634         information to the expander to generate the appropriate code.
21635
21636 2005-12-09  Robert Dewar  <dewar@adacore.com>
21637             Ed Schonberg  <schonberg@adacore.com>
21638             Gary Dismukes  <dismukes@adacore.com>
21639             Javier Miranda  <miranda@adacore.com>
21640             Hristian Kirtchev  <kirtchev@adacore.com>
21641
21642         * einfo.adb (Itype_Printed): New flag
21643         (Is_Limited_Type): Derived types do not inherit limitedness from
21644         interface progenitors.
21645         (Is_Return_By_Reference_Type): Predicate does not apply to limited
21646         interfaces.
21647
21648         * einfo.ads (Itype_Printed): New flag
21649         Move Is_Wrapper_Package to proper section
21650         Add missing Inline for Is_Volatile
21651
21652         * output.ads, output.adb (Write_Erase_Char): New procedure
21653         (Save/Restore_Output_Buffer): New procedures
21654         (Save/Restore_Output_Buffer): New procedures
21655
21656         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
21657         Add missing support for anonymous access type
21658         (Write_Id): Insert calls to Write_Itype
21659         (Write_Itype): New procedure to output itypes
21660
21661         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
21662         use of "limited" in declaration.
21663
21664         * sinfo.ads, sinfo.adb:
21665         Formal derived types can carry an explicit "limited" indication.
21666
21667         * sem_ch3.adb: Add with and use of Targparm.
21668         (Create_Component): If Frontend_Layout_On_Target is True and the
21669         copied component does not have a known static Esize, then reset
21670         the size and positional fields of the new component.
21671         (Analyze_Component_Declaration): A limited component is
21672         legal within a protected type that implements an interface.
21673         (Collect_Interfaces): Do not add to the list the interfaces that
21674         are implemented by the ancestors.
21675         (Derived_Type_Declaration): If the parent of the full-view is an
21676         interface perform a transformation of the tree to ensure that it has
21677         the same parent than the partial-view. This simplifies the job of the
21678         expander in order to generate the correct object layout, and it is
21679         needed because the list of interfaces of the full-view can be given in
21680         any order.
21681         (Process_Full_View): The parent of the full-view does not need to be
21682         a descendant of the parent of the partial view if both parents are
21683         interfaces.
21684         (Analyze_Private_Extension_Declaration): If declaration has an explicit
21685         "limited" the parent must be a limited type.
21686         (Build_Derived_Record_Type): A derived type that is explicitly limited
21687         must have limited ancestor and progenitors.
21688         (Build_Derived_Type): Ditto.
21689         (Process_Full_View): Verify that explicit uses of "limited" in partial
21690         and full declarations are consistent.
21691         (Find_Ancestor_Interface): Remove function.
21692         (Collect_Implemented_Interfaces): New procedure used to gather all
21693         implemented interfaces by a type.
21694         (Contain_Interface): New function used to check whether an interface is
21695         present in a list.
21696         (Find_Hidden_Interface): New function used to determine whether two
21697         lists of interfaces constitute a set equality. If not, the first
21698         differing interface is returned.
21699         (Process_Full_View): Improve the check for the "no hidden interface"
21700         rule as defined by AI-396.
21701
21702 2005-12-09  Robert Dewar  <dewar@adacore.com>
21703
21704         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
21705         types, not on record subtypes.
21706         (Freeze_Entity): Code cleanup. Add barrier to the loop
21707         that generates the references for primitive operations. This allows to
21708         remove an unnecessary exception handler.
21709         Code reformatting and comment clean ups.
21710
21711 2005-12-09  Vincent Celier  <celier@adacore.com>
21712
21713         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
21714         If GNAT CHECK is called with a project file, but with no
21715         source on the command line, call gnatcheck with all the compilable
21716         sources of the project.
21717         Take into account the new command Check, for gnatcheck. Treat as for
21718         other ASIS tools: take into account project, specific package Check and
21719         Compiler switches.
21720         For ASIS tools, add the switches in package Compiler for
21721         the invocation of the compiler.
21722
21723         * prj-attr.adb: Add package Check and its attributes
21724
21725         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
21726
21727         * vms_conv.adb (Initialize): Change Params of command Check to
21728         unlimited files.
21729         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
21730         Add data for new command Check
21731
21732         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
21733         ELIM.
21734         Add qualifiers for Check command options
21735         (Command_Type): New command Check
21736
21737 2005-12-09  Thomas Quinot  <quinot@adacore.com>
21738
21739         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
21740         command line switch overruns the output buffer.
21741
21742 2005-12-09  Robert Dewar  <dewar@adacore.com>
21743
21744         * sem_prag.adb: Processing for new pragma Complete_Representation
21745         (Analyze_Pragma, case Debug): Implement two argument form.
21746
21747         * par-prag.adb: Entry for new pragma Complete_Representation
21748         (Prag, case Debug): Recognize two argument form of pragma Debug
21749         New interface for Set_Style_Check_Options.
21750
21751         * sem_ch13.adb: Implement new pragma Complete_Representation.
21752
21753         * snames.adb, snames.ads, snames.h: Entry for new pragma
21754         Complete_Representation.
21755
21756 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
21757
21758         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
21759         available user-specified stream attributes on limited parameters to
21760         also test the type directly rather than only its underlying type (for
21761         Ada 95) and, in the case of Ada 2005, to check that the user-specified
21762         attributes are visible at the point of the subprogram declaration.
21763         For Ada 2005, the error message is modified to indicate that the
21764         type's stream attributes must be visible (again, only for -gnat05).
21765
21766 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
21767
21768         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
21769         anonymous access types.
21770
21771         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
21772         matching of anonymous access types and anonymous access to subprogram
21773         types. 'R'M 4.9.1 (2/2).
21774
21775 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
21776
21777         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
21778         rule prematurely when operands are universal, remaining ambiguities
21779         will be removed during resolution.
21780         Code cleanup.
21781
21782         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
21783         that are Ada 2005 functions.
21784         (Has_Abstract_Interpretation): Subsidiary to
21785         Remove_Conversions, to remove ambiguities caused by abstract operations
21786         on numeric types when operands are universal.
21787
21788 2005-12-09  Robert Dewar  <dewar@adacore.com>
21789
21790         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
21791         for case where spec is categorized.
21792
21793 2005-12-09  Javier Miranda  <miranda@adacore.com>
21794
21795         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
21796         types use the corresponding record type. This was not needed before
21797         the implementation of Ada 2005 synchronized types because
21798         concurrent types were never tagged types in Ada 95.
21799
21800 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
21801
21802         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
21803         first subtype of the type of the expression to verify that it is a
21804         legal Time type.
21805
21806 2005-12-09  Robert Dewar  <dewar@adacore.com>
21807
21808         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
21809         decoded names.
21810
21811 2005-12-09  Quentin Ochem  <ochem@adacore.com>
21812             Robert Dewar  <dewar@adacore.com>
21813             Ed Falis  <falis@adacore.com>
21814             Florian Villoing  <villoing@adacore.com>
21815             Thomas Quinot  <quinot@adacore.com>
21816             Arnaud Charlet  <charlet@adacore.com>
21817
21818         * gnat_ugn.texi: Created section "Stack Related Tools"
21819         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
21820         "Stack Related Tools"
21821         Added subsection "Static Stack Usage Analysis"
21822         Added subsection "Dynamic Stack Usage Analysis"
21823         Include documentation of itypes in sprint listing (-gnatG)
21824         Documented gnatbind -D switch (default sec stack size for fixed sec
21825         stacks).
21826         Added Interrupt_State and Persistent_BSS to list of configuration
21827         pragmas.
21828         Add missing doc for maximum value of nnn in -gnatyMnnn
21829
21830         * gnat_rm.texi: Document the AltiVec binding.
21831         Add documentation for pragma Complete_Representation
21832         Shortened an overly long line (> 79 chars)
21833         Clarify documentation of unchecked conversion in implementation
21834         defined cases.
21835         Document two argument form of pragma Debug
21836
21837         * types.ads (Column_Number): Update documentation.
21838
21839         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
21840         library level Finalize_Storage_Only objects (these are not attached to
21841         any finalization list).
21842
21843         * system-mingw.ads: (Underlying_Priorities): Update comment.
21844
21845 2005-12-09  Robert Dewar  <dewar@adacore.com>
21846
21847         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
21848         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
21849         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
21850         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
21851         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
21852         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
21853         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
21854         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
21855         reformatting.
21856
21857 2005-12-09  Robert Dewar  <dewar@adacore.com>
21858
21859         * s-vaflop-vms-alpha.adb: (Ne_F): New function
21860         (Ne_G): New function
21861
21862         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
21863         for tag assignment.
21864         (Rewrite_Comparison): Handle case where operation is not a comparison
21865         and ignore, and also handle type conversion case.
21866
21867 2005-12-09  Thomas Quinot  <quinot@adacore.com>
21868
21869         * exp_aggr.ads: Fix typo in comment.
21870         ???-mark Convert_Aggr_In_Assignment as needing documentation.
21871
21872 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
21873
21874         * layout.adb: Replace various uses of byte by storage unit throughout.
21875         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
21876         static size, convert to storage units before returning, to conform to
21877         spec.
21878
21879 2005-12-09  Matthew Gingell  <gingell@adacore.com>
21880
21881         * g-exctra.ads: Fix typo in comment.
21882
21883 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21884
21885         * utils.c: Minor reformatting.
21886
21887 2005-12-09  Robert Dewar  <dewar@adacore.com>
21888
21889         * g-soccon.ads:
21890         Further comment fixes to make the status of the default file clear
21891
21892         * s-bitops.adb: Clarify comment for Bits_Array
21893
21894 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
21895
21896         * Make-lang.in (ada.install-normal): Remove.
21897
21898 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
21899
21900         * Make-lang.in: Remove all dependencies on s-gtype.
21901
21902 2005-12-05  Richard Guenther  <rguenther@suse.de>
21903
21904         * utils.c (convert): Use fold_convert where appropriate.
21905
21906 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
21907
21908         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
21909         a period is meant.
21910
21911 2005-12-02  Richard Guenther  <rguenther@suse.de>
21912
21913         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
21914
21915 2005-12-01  Roger Sayle  <roger@eyesopen.com>
21916
21917         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
21918         nodes.
21919
21920 2005-11-23  Laurent Guerby  <laurent@guerby.net>
21921
21922         * mlib-prj.adb (Build_Library): Initialize Delete.
21923
21924 2005-11-21  Joel Sherrill  <joel.sherrill@oarcorp.com>
21925
21926         * socket.c: Add extern int h_errno for rtems since networking header
21927         files are not available at this point in a tool bootstrap. Newlib
21928         only has basic C library header files.
21929
21930 2005-11-19  Richard Guenther  <rguenther@suse.de>
21931         Roger Sayle  <roger@eyesopen.com>
21932
21933         PR ada/23717
21934         * misc.c (internal_error_function): Don't use vsprintf to format
21935         the error message text, instead use pp_format_text and the new
21936         pretty printer APIs.  This allows handling of %qs, %w, etc.
21937
21938 2005-11-18  Laurent Guerby  <laurent@guerby.net>
21939
21940         PR ada/24857
21941         * Makefile.in: Use s-auxdec-empty for RTEMS.
21942
21943 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21944
21945         PR ada/22333
21946         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
21947         a temporary if taking the address of something that is neither
21948         reference, declaration, or constant, since the gimplifier
21949         can't handle that case.
21950
21951 2005-11-17  Laurent Guerby  <laurent@guerby.net>
21952
21953         PR ada/24857
21954         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
21955
21956 2005-11-16  Richard Guenther  <rguenther@suse.de>
21957
21958         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
21959
21960 2005-11-16  Joel Sherrill  <joel.sherrill@oarcorp.com>
21961
21962         PR ada/24855
21963         * raise-gcc.c: Add missing stdarg.h include.
21964
21965 2005-11-16  Richard Guenther  <rguenther@suse.de>
21966
21967         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
21968         (ada/misc.o): Likewise.
21969
21970 2005-11-14  Thomas Quinot  <quinot@adacore.com>
21971
21972         * g-soccon.ads: Minor reformatting. Update comments.
21973
21974         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
21975         gain visibility on the declaration of struct timeval.
21976
21977         * g-soccon-freebsd.ads,
21978         g-soccon-darwin.ads,
21979         g-soccon-tru64.ads,
21980         g-soccon-aix.ads,
21981         g-soccon-irix.ads,
21982         g-soccon-hpux.ads,
21983         g-soccon-solaris.ads,
21984         g-soccon-vms.ads,
21985         g-soccon-mingw.ads,
21986         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
21987
21988         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
21989         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
21990         g-soccon-linux-x86.ads: New files.
21991
21992         * g-socthi-mingw.adb:
21993         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
21994
21995         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
21996         (time_t, suseconds_t): New types constructed to match the tv_sec
21997         and tv_usec fields of C struct timeval.
21998         (Timeval): Construct structure in terms of the new types.
21999         (Host_Errno): New function (imported from socket.c), returns last hosts
22000         database error.
22001
22002         * g-socthi-vxworks.adb:  Add error handling circuitry.
22003
22004         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
22005         components of struct timeval.
22006         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
22007         (Check_Selector): In error conditions, clear internal socket sets to
22008         avoid a memory leak.
22009         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
22010         Send_Timeout, Receive_Timeout.
22011
22012         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
22013         the tv_sec and tv_usec fields of C struct timeval.
22014         (Timeval): Construct structure in terms of the new types.
22015         (Host_Errno): New function (imported from socket.c), returns last hosts
22016         database error.
22017
22018         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
22019         hosts database last error code.
22020
22021         * gen-soccon.c: Complete value expansion should not be performed on
22022         TARGET, as it has the form of a math expression, and some components
22023         may be platform-defined macros.
22024         For VxWorks, generate the OK and ERROR values.
22025         New constants giving the sizes of the components of C struct timeval.
22026
22027 2005-11-14  Robert Dewar  <dewar@adacore.com>
22028             Ed Schonberg  <schonberg@adacore.com>
22029
22030         PR ada/18434
22031         * types.ads: Include All_Checks in Suppress_Array
22032
22033         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
22034         not(a=b), since we no longer do this rewriting, and hence it is not
22035         needed.
22036         (Elaboration_Checks_Suppressed): Add special casing to
22037         deal with different cases of static and dynamic elaboration checks (all
22038         checks does not count in the first case, but does in the second).
22039         (Expr_Known_Valid): Do not assume that the result of any arbitrary
22040         function call is valid, since this is not the case.
22041         (Ensure_Valid): Do not apply validity check to a real literal
22042         in a universal or fixed context
22043
22044         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
22045         elementary types using the operator in standard. It is cleaner not to
22046         modify the programmers intent, especially in the case of floating-point.
22047         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
22048         it did not matter because we always rewrote a/=b to not(a=b).
22049         (Expand_Allocator_Expression): For an allocator expression whose nominal
22050         subtype is an unconstrained packed type, convert the expression to its
22051         actual constrained subtype.
22052         Implement warning for <= or >= where < or > not possible
22053         Fix to Vax_Float tests (too early in many routines, causing premature
22054         Vax_Float expansions.
22055
22056         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
22057         to be used with packages and generic packages as well as with
22058         subprograms.
22059         (Suppress): Set All_Checks, but not Elaboration_Check, for case
22060         of pragma Suppress (All_Checks)
22061         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
22062         a string literal for precise control over warnings.
22063         Avoid raise of pragma in case of unrecognized pragma and just return
22064         instead.
22065
22066         * sem_prag.ads: Minor reformatting
22067
22068         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
22069         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
22070         Switch. Do not handle any exception.
22071         Include -gnatwx as part of -gnatg (warn on redundant parens)
22072         Allow optional = after -gnatm
22073         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
22074         longer sets Elaboration_Checks.
22075         Code to set warning mode moved to Sem_Warn
22076         so that it can be shared by pragma processing.
22077
22078         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
22079         statement.
22080
22081         * s-taprop-solaris.adb:
22082         Change some <= to =, to avoid new warning
22083
22084         * a-exexda.adb, prj-proc.adb:
22085         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
22086         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
22087
22088 2005-11-14  Robert Dewar  <dewar@adacore.com>
22089
22090         * exp_vfpt.adb: Handle /= case
22091         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
22092         so that we do not get duplicate scaling for fixed point conversions.
22093
22094         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
22095
22096 2005-11-14  Matthew Gingell  <gingell@adacore.com>
22097
22098         * system-lynxos-ppc.ads, system-lynxos-x86.ads:
22099         Increase default priority on Lynx from 15 to 17, and meet the Ada
22100         requirement that Default_Priority be ((Priority'First +
22101         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
22102
22103 2005-11-14  Vincent Celier  <celier@adacore.com>
22104
22105         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
22106         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
22107         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
22108         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
22109         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
22110         mlib-tgt-lynxos.adb (DLL_Prefix): New function
22111
22112 2005-11-14  Doug Rupp  <rupp@adacore.com>
22113
22114         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
22115         private part.
22116
22117 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
22118
22119         * s-traces-default.adb, s-trafor-default.ads,
22120         s-tratas-default.adb: Fix compilation errors.
22121
22122 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
22123
22124         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
22125         raising the exception so the memory used is freed.
22126
22127 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
22128
22129         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
22130         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
22131         (convert_address): Update comments and list of platforms using this.
22132
22133         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
22134         no longer used.
22135
22136 2005-11-14  Pascal Obry  <obry@adacore.com>
22137             Vincent Celier  <celier@adacore.com>
22138
22139         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
22140         GNAT.Command_Line.
22141
22142         * memroot.adb: Remove redundant with/use clause on
22143         System.Storage_Elements.
22144
22145 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
22146
22147         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
22148         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
22149         related code to a-exexpr.adb
22150         (Save_Occurrence_And_Private): Move GCC EH related code to
22151         a-exexpr-gcc.adb
22152         (Raise_Current_Excep): Add new variable Id with pragma
22153         volatile, to ensure that the variable lives on stack.
22154
22155         * a-exexpr-gcc.adb, raise-gcc.c: New file.
22156
22157         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
22158         from a-except.adb.
22159         Move GCC EH related code to a-exexpr-gcc.adb
22160
22161         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
22162         64-bit Solaris
22163         Split the Linux version of g-soccon into separate variants for 32 and 64
22164         bit platforms.
22165         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
22166         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
22167         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
22168         of host variable $(RANLIB_FLAGS).
22169         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
22170         Code clean up: remove unused/obsolete targets.
22171         (EH_MECHANISM): New variable introduced to differenciate between the
22172         two EH mechanisms statically.
22173         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
22174         (LIBGNAT_OBJS): Add raise-gcc.o
22175         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
22176         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
22177         supports VxWorks 6 RTPs.
22178         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
22179         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
22180
22181         * raise.c: Move all GCC EH-related routines to raise-gcc.c
22182
22183 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
22184
22185         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
22186         deferral level, when abort is not allowed, to a later stage (the
22187         Task_Wrapper).
22188         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
22189         it will not get changed by the generated code. It was previously done
22190         in Create_Task.
22191
22192 2005-11-14  Thomas Quinot  <quinot@adacore.com>
22193             Olivier Hainque  <hainque@adacore.com>
22194             Eric Botcazou  <ebotcazou@adacore.com>
22195
22196         * decl.c:
22197         Factor common code to build a storage type for an unconstrained object
22198         from a fat or thin pointer type and a constrained object type.
22199         (annotate_value): Handle BIT_AND_EXPR.
22200         (annotate_rep): Don't restrict the back annotation of inherited
22201         components to the type_annotate_only case.
22202         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
22203         we are not defining the type.
22204         <E_Record_Type>: Likewise.
22205         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
22206         to get advantage of the new maybe_stabilize_reference interface, to
22207         ensure that what we reference is indeed stabilized instead of relying
22208         on assumptions on what the stabilizer does.
22209         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
22210         type imported through a limited_with clause, use its non-limited view.
22211         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
22212         differentiation.
22213         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
22214         of #if sections + explicit comparisons of convention identifiers.
22215         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
22216         before early-returning for certain types when code generation is
22217         disabled.
22218         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
22219         nullification of gnu_expr we do for objects with address clause and
22220         that we are not defining.
22221         (elaborate_expression_1): Do not create constants when creating
22222         variables needed by the debug info: the dwarf2 writer considers that
22223         CONST_DECLs is used only to represent enumeration constants, and emits
22224         nothing for them.
22225         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
22226         object with an address clause into an indirect reference, drop the
22227         initializing expression.
22228         Include "expr.h".
22229         (STACK_CHECK_BUILTIN): Delete.
22230         (STACK_CHECK_PROBE_INTERVAL): Likewise.
22231         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
22232         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
22233         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
22234         corresponding to the renamed object as ignored for debugging purposes.
22235
22236         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
22237         related): For a prefix that is a dereference of a fat or thin pointer,
22238         if there is an actual subtype provided by the front-end, use that
22239         subtype to build an actual type with bounds template.
22240         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
22241         is provided by the front-end, use that subtype to compute the size of
22242         the deallocated object.
22243         (gnat_to_gnu): When adding a statement into an elaboration procedure,
22244         check for a potential violation of a No_Elaboration_Code restriction.
22245         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
22246         with extra arguments to control whether to recurse through non-values
22247         and to let the caller know if the stabilization has succeeded.
22248         (gnat_stabilize_reference): Now a simple wrapper around
22249         maybe_stabilize, for common uses without restriction on lvalues and
22250         without need to check for the success indication.
22251         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
22252         pass false instead of 0 as the FORCE argument which is a bool.
22253         (Identifier_to_gnu): Remove checks ensuring that an renamed object
22254         attached to a renaming pointer has been properly stabilized, as no such
22255         object is attached otherwise.
22256         (call_to_gnu): Invoke create_var_decl to create the temporary when the
22257         function uses the "target pointer" return mechanism.
22258         Reinstate conversion of the actual to the type of the formal
22259         parameter before any other specific treatment based on the passing
22260         mechanism. This turns out to be necessary in order for PLACEHOLDER
22261         substitution to work properly when the latter type is unconstrained.
22262
22263         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
22264         common pattern.
22265         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
22266         with extra arguments to control whether to recurse through non-values
22267         and to let the caller know if the stabilization has succeeded.
22268
22269         * utils2.c (gnat_build_constructor): Only sort the fields for possible
22270         static output of record constructor if all the components are constant.
22271         (gnat_build_constructor): For a record type, sort the list of field
22272         initializers in increasing bit position order.
22273         Factor common code to build a storage type for an unconstrained object
22274         from a fat or thin pointer type and a constrained object type.
22275         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
22276         types variants, and process special cases of VIEW_CONVERT expressions
22277         as their NOP_EXPR counterpart to ensure we get to the
22278         CORRESPONDING_VARs associated with CONST_DECls.
22279         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
22280         on the right-hand side.
22281
22282         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
22283         a common pattern.
22284         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
22285         are converting back to its original type.
22286         (convert) <JM input>: Fallthrough regular conversion code instead of
22287         extracting the object if converting to a type variant.
22288         (create_var_decl): When a variable has an initializer requiring code
22289         generation and we are at the top level, check for a potential violation
22290         of a No_Elaboration_Code restriction.
22291         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
22292         SIZE and SIZE_UNIT which we need for later back-annotations.
22293         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
22294         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
22295         is an unchecked union.
22296         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
22297         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
22298         main variant, just replace the VIEW_CONVERT_EXPR.
22299         <UNION_TYPE>: Revert 2005-03-02 change.
22300
22301         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
22302
22303         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
22304
22305 2005-11-14  Matthew Heaney  <heaney@adacore.com>
22306
22307         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads,
22308         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb,
22309         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads,
22310         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb,
22311         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
22312         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb:
22313         Compiles against the spec for ordered maps described in sections
22314         A.18.6 of the most recent (August 2005) AI-302 draft.
22315
22316 2005-11-14  Olivier Hainque  <hainque@adacore.com>
22317
22318         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
22319         to ensure bias adjustments take place when need be and to prevent
22320         occurrences of intermediate overflows.
22321
22322 2005-11-14  Matthew Gingell  <gingell@adacore.com>
22323             Olivier Hainque  <hainque@adacore.com>
22324
22325         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
22326         ia64 HP-UX.
22327
22328         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
22329         tracebacks on ia64 HP-UX and provide explanatory comment.
22330         Enable backtraces on ia64 GNU/Linux.
22331         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
22332         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
22333
22334 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
22335             Javier Miranda  <miranda@adacore.com>
22336
22337         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
22338         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
22339         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
22340         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
22341
22342         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
22343         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
22344         assertions).
22345
22346         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
22347         subprogram that generates the external name associated with a
22348         secondary dispatch table.
22349         (Get_Secondary_DT_External_Name): New subprogram that generates the
22350         external name associated with a secondary dispatch table.
22351
22352 2005-11-14  Emmanuel Briot  <briot@adacore.com>
22353
22354         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
22355         line in the ALI file to include both an instantiation reference, and a
22356         returned value.
22357
22358 2005-11-14  Vincent Celier  <celier@adacore.com>
22359
22360         * clean.adb (Check_Project): Look for Ada code in extending project,
22361         even if Ada is not specified as a language.
22362         Use new function DLL_Prefix for DLL_Name
22363         (Clean_Interface_Copy_Directory): New procedure
22364         (Clean_Library_Directory): New procedure
22365         (Clean_Directory): Remove procedure, no longer used
22366         (Clean_Project): Do not delete any file in an externally built project
22367
22368         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
22369         directory of an extending project, even when there are no Ada source
22370         present.
22371         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
22372         (Set_Ada_Paths.Add.Recursive_Add): Ditto
22373
22374         * mlib-prj.adb (Check_Library): For all library projects, get the
22375         library file timestamp.
22376         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
22377         (Build_Library): Use new function DLL_Prefix for the DLL_Name
22378         (Clean): Remove procedure, no longer used
22379         (Ultimate_Extension_Of): New function
22380         (Build_Library): When cleaning the library directory, only remove an
22381         existing library file and any ALI file of a source of the project.
22382         When cleaning the interface copy directory, remove any source that
22383         could be a source of the project.
22384
22385         * prj.ads, prj.adb (Project_Empty): Add values of new components
22386         Library_TS and All_Imported_Projects.
22387         (Project_Empty): Add values for new components of Project_Data:
22388         Library_ALI_Dir and Display_Library_ALI_Dir
22389
22390         * prj-attr.adb: New project level attribute name Library_ALI_Dir
22391
22392         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
22393         attribute Library_ALI_Dir.
22394         (Check_Library_Attributes): The library directory cannot be the same as
22395         any source directory of the project tree.
22396         (Check_Stand_Alone_Library): The interface copy directory cannot be
22397         the same as any source directory of the project tree.
22398
22399         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
22400         all temporary files.
22401
22402 2005-11-14  Robert Dewar  <dewar@adacore.com>
22403             Ed Schonberg  <schonberg@adacore.com>
22404
22405         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
22406         (Check_Elab_Call): A call within a protected body is never an
22407         elaboration call, and does not require checking.
22408         (Same_Elaboration_Scope): Take into account protected types for both
22409         entities.
22410         (Activate_Elaborate_All_Desirable): New procedure
22411
22412         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
22413         desirable
22414
22415         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
22416         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
22417
22418         * lib-writ.ads, lib-writ.adb:
22419         Implement new AD/ED for Elaborate_All/Elaborate desirable
22420         Use new Elaborate_All_Desirable flag in N_With_Clause node
22421
22422         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
22423         N_Free_Statement nodes.
22424         Define new class N_Subprogram_Instantiation
22425         Add Elaborate_Desirable flag to N_With_Clause node
22426         Add N_Delay_Statement (covering two kinds of delay)
22427
22428         * debug.adb: Introduce d.f flag for compiler
22429         Add -da switch for binder
22430
22431 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
22432             Cyrille Comar  <comar@adacore.com>
22433
22434         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
22435         for task component, in the case of a limited aggregate. The enclosed
22436         object declaration will create it earlier. Otherwise, in the case of a
22437         nested aggregate, the object may appear in the wrong scope.
22438         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
22439         (Gen_Assign): If the component being assigned is an array type and the
22440         expression is itself an aggregate, wrap the assignment in a block to
22441         force finalization actions on the temporary created for each row of the
22442         enclosing object.
22443         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
22444         structures are initialized after all discriminants are set so that
22445         they can be accessed even when their offset is dynamic.
22446
22447 2005-11-14  Robert Dewar  <dewar@adacore.com>
22448             Hristian Kirtchev  <kirtchev@adacore.com>
22449
22450         * sem_attr.adb: Implement Machine_Rounding attribute
22451         (Analyze_Access_Attribute): The access attribute may appear within an
22452         aggregate that has been expanded into a loop.
22453         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
22454         'Terminated whenever the prefix is of a task interface class-wide type.
22455         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
22456         the prefix is of a task interface class-wide type.
22457
22458         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
22459         to avoid warnings.
22460
22461         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
22462         Remove pragma Inline for [Unaligned_]Valid.
22463         Add comments that Valid routines do not work for Vax_Float
22464
22465         * exp_attr.adb: Implement Machine_Rounding attribute
22466
22467         * snames.h: Add entry for Machine_Rounding attribute
22468
22469 2005-11-14  Javier Miranda  <miranda@adacore.com>
22470             Robert Dewar  <dewar@adacore.com>
22471             Hristian Kirtchev  <kirtchev@adacore.com>
22472
22473         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
22474         and related): For a prefix that is an explicit dereference of an
22475         access to unconstrained packed array type, annotate the dereference
22476         with an actual subtype so GIGI can make a correct size computation.
22477         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
22478         'Unrestricted_Access, if the designated type is an interface we
22479         add a type conversion to force the displacement of the pointer
22480         to the secondary dispatch table.
22481         Use Universal_Real instead of Long_Long_Float when we need a high
22482         precision float type for the generated code (prevents gratuitous
22483         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
22484         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
22485         'Terminated for task interface class-wide objects. Generate a call to
22486         the predefined dispatching routine used to retrieve the _task_id from
22487         a task corresponding record.
22488         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
22489
22490         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
22491         (Check_Dispatching_Operation): Protect the frontend againts
22492         previously detected errors.
22493
22494         * Makefile.rtl: Add new instantiations of system.fat_gen
22495
22496         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads:
22497         Change name of instantiated package for better consistency
22498         with newly added system.fat_gen instantiations.
22499
22500         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
22501         s-fvagfl.ads: New files.
22502
22503 2005-11-14  Cyrille Comar  <comar@adacore.com>
22504             Thomas Quinot  <quinot@adacore.com>
22505
22506         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
22507         assignment of a value of a tagged type that has been rewritten to a
22508         block statement, it is known by construction that no checks are
22509         necessary for the statements within the block: analyze it with checks
22510         suppressed.
22511         (Expand_N_If_Statement): When killing a dead then-branch in an
22512         if-statement that has elsif_parts, recompute the Current_Value node
22513         for any entity whose value is known from the condition of the first
22514         elsif_part.
22515         (Expand_N_Return_Statement): When returning a mutable record, convert
22516         the return value into its actual subtype in order to help the backend
22517         to return the actual size instead of the maximum. This is another
22518         aftermath of not returning mutable records on the sec-stack anymore.
22519
22520         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
22521         handling of error msg for suspicious reverse range iteration.
22522         (Check_Possible_Current_Value_Condition): Move declaration from body to
22523         spec, to allow this subprogram to be called from exp_ch5.
22524
22525 2005-11-14  Thomas Quinot  <quinot@adacore.com>
22526
22527         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
22528         generate a set of nested array aggregates instead of a single flat
22529         aggregate for multi-dimensional arrays.
22530
22531 2005-11-14  Pascal Obry  <obry@adacore.com>
22532
22533         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
22534         by spawnve is a process handle, no need to convert. Add a parameter
22535         close to control wether the process handle must be closed.
22536         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
22537         a process handle, not need to convert.
22538         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
22539
22540         * g-expect.adb: (Kill): Document the new close parameter.
22541         (Close): Do not release the process handle in the kill there as
22542         waitpid() is using it.
22543         (Send_Signal): Release the process handle.
22544
22545 2005-11-14  Robert Dewar  <dewar@adacore.com>
22546
22547         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
22548         need a high precision float type for the generated code (prevents
22549         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
22550         used).
22551
22552         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
22553         need a high precision float type for the generated code (prevents
22554         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
22555         used).
22556         (Expand_Width_Attribute): In configurable run-time, the attribute is not
22557         allowed on non-static enumeration subtypes. Force a load error to emit
22558         the correct diagnostic.
22559
22560 2005-11-14  Thomas Quinot  <quinot@adacore.com>
22561             Robert Dewar  <dewar@adacore.com>
22562             Ed Schonberg  <schonberg@adacore.com>
22563
22564         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
22565         subtype to compute the size of the designated object at run-time,
22566         create such a subtype and store it in the Actual_Designated_Subtype
22567         attribute of the N_Free_Statement.
22568         Generate itype for classwide designated object in both cases of
22569         user-specified storage pool: specific and class-wide, not only in the
22570         specific case.
22571         Raise CE when trying to set a not null access type object to null.
22572         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
22573         an explicit loop, because freeze nodes make its position variable.
22574
22575         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
22576         null object.
22577
22578 2005-11-14  Javier Miranda  <miranda@adacore.com>
22579
22580         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
22581         Build_Stream_Procedure): Add the null-excluding attribute to the first
22582         formal.
22583         This has no semantic meaning under Ada95 mode but it is a
22584         requirement under Ada05 mode.
22585
22586         * par-ch3.adb (P_Access_Definition): Addition of warning message if
22587         the null exclusion is used under Ada95 mode
22588         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
22589         (P_Access_Definition): Remove assertion that forbids the use of
22590         the null-exclusion feature in Ada95.
22591
22592 2005-11-14  Robert Dewar  <dewar@adacore.com>
22593
22594         * impunit.adb: Exclude container helper units not intended for use by
22595         users.
22596
22597 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
22598
22599         * freeze.adb (Freeze_Entity): For an access formal that is an access
22600         to subprogram, freeze the anonymous subprogram type at the same time,
22601         to prevent later freezing in the wrong scope, such as the enclosing
22602         subprogram body.
22603         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
22604         subprogram whenever available.
22605
22606 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
22607
22608         PR ada/23732
22609         * gnatvsn.ads (Library_Version): Bump to 4.1
22610
22611 2005-11-14  Robert Dewar  <dewar@adacore.com>
22612
22613         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
22614         Storage_Offset to avoid wrap around causing invalid results.
22615
22616 2005-11-14  Pascal Obry  <obry@adacore.com>
22617
22618         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
22619         cross-compiler.
22620         (Scan_Bind_Arg): Fail with an error message if -M option is used
22621         on a native compiler.
22622
22623 2005-11-14  Robert Dewar  <dewar@adacore.com>
22624             Vincent Celier  <celier@adacore.com>
22625
22626         * gprep.adb: Implement -C switch to scan comments
22627
22628         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
22629
22630         * scans.ads: Comment updates (including new use of Tok_Comment in
22631         preprocessing)
22632
22633         * opt.ads: Add documentation for flags that are used by gprmake,
22634         currently and in the next version of gprmake.
22635         (Verbosity_Level): New variable
22636         Add Replace_In_Comments switch
22637
22638         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
22639         and -vm.
22640         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
22641
22642 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
22643
22644         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
22645         message, friendlier.
22646
22647 2005-11-14  Robert Dewar  <dewar@adacore.com>
22648
22649         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
22650
22651 2005-11-14  Doug Rupp  <rupp@adacore.com>
22652
22653         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
22654
22655 2005-11-14  Robert Dewar  <dewar@adacore.com>
22656
22657         * interfac.ads: Change declarations of IEEE float types so that we no
22658         longer need a separate version of this package for VMS.
22659
22660 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
22661
22662         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
22663         internal entity created for the declaration of a child subprogram body
22664         with no spec as coming from source, to generate proper cross-reference
22665         information.
22666
22667 2005-11-14  Vincent Celier  <celier@adacore.com>
22668
22669         * make.adb (Compile_Sources): Change verbose message to minimum
22670         verbosity level High for "is in an Ada library", "is a read-only
22671         library" and "is an internal library",
22672         (Create_Binder_Mapping_File): Path name of ALI file for library project
22673         must include the library directory, not the object directory.
22674         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
22675         for new switches -vl, -vm and -vh.
22676         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
22677         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
22678         (Compile_Sources): Do not attempt to compile if an ALI file is missing
22679         in a project that is externally built.
22680         (Compute_All_Imported_Projects): New procedure
22681         (Gnatmake): Check if importing libraries should be regenerated because
22682         at least an imported library is more recent.
22683         (Initialize): For each project compute the list of the projects it
22684         imports directly or indirectly.
22685         (Add_Library_Search_Dir): New procedure, used in place of
22686         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
22687         put in the search paths.
22688         (Add_Source_Search_Dir): New procedure, used in place of
22689         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
22690         put in the search paths.
22691         (Mark_Directory): Resolve the absolute path the directory before marking
22692         it.
22693
22694         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
22695         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
22696         Switch. Do not handle any exception.
22697         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
22698         so that the switch is recognized as valid.
22699         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
22700
22701 2005-11-14  GNAT Script  <nobody@adacore.com>
22702
22703         * Make-lang.in: Makefile automatically updated
22704
22705 2005-11-14  Pascal Obry  <obry@adacore.com>
22706
22707         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
22708         used.
22709         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
22710         In both cases the last argument was dropped.
22711
22712 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
22713
22714         * namet.h: (Column_Numbe): New type.
22715         (Get_Column_Number): Define to sinput__get_column_number.
22716         (Instantiation): Define to sinput__instantiation.
22717         (Get_Column_Number): Declare.
22718         (Instantiation): Likewise.
22719
22720 2005-11-14  Robert Dewar  <dewar@adacore.com>
22721
22722         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
22723         syntax, which could cause compiler hangs.
22724
22725 2005-11-14  Vincent Celier  <celier@adacore.com>
22726
22727         * prj-ext.adb: Take into account new environment variable
22728         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
22729         are defined.
22730         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
22731         normalize its path name, making it absolute and resolving symbolic
22732         links, and replace the original if resolved path is different.
22733
22734 2005-11-14  Vincent Celier  <celier@adacore.com>
22735
22736         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
22737         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
22738
22739 2005-11-14  Emmanuel Briot  <briot@adacore.com>
22740
22741         * prj-pp.adb (Print): Do not output the with statement if the
22742         associated name is empty, which happens for virtual extending projects.
22743         (Print): Preserve the "extends all" attribute when printing the project.
22744
22745         * prj-tree.ads (String_Value_Of): Add comment about returned value for
22746         a virtual extending project.
22747
22748 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
22749
22750         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
22751         rhs of an assignment even if the type is unconstrained, when the
22752         context is non-expanding.
22753         In an inlined body, if the context type is private,
22754         resolve with its full view, which must be a composite type.
22755
22756 2005-11-14  Robert Dewar  <dewar@adacore.com>
22757             Ed Schonberg  <schonberg@adacore.com>
22758
22759         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
22760         Do not give obsolescent warning on with of subprogram (since we
22761         diagnose calls)
22762         (Analyze_With_Clause): Add test for obsolescent package
22763         (Install_Context_Clauses): If the unit is the body of a child unit, do
22764         not install twice the private declarations of the parents, to prevent
22765         circular lists of Use_Clauses in a parent.
22766         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
22767         compiling body of child unit.
22768         Use new class N_Subprogram_Instantiation
22769         (Expand_With_Clause): If this is a private with_clause for a child unit,
22770         appearing in the context of a package declaration, then the implicit
22771         with_clauses generated for parent units are private as well.
22772         (License_Check): Do not generate message if with'ed unit is internal
22773
22774 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
22775             Ed Schonberg  <schonberg@adacore.com>
22776             Thomas Quinot  <quinot@adacore.com>
22777
22778         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
22779         names are internal, because they will not have a corresponding partner
22780         in the actual package.
22781         (Analyze_Formal_Package): Move the setting of the formal package spec's
22782         Generic_Parent field so that it occurs prior to analyzing the package,
22783         to allow proper operation of Install_Parent_Private_Declarations.
22784         (Analyze_Package_Instantiation): Set the instantiated package entity's
22785         Package_Instantiation field.
22786         (Get_Package_Instantiation_Node): Move declaration to package spec.
22787         Retrieve the N_Package_Instantiation node when the Package_Instantiation
22788         field is present.
22789         (Check_Generic_Child_Unit): Within an inlined call, the only possible
22790         instantiation is Unchecked_Conversion, for which no parents are needed.
22791         (Inline_Instance_Body): Deinstall and record the use_clauses for all
22792         parent scopes of a scope being removed prior to inlining an instance
22793         body.
22794         (Analyze_Package_Instantiation): Do not perform front-end inlining when
22795         the current context is itself an instance within a non-instance child
22796         unit, to prevent scope stack errors.
22797         (Save_References): If the node is an aggregate that is an actual in a
22798         call, rewrite as a qualified expression to preserve some type
22799         information, to resolve possible ambiguities in the instance.
22800         (Instance_Parent_Unit): New global variable to record the ultimate
22801         parent unit associated with a generic child unit instance (associated
22802         with the existing Parent_Unit_Visible flag).
22803         (type Instance_Env): New component Instance_Parent_Unit for stacking
22804         parents recorded in the global Instance_Parent_Unit.
22805         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
22806         stack.
22807         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
22808         it's not a top-level unit, and only do this if Instance_Parent_Unit is
22809         not already set. Replace test of Is_Child_Unit with test of parent's
22810         scope against package Standard. Add comments and a ??? comment.
22811         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
22812         on a child instance parent to test that the parent equals
22813         Instance_Parent rather than simply checking that the unit is not a
22814         child unit.
22815         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
22816         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
22817         a formal interface are ancestors of the corresponding actual.
22818         (Validate_Formal_Interface_Type): Additional legality checks.
22819         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
22820         interface types with ancestors.
22821         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
22822         to diagnose attempts to use generic within its own declaration.
22823
22824 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
22825             Javier Miranda  <miranda@adacore.com>
22826
22827         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
22828         discriminant.
22829         (Build_Private_Derived_Type): The entity of the created full view of the
22830         derived type does not come from source. If after installing the private
22831         declarations of the parent scope the parent is still private, use its
22832         full view to construct the full declaration of the derived type.
22833         (Build_Derived_Record_Type): Relax the condition that controls the
22834         execution of the check that verifies that the partial view and
22835         the full view agree in the set of implemented interfaces. In
22836         addition, this test now only takes into account the progenitors.
22837         (Derive_Interface_Subprograms): No need to derive subprograms
22838         of ancestors that are interfaces.
22839         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
22840         associated code.
22841         Change name Is_Package to Is_Package_Or_Generic_Package
22842         (Complete_Subprograms_Derivation): Handle the case in which the full
22843         view is a transitive derivation of the ancestor of the partial view.
22844         (Process_Full_View): Rename local subprogram Find_Interface_In_
22845         Descendant to Find_Ancestor_Interface to leave the code more clear.
22846         Remove wrong code that avoids the generation of an error message
22847         when the immediate ancestor of the partial view is an interface.
22848         In addition some minor reorganization of the code has been done to
22849         leave it more clear.
22850         (Analyze_Type_Declaration): If type has previous incomplete tagged
22851         partial view, inherit properly its primitive operations.
22852         (Collect_Interfaces): Make public, for analysis of formal
22853         interfaces.
22854         (Analyze_Interface_Declaration): New procedure for use for regular and
22855         formal interface declarations.
22856         (Build_Derived_Record_Type): Add support for private types to the code
22857         that checks if a tagged type implements abstract interfaces.
22858         (Check_Aliased_Component_Type): The test applies in the spec of an
22859         instance as well.
22860         (Access_Type_Declaration): Clean up declaration of malformed type
22861         declared as an access to its own classwide type, to prevent cascaded
22862         crash.
22863         (Collect_Interfaces): For private extensions and for derived task types
22864         and derived protected types, the parent may be an interface that must
22865         be included in the interface list.
22866         (Access_Definition): If the designated type is an interface that may
22867         contain tasks, create Master_Id for it before analyzing the expression
22868         of the declaration, which may be an allocator.
22869         (Record_Type_Declaration): Set properly the interface kind, for use
22870         in allocators, the creation of master id's for task interfaces, etc.
22871
22872 2005-11-14  Javier Miranda  <miranda@adacore.com>
22873             Ed Schonberg  <schonberg@adacore.com>
22874
22875         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
22876         omitted in case of stream attribute subprograms.
22877         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
22878         appear immediately after a subprogram body, when there is no previous
22879         subprogram declaration.
22880         Change name Is_Package to Is_Package_Or_Generic_Package
22881         (Process_Formals): A non null qualifier on a non null named access
22882         type is not an error, and is a warning only if Redundant_Constructs
22883         are flagged.
22884
22885 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
22886             Ed Schonberg  <schonberg@adacore.com>
22887
22888         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
22889         nested within Analyze_Package_Specification to install the private
22890         declarations and use clauses within each of the parent units of a
22891         package instance of a generic child package.
22892         (Analyze_Package_Specification): When entering a private part of a
22893         package associated with a generic instance or formal package, the
22894         private declarations of the parent must be installed (by calling new
22895         procedure Install_Parent_Private_Declarations).
22896         Change name Is_Package to Is_Package_Or_Generic_Package
22897         (Preserve_Full_Attributes): For a synchronized type, the corresponding
22898         record is absent in a generic context, which does not indicate a
22899         compiler error.
22900
22901 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
22902
22903         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
22904         not try to rewrite a renamed stream attribute, because the operations
22905         on the type may not have been generated.
22906         Handle properly a renaming_as_body generated for a stream operation
22907         whose default is abstract because the object type itself is abstract.
22908         (Find_Type): If the type is incomplete and appears as the prefix of a
22909         'Class reference, it is tagged, and its list of primitive operations
22910         must be initialized properly.
22911         (Chain_Use_Clauses): When chaining the use clauses that appear in the
22912         private declaration of a parent unit, prior to compiling the private
22913         part of a child unit, find on the scope stack the proper parent entity
22914         on which to link the use clause.
22915         (Note_Redundant_Use): Emit a warning when a redundant use clause is
22916         detected.
22917         (Analyze_Object_Renaming): An attribute reference is not a legal object
22918         if it is not a function call.
22919
22920 2005-11-14  Robert Dewar  <dewar@adacore.com>
22921             Ed Schonberg  <schonberg@adacore.com>
22922
22923         * sem_eval.adb: Implement d.f flag
22924         (Subtype_Statically_Match): A generic actual type has unknown
22925         discriminants when the corresponding actual has a similar partial view.
22926         If the routine is called to validate the signature of an inherited
22927         operation in a child instance, the generic actual matches the full view,
22928
22929 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
22930             Ed Schonberg  <schonberg@adacore.com>
22931             Robert Dewar  <dewar@adacore.com>
22932             Thomas Quinot  <quinot@adacore.com>
22933
22934         * sem_res.adb (Resolve_Call): Provide a better error message whenever
22935         a procedure call is used as a select statement trigger and is not an
22936         entry renaming or a primitive of a limited interface.
22937         (Valid_Conversion): If the operand has a single interpretation do not
22938         remove address operations.
22939         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
22940         statement to inhibit warning.
22941         (Resolve_Unary_Op): Do not produce a warning when
22942         processing an expression of the form -(A mod B)
22943         Use Universal_Real instead of Long_Long_Float when we need a high
22944         precision float type for the generated code (prevents gratuitous
22945         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
22946         (Resolve_Concatenation_Arg): Improve error message when argument is an
22947         ambiguous call to a function that returns an array.
22948         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
22949         there is an implicit operator in the given scope if we are within an
22950         instance: legality check has been performed on the generic.
22951         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
22952         after resolving operand, to avoid false warnings on overloaded calls.
22953
22954 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
22955             Javier Miranda  <miranda@adacore.com>
22956
22957         PR ada/15604
22958         * sem_type.adb (Covers): In an inlined body, a composite type matches
22959         a private type whose full view is a composite type.
22960         (Interface_Present_In_Ancestor): Protect the frontend against
22961         previously detected errors to ensure that its compilation
22962         with assertions enabled gives the same output that its
22963         compilation without assertions.
22964         (Interface_Present_In_Ancestor): Add support for private types.
22965         Change name In_Actual to In_Generic_Actual (clean up)
22966         (Disambiguate): New predicate In_Actual, to recognize expressions that
22967         appear in the renaming declaration generated for generic actuals, and
22968         which must be resolved in the outer context.
22969
22970 2005-11-14  Robert Dewar  <dewar@adacore.com>
22971             Thomas Quinot  <quinot@adacore.com>
22972             Hristian Kirtchev  <kirtchev@adacore.com>
22973             Ed Schonberg  <schonberg@adacore.com>
22974
22975         * sem_util.ads, sem_util.adb: Change name Is_Package to
22976         Is_Package_Or_Generic_Package.
22977         (Check_Obsolescent): New procedure.
22978         (Set_Is_Public): Remove obsolete junk test.
22979         (Set_Public_Status): Do not set Is_Public on an object whose declaration
22980         occurs within a handled_sequence_of_statemets.
22981         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
22982         for a parameterless procedure.
22983         (Enter_Name): Recognize renaming declarations created for private
22984         component of a protected type within protected operations, so that
22985         the source name of the component can be used in the debugger.
22986
22987 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
22988             Robert Dewar  <dewar@adacore.com>
22989
22990         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
22991         of a generic subprogram are not visible outside the body.
22992         (Set_Warning_Switch): New procedure (code to set warning mode moved
22993         here from Switch.C so that it can be shared by pragma processing.
22994         (Check_References): Special case warning for non-modified non-imported
22995         volatile objects.
22996         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
22997         form with a string literal argument
22998
22999 2005-11-14  Javier Miranda  <miranda@adacore.com>
23000
23001         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
23002         anonymous access.
23003         (Write): Addition of "not null" to the anonymous access.
23004         (Read): Addition of "not null" to the anonymous access.
23005         (Write): Addition of "not null" to the anonymous access.
23006
23007         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
23008         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
23009         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
23010         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
23011         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
23012         "not null" to the anonymous access.
23013
23014 2005-11-14  Robert Dewar  <dewar@adacore.com>
23015
23016         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
23017         offset values
23018
23019 2005-11-14  Vincent Celier  <celier@adacore.com>
23020
23021         * switch.adb (Bad_Switch): New procedure
23022         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
23023         message when in error.
23024
23025         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
23026         Too_Many_Output_Files): Remove declarations, no longer used.
23027         (Scan_Nat): New parameter Switch
23028         (Scan_Pos): Ditto
23029         (Bad_Switch): New procedure
23030
23031         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
23032         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
23033         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
23034         to Osint.Fail. Do not handle any exception.
23035
23036 2005-11-14  Vincent Celier  <celier@adacore.com>
23037
23038         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
23039         designates a non existent directory.
23040
23041 2005-11-14  Robert Dewar  <dewar@adacore.com>
23042
23043         * xgnatugn.adb: Replace invalid membership test by 'Valid
23044
23045 2005-11-14  Vincent Celier  <celier@adacore.com>
23046
23047         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
23048         there is no object directory.
23049
23050 2005-11-14  Robert Dewar  <dewar@adacore.com>
23051
23052         * usage.adb: Minor adjustment to output format, use nn instead of nnn
23053         (so that -gnateInnn does not run into next column)
23054
23055 2005-11-14  Ed Falis  <falis@adacore.com>
23056
23057         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
23058         "constrained"
23059
23060 2005-11-14  Cyrille Comar  <comar@adacore.com>
23061
23062         * s-chepoo.ads: Add comments on Dereference.
23063         Remove unnecessary inherited abstract primitives.
23064         Cosmetic cleanup.
23065
23066 2005-11-14  Robert Dewar  <dewar@adacore.com>
23067
23068         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
23069         node parameter, not needed, since it is available as Declaration_Node.
23070
23071 2005-11-14  Geert Bosch  <bosch@adacore.com>
23072
23073         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
23074         grammatically correct.
23075
23076 2005-11-14  Vincent Celier  <celier@adacore.com>
23077
23078         * s-fileio.ads: Correct spelling error in comment
23079
23080 2005-11-14  Cyrille Comar  <comar@adacore.com>
23081             Robert Dewar  <dewar@adacore.com>
23082             Vincent Celier  <celier@adacore.com>
23083             Ben Brosgol  <brosgol@adacore.com>
23084             Jose Ruiz  <ruiz@adacore.com>
23085             Pascal Obry  <obry@adacore.com>
23086
23087         * gnat_ugn.texi:
23088         Document that -fstack-check is needed for strict compliance with the
23089         Ada 95 Reference Manual.
23090         Correct reference to VAX systems to meet HP guidelines
23091         Add documentation for new gnatmake switches -vl, -vm and -vh
23092         Replace DEC Ada by HP Ada
23093         Replace DIGITAL by HP
23094         Remove empty section on tools in compatibility section
23095         Clarify the Windows convention semantics.
23096         Document the Win32 calling convention.
23097         The Stdcall, Win32 and DLL convention are synonyms.
23098         Add a note in -gnatR description about zero size record components
23099         Note on new >= and <= warnings for -gnatwc
23100         Document that equal sign after -gnatm is optional.
23101         Note that strip is working fine on DLL built with a Library
23102         Project. The restriction apply only to DLL built with gnatdll.
23103         Update section about the way to debug a DLL.
23104         Update information about the DLL convention.
23105         Document -C switch for gnatprep
23106         Document new attribute Library_ALI_Dir
23107         Update elaboration doc to include implicit Elaborate pragmas now
23108         generated for subprogram instantiations.
23109         Document limitation on executable names that include spaces for --GCC,
23110         --GNATBIND, and --GNATLINK switches.
23111         Document that -w causes -gnatws to be added at start of gcc switches
23112
23113         * gnat_rm.texi: Document that -mieee is needed for generating infinite
23114         and NaN values in case of overflow on machines that are not fully
23115         compliant with the IEEE floating-point standard.
23116         Create a section describing the set of compiler options needed for
23117         strict compliance with the Ada 95 Reference Manual.
23118         Add documentation for pragma Obsolescent applied to a package
23119         Clarify potential issues of mixed language programs related to the
23120         I/O buffering enabling in the elaboration of the GNAT runtime.
23121         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
23122         This documentation only patch adds extra documentsion for pragma
23123         Restrictions (No_Elaboration_Code), explaining why it is not possible
23124         to document this restriction in terms of allowed source constructs.
23125         Document string literal form of pragma Warnings
23126         Document new attribute Library_ALI_Dir
23127         Add documentation on stable attributes in project files that was missing
23128
23129         * gnat-style.texi: Indicate that paragraphs within a single comment
23130         should be separated by empty comment lines
23131
23132         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
23133         /05 respectively)
23134
23135         * bindusg.adb: Minor cleanup, put -m before -M for consistency
23136
23137 2005-11-14  Robert Dewar  <dewar@adacore.com>
23138
23139         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
23140         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
23141         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
23142         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
23143         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
23144         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
23145         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
23146         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
23147         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
23148         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
23149         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
23150         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
23151         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
23152         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
23153         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
23154         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
23155         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
23156         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
23157         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
23158         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
23159         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
23160         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
23161         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
23162         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
23163         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
23164         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
23165         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
23166         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
23167         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
23168         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
23169         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
23170         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
23171         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
23172         system-interix.ads, system-solaris-sparc.ads,
23173         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
23174         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
23175         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
23176         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
23177         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
23178         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
23179         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
23180         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
23181         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
23182         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
23183         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
23184         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
23185         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
23186         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
23187         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
23188         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
23189         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
23190         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
23191         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
23192         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
23193         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
23194         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
23195         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
23196         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
23197         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
23198         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
23199         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
23200         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
23201         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
23202         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
23203         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
23204         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
23205         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
23206         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
23207         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
23208         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
23209         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
23210         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
23211         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
23212         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
23213         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
23214         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
23215         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
23216         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
23217         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
23218         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
23219         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
23220         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
23221         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
23222         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
23223         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
23224         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
23225         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
23226         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
23227         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
23228         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
23229         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
23230         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
23231         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
23232         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
23233         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
23234         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
23235         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
23236         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
23237         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
23238         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
23239         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
23240         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
23241         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
23242         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
23243         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
23244         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
23245         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
23246         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
23247         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
23248         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
23249         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
23250         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
23251         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
23252         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
23253         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
23254         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
23255         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
23256         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
23257         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
23258         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
23259         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
23260         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
23261         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
23262         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
23263         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
23264         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
23265         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
23266         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
23267         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
23268         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
23269         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
23270         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
23271         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
23272         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
23273         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
23274         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
23275         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
23276         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
23277         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
23278         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
23279         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
23280         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
23281         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
23282         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
23283         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
23284         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
23285         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
23286         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
23287         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
23288         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
23289         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
23290         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
23291         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
23292         a-numaux-darwin.ads, a-numaux-darwin.adb,
23293         a-swuwha.ads, a-stunha.ads: Minor reformatting
23294
23295 2005-11-14  Robert Dewar  <dewar@adacore.com>
23296
23297         PR ada/18434
23298         * osint-m.adb: Add pragma Elaborate_All for Osint
23299
23300 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
23301
23302         PR ada/23995
23303         * trans.c (call_to_gnu): Restore statement lost in translation.
23304
23305 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
23306
23307         * init.c: Use the Linux-specific section for the IA-64/Linux target.
23308         (__gnat_adjust_context_for_raise): Add conditional code so that the
23309         IA-64 is also supported.
23310
23311 2005-11-03  James E Wilson  <wilson@specifix.com>
23312
23313         PR ada/23427
23314         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
23315         TREE_OVERFLOW check.
23316
23317 2005-09-21  Olivier Hainque  <hainque@adacore.com>
23318
23319         PR ada/22418
23320         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
23321         as we create them to store a size in bits.
23322
23323 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
23324
23325         PR ada/21937
23326         PR ada/22328
23327         PR ada/22381
23328         PR ada/22383
23329         PR ada/22419
23330         PR ada/22420
23331         * utils2.c (build_return_expr): New helper function.
23332         * gigi.h (build_return_expr): Declare it.
23333         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
23334         of manually building the RETURN_EXPR tree.
23335         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
23336         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
23337         build_binary_op for the "target pointer" case.  Use build_return_expr
23338         instead of manually building the RETURN_EXPR tree.
23339
23340 2005-09-16  Laurent Guerby  <laurent@guerby.net>
23341
23342         PR ada/23788
23343         * s-tpinop.ads: Make this unit Preelaborate.
23344
23345 2005-09-16  Andreas Jaeger  <aj@suse.de>
23346
23347         * socket.c: Add string.h for memcpy.
23348
23349 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
23350
23351         * dec-io.ads, dec-io.adb: Removed, no longer used.
23352
23353 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
23354
23355         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
23356
23357         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
23358         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
23359         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
23360         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
23361         dependent units are Preelaborate.
23362         (Initialize): Call Interrupt_Managemeent.Initialize and
23363         OS_Primitives.Initialize to ensure proper initialization of this unit.
23364         Remove use of System.Soft_Links
23365         Make this unit Preelaborate.
23366
23367         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
23368         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
23369         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
23370         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
23371         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
23372         s-tratas.ads, s-tasinf.ads: Minor reformatting.
23373         Add pragma Preelaborate, since these packages are suitable for this
23374         categorization.
23375         Update comments.
23376
23377         * s-traent-vms.ads, s-intman-dummy.adb,
23378         s-taprop-dummy.adb: Make this unit Preelaborate.
23379
23380         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
23381         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
23382         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
23383         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
23384         s-intman-solaris.adb, s-intman-irix-athread.adb,
23385         s-intman-irix.adb: Mark this unit Preelaborate.
23386         (Initialize): New procedure.
23387         Update comments.
23388
23389         * s-taspri-linux.ads: Removed.
23390
23391         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
23392         as done by other implementations (e.g. posix).
23393
23394         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
23395         responsible for deferring abort.
23396         Mark this unit Preelaborate.
23397
23398         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
23399         proper initialization of the tasking run-time.
23400
23401         * s-tasdeb.ads: Mark this unit Preelaborate.
23402         (Known_Tasks): Add explicit default value to avoid elaboration code.
23403
23404         * s-inmaop-vms.adb (Elaboration code): Add call to
23405         Interrupt_Management.Initialize since the elaboration code depends on
23406         proper initialization of this package.
23407
23408         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
23409         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
23410         s-osprim-posix.adb: Make this unit Preelaborate.
23411
23412         * a-calend.adb: Add call to OS_Primitives.Initialize
23413
23414         * a-elchha.adb: Update use of Except.Id.Full_Name.
23415         Minor reformatting.
23416         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
23417
23418         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
23419         Move with clauses outside Warnings Off now that dependent units are
23420         Preelaborate.
23421         Use raise xxx with "..."; Ada 2005 form.
23422
23423         * a-taside.ads, a-taside.adb:
23424         Remove some dependencies, to make it easier to make this unit truly
23425         Preelaborate.
23426         Rewrite some code to be conformant with Preelaborate rules.
23427
23428         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
23429         marked Preelaborate in the future.
23430
23431         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
23432         these units Preelaborate.
23433
23434         * s-exctab.adb: Update use of Except.Id.Full_Name.
23435
23436         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
23437         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
23438         Set_Exc_Stack_Addr): Removed, no longer used.
23439         Remove reference to *Machine_State_Addr*, no longer needed.
23440
23441         * s-stalib.ads: Mark this unit as Preelaborate[_05].
23442         (Exception_Data): Full_Name is now a System.Address so that this unit
23443         can be made Preelaborate.
23444         Clean up/simplify code thanks to Full_Name being a System.Address.
23445         Remove obsolete pragma Suppress (All_Checks), no longer needed.
23446
23447         * s-taskin.ads, s-taskin.adb:
23448         Move with clauses outside Warnings Off now that dependent units are
23449         Preelaborate.
23450         Make this unit Preelaborate.
23451         (Initialize): New proceduure, replace elaboration code and makes the
23452         set up of the tasking run-time cleaner.
23453         (Detect_Blocking): Now a function instead of a deferred boolean, to
23454         obey Preelaborate rules.
23455
23456         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
23457         soft links, no longer used.
23458
23459         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
23460         packages are suitable for this categorization.
23461
23462         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
23463         since we compile run-time sources in Ada 2005 mode.
23464         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
23465         avoid having s-taprop*.adb depend on s-soflin and to avoid code
23466         duplication.
23467         Remove reference to *Machine_State_Addr*, no longer needed.
23468
23469 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
23470
23471         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
23472         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
23473         Remove reference to System.Exceptions.
23474
23475         * s-mastop-x86.adb: Removed, no longer used.
23476
23477         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
23478
23479         * a-excach.adb: Minor reformatting.
23480
23481         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
23482         instead fix new warnings that were hidden by this change.
23483         (AAA, ZZZ): Removed, replaced by...
23484         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
23485         are used instead of constants, to help make Ada.Exception truly
23486         preelaborate.
23487         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
23488         Raise_Storage_Error): File is now a System.Address, to simplify code.
23489         (Elab code): Removed, no longer used.
23490         (Null_Occurrence): Remove Warnings Off and make this construct
23491         preelaborate.
23492         Remove code related to front-end zero cost exception handling, since
23493         it is no longer used.
23494         Remove -gnatL/-gnatZ switches.
23495
23496         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
23497         Update use of Except.Msg.
23498
23499         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
23500         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
23501         to front-end zero cost exception handling, since it is no longer used.
23502         Remove -gnatL/-gnatZ switches.
23503
23504         * lib-writ.ads: Minor reformatting
23505         Remove doc of UX
23506
23507         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
23508
23509         * Make-lang.in: Remove references to s-except.ads
23510
23511         * s-except.ads: Removed, no longer used.
23512
23513         * s-mastop.ads, s-mastop.adb:
23514         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
23515         Remove reference to System.Exceptions.
23516
23517         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
23518         switch-b.adb: Remove code related to front-end zero cost exception
23519         handling, since it is no longer used.
23520         Remove -gnatL/-gnatZ switches.
23521
23522 2005-09-01  Robert Dewar  <dewar@adacore.com>
23523             Gary Dismukes  <dismukes@adacore.com>
23524             Javier Miranda  <miranda@adacore.com>
23525
23526         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
23527         type by valid test and generate warning.
23528         (Tagged_Membership): Generate call to the run-time
23529         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
23530         Change formal name Subtype_Mark to Result_Definition in several calls to
23531         Make_Function_Specification.
23532         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
23533         check for proper accessibility of the operand of a class-wide allocator.
23534         The check can be left out if checks are suppressed or if the expression
23535         has a specific tagged type whose level is known to be safe.
23536
23537         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
23538         generates the run-time check associated with null-excluding entities.
23539         (Expand_N_Return_Statement): Add tests to determine if the accessibility
23540         check on the level of the return expression of a class-wide function
23541         can be elided. The check usually isn't needed if the expression has a
23542         specific type (unless it's a conversion or a formal parameter). Also
23543         add a test for whether accessibility checks are suppressed. Augment
23544         the comments to describe the conditions for performing the check.
23545
23546 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
23547             Javier Miranda  <miranda@adacore.com>
23548             Gary Dismukes  <dismukes@adacore.com>
23549             Ed Schonberg  <schonberg@adacore.com>
23550
23551         * a-tags.adb (IW_Membership): Give support to
23552         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
23553         subprogram has been extended to look for the tag in the ancestors tag
23554         table.
23555         Update the structure of the GNAT Dispatch Table to reflect the
23556         additional two tables used in dispatching selects.
23557         Introduce appropriate array types and record components in
23558         Type_Specific_Data to reflect the two tables.
23559         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
23560         the TSD of a tag, indexed by position.
23561         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
23562         operation kind in the TSD of a tag, indexed by position.
23563
23564         * a-tags.ads: Introduce an enumeration type to capture different
23565         primitive operation kinds. Define a constant reflecting the number of
23566         predefined primitive operations.
23567         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
23568         of an entry wrapper.
23569         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
23570         callable entity of a primitive operation.
23571
23572         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
23573         primitive operations used in dispatching selects for limited
23574         interfaces, limited tagged, task and protected types what implement a
23575         limited interface.
23576         (Freeze_Type): Generate the bodies of the primitive operations used in
23577         dispatching selects for limited tagged, task and protected types that
23578         implement a limited interface. Generate statements to populate the two
23579         auxiliary tables used for dispatching in select statements.
23580         (Freeze_Record_Type): Add call to initialize the dispatch table entries
23581         associated with predefined interface primitive operations.
23582         (Build_Dcheck_Function): Change Set_Subtype_Mark to
23583         Set_Result_Definition.
23584         (Build_Variant_Record_Equality): Change Subtype_Mark to
23585         Result_Definition.
23586         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
23587         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
23588         (Build_Assignment): Simplify the code that adds the run-time-check.
23589         (Expand_N_Object_Declaration): Code cleanup.
23590
23591         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
23592         entries when there is a protected type that implements a limited
23593         interface.
23594
23595         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
23596         common routines used in expansion of dispatching selects.
23597         (Add_Private_Declarations): Select the appropriate protection type when
23598         there is a protected type that implements a limited interface.
23599         (Build_Parameter_Block): Generate a wrapped parameter block.
23600         (Build_Protected_Subprogram_Body): Select the appropriate type for
23601         locking entries when there is a protected type that implements a
23602         limited interface.
23603         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
23604         classified as entry wrappers.
23605         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
23606         asynchronous selects.
23607         (Expand_N_Conditional_Entry_Call): Add support for expansion of
23608         dispatching conditional selects.
23609         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
23610         protection when there is a protected type that implements limited
23611         interfaces.
23612         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
23613         timed selects.
23614         (Extract_Dispatching_Call): Extract the entity of the name of a
23615         dispatching call, the object parameter, actual parameters and
23616         corresponding formals.
23617         (Make_Initialize_Protection): Correct logic of protection initialization
23618         when there is a protected type that implements a limited interface.
23619         (Parameter_Block_Pack): Populate a wrapped parameter block with the
23620         values of actual parameters.
23621         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
23622         block and assign them to the original actual parameters.
23623
23624         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
23625         (Build_Protected_Sub_Specification): Change the type and name of the
23626         last formal to account for the increased variety of protection modes.
23627
23628         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
23629         entities. Used to save the value of the Is_Hidden attribute when the
23630         limited-view is installed.
23631         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
23632         the attribute of procedures classified as entry wrappers.
23633         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
23634         entity of a primitive wrapper.
23635         (Write_Entity_Flags): Output the name and value of the
23636         Is_Primitive_Wrapper attribute.
23637         (Write_Field27_Name): Output the name and entity of the field Wrapped_
23638         Entity.
23639         (Underlying_Type): If we have an incomplete entity that comes from
23640         the limited view then we return the Underlying_Type of its non-limited
23641         view if it is already available.
23642         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
23643         including operators.
23644         (Write_Field26_Name): Add entry for Overridden_Operation
23645         (Overridden_Operation): New attribute of functions and procedures.
23646
23647         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
23648         predefined position in the dispatch table for the primitive operations
23649         used in dispatching selects.
23650         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
23651         predefined primitive operations and replace it with
23652         Default_Prim_Op_Count.
23653         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
23654         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
23655         the names of the generated primitive operations used in dispatching
23656         selects.
23657         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
23658         case of abstract interface types. They will be inherit by the objects
23659         implementing the interface.
23660         (Make_DT): There is no need to inherit the dispatch table of the
23661         ancestor interface for the elaboration of abstract interface types.
23662         The dispatch table will be inherited by the object implementing the
23663         interface.
23664         (Copy_Secondary_DTs): Add documentation.
23665         (Validate_Position): Improve this static check in case of
23666         aliased subprograms because aliased subprograms must have
23667         the same position.
23668         (Init_Predefined_Interface_Primitives): New subprogram that initializes
23669         the entries associated with predefined primitives of all the secondary
23670         dispatch tables.
23671         (Build_Anonymous_Access_Type): Removed.
23672         (Expand_Interface_Actuals): With the previous cleanup there is no need
23673         to build an anonymous access type. This allows further cleanup in the
23674         code generated by the expander.
23675         (Expand_Interface_Conversion): If the actual is an access type then
23676         build an internal function to handle the displacement. If the actual
23677         is null this function returns null because no displacement is
23678         required; otherwise performs a type conversion that will be
23679         expanded in the code that returns the value of the displaced actual.
23680         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
23681         conversions that have no effect in the generated code because no
23682         displacement is required. Code cleanup; use local variables to
23683         avoid repeated calls to the subprogram directly_designated_type().
23684
23685         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
23686         Classify the primitive operations used in dispatching selects as
23687         predefined.
23688         (Implements_Limited_Interface): Determine whether some type either
23689         directly implements a limited interface or extends a type that
23690         implements a limited interface.
23691         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
23692         (Expand_Subtype_From_Expr): Do not build actual subtype if the
23693         expression is limited.
23694         (Find_Interface_Tag): Add code to handle class-wide types and
23695         entities from the limited-view.
23696
23697         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
23698         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
23699         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
23700         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
23701         Set_Prim_Op_Kind.
23702
23703         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
23704         of procedure name or prefix that appears as a trigger in a triggering
23705         alternative.
23706
23707         * uintp.ads: Introduce constants Uint_11 and Uint_13.
23708
23709 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
23710
23711         * s-tataat.adb, a-tasatt.adb:
23712         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
23713
23714         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
23715         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
23716         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
23717         longer used.
23718
23719 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
23720             Jose Ruiz  <ruiz@adacore.com>
23721
23722         * s-taprop-vxworks.adb:
23723         Move with clauses outside Warnings Off now that dependent units are
23724         Preelaborate.
23725         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
23726         initialization of this unit.
23727         (Specific): Add new procedures Initialize and Delete so that this
23728         package can be used for VxWorks 5.x and 6.x
23729         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
23730         differences between VxWorks 5.x and 6.x
23731         Minor reformatting.
23732         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
23733         caller.
23734         Use only Preelaborate-compatible constructs.
23735
23736         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
23737         Primitives.Operations.
23738         (Delete, Initialize): New procedures.
23739
23740         * s-osinte-vxworks.adb: Body used to handle differences between
23741         VxWorks 5.x and 6.x
23742         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
23743
23744         * s-osinte-vxworks.ads: Minor reformatting.
23745         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
23746         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
23747         and 6.
23748         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
23749         between Vxworks 5 and 6.
23750         (taskLock, taskUnlock): Removeed, no longer used.
23751
23752         * adaint.c: The wait.h header is not located in the sys directory on
23753         VxWorks when using RTPs.
23754         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
23755         using RTPs.
23756         (__gnat_dup): dup is available on Vxworks when using RTPs.
23757         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
23758
23759         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
23760
23761         * expect.c: The wait.h header is not located in the sys directory on
23762         VxWorks when using RTPs.
23763
23764 2005-09-01  Thomas Quinot  <quinot@adacore.com>
23765
23766         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
23767
23768         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
23769
23770         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
23771         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
23772         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
23773         g-soccon-freebsd.ads: Add new constants:
23774          IP_MULTICAST_IF
23775          SO_RCVTIMEO/SO_SNDTIMEO
23776          IOV_MAX
23777
23778         * gen-soccon.c:
23779         Move all target-specific file inclusions and macro definitions to
23780         gsocket.h, in order to ensure that any C code in socket.c will see a
23781         set of constants that is consistent with the contents of g-soccon.ads.
23782
23783         * gsocket.h: Code imported from gen-soccon.c:
23784         Move all target-specific file inclusions and macro definitions to
23785         gsocket.h, in order to ensure that any C code in socket.c will see a set
23786         of constants that is consistent with the contents of g-soccon.ads.
23787         This change also makes gen-soccon self-contained (removing dependencies
23788         upon GCC internal headers).
23789
23790         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
23791         iovecs at a time.
23792         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
23793
23794         * socket.c: Minor reformatting.
23795
23796 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
23797             Thomas Quinot  <quinot@adacore.com>
23798
23799         * fname-sf.adb, mlib-tgt.ads,
23800         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
23801         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
23802         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
23803         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
23804         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
23805         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
23806         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
23807         makegpr.adb: Remove redundant use_clauses.
23808
23809 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
23810
23811         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
23812         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
23813         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
23814         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
23815         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
23816         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
23817         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
23818         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
23819         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
23820         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
23821         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
23822         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
23823         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
23824         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
23825         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
23826         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
23827         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
23828         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
23829         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
23830         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
23831         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
23832         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
23833         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
23834         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
23835         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
23836         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
23837         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
23838         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
23839         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
23840         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
23841         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
23842         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
23843         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
23844         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
23845         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
23846         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
23847         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
23848         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
23849         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
23850         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
23851         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
23852         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
23853         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
23854         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
23855         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
23856         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
23857         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
23858         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
23859         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
23860         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
23861         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
23862         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
23863         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
23864         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
23865         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
23866         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
23867         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
23868         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
23869         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
23870         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
23871         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
23872         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
23873         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
23874         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
23875         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
23876         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
23877         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
23878         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
23879         and always use the no parameter form for consistency.
23880
23881         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
23882
23883 2005-09-01  Robert Dewar  <dewar@adacore.com>
23884
23885         * binde.adb: Minor reformatting
23886         (Find_Elab_Order): Output warning if -p used with static elab order
23887
23888 2005-09-01  Robert Dewar  <dewar@adacore.com>
23889
23890         * checks.adb (Check_Needed): New procedure, deals with removing checks
23891         based on analysis of short-circuited forms. Also generates warnings for
23892         improper use of non-short-circuited forms.
23893         Code clean ups.
23894
23895 2005-09-01  Robert Dewar  <dewar@adacore.com>
23896
23897         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
23898         with 'Valid tests.
23899
23900 2005-09-01  Robert Dewar  <dewar@adacore.com>
23901
23902         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
23903         spec.
23904         Implement new insertion char < (conditional warning)
23905         * errutil.adb, erroutc.adb: Implement new insertion char <
23906         (conditional warning).
23907         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
23908         (Error_Msg_Warn): New variable for < insertion char.
23909         * prj-nmsc.adb: Implement new errout insertion char < (conditional
23910         warning).
23911         (Check_For_Source): Change value of Source_Id only after the current
23912         source has been dealt with.
23913
23914 2005-09-01  Robert Dewar  <dewar@adacore.com>
23915             Doug Rupp  <rupp@adacore.com>
23916
23917         * exp_attr.adb: Handle vax fpt for 'Valid attribute
23918         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
23919         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
23920         (Valid_D, Valid_F, Valid_G): New functions
23921
23922 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
23923             Hristian Kirtchev  <kirtchev@adacore.com>
23924             Javier Miranda  <miranda@adacore.com>
23925
23926         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
23927         from object notation, the original node is unanalyzed and carries no
23928         semantic information, so that accessiblity checks must be performed on
23929         the type of the actual itself.
23930         (Expand_N_Subprogram_Declaration): Change last actual parameter for
23931         compatibility with Build_Protected_Sub_Specification.
23932         (Check_Overriding_Inherited_Interfaces): Add suport to handle
23933         overloaded primitives.
23934         (Register_Interface_DT_Entry): Use the new name of the formal
23935         the the calls to Expand_Interface_Thunk
23936
23937         * exp_dbug.ads: Augment comments on encoding of protected types to
23938         include the generation of dispatching subprograms when the type
23939         implements at least one interface.
23940
23941         * lib.ads: Extend information in Load_Stack to include whether a given
23942         load comes from a Limited_With_Clause.
23943
23944         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
23945         whether a potential circularity is harmless, because it includes units
23946         loaded through a limited_with clause. Extends previous treatment which
23947         did not handle properly arbitrary combinations of limited and
23948         non-limited clauses.
23949
23950 2005-09-01  Nicolas Setton  <setton@adacore.com>
23951
23952         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
23953         to be encoded as typ___XBLU_lowerbound__upperbound instead of
23954         typ___XB_lowerbound__upperbound.
23955
23956 2005-09-01  Thomas Quinot  <quinot@adacore.com>
23957
23958         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
23959         dummy access formal for RACW/RAS TypeCode TSS.
23960         (Build_TypeCode_Call): Do not generate dummy null access actual for
23961         calls to the TypeCode TSS.
23962
23963 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
23964
23965         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
23966         fully qualified name, to distinguish instances with the same local name.
23967
23968         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
23969         fully qualified.
23970
23971 2005-09-01  Robert Dewar  <dewar@adacore.com>
23972
23973         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
23974         packed arrays.
23975
23976 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
23977
23978         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
23979         (Free): New deallocation procedure for filter elements
23980         (Close): Deallocate any existing filter for the concerned connection
23981
23982 2005-09-01  Laurent Pautet  <pautet@adacore.com>
23983
23984         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
23985         position set is provided, we compute one in order to reduce the maximum
23986         length of the keys.  This computation first selects a character
23987         position between 1 and the minimum length of the keys in order to
23988         avoid reducing one of the keys to an empty string.
23989         (Initialize, Compute): When the ratio V to K is too low, the algorithm
23990         does not converge. The initialization procedure now comes with a
23991         maximum number of iterations such that when exceeded, an exception is
23992         raised in Compute. The user can initialize this ratio to another value
23993         and try again
23994         Reformating and updated headers.
23995
23996 2005-09-01  Javier Miranda  <miranda@adacore.com>
23997
23998         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
23999         that given an entity T creates and returns an Itype that duplicates the
24000         contents of T. The returned Itype has the null-exclusion
24001         attribute set to True, and its Etype attribute references T
24002         to keep the association between the two entities.
24003         Update copyright notice
24004
24005         * sem_aggr.adb (Check_Can_Never_Be_Null,
24006         Aggregate_Constraint_Checks, Resolve_Aggregate,
24007         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
24008
24009         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
24010
24011 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
24012             Robert Dewar  <dewar@adacore.com>
24013             Hristian Kirtchev  <kirtchev@adacore.com>
24014
24015         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
24016         Result_Definition.
24017
24018         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
24019         function specs.
24020         Call Set_Result_Definition instead of Set_Subtype_Mark.
24021         (P_Subprogram_Specification): Add parsing of anonymous access result
24022         plus null exclusions. Call Set_Result_Definition instead of
24023         Set_Subtype_Mark.
24024
24025         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
24026         (P_Access_Type_Definition): Add parsing for an anonymous access result
24027         subtype, plus parsing for null exclusions. Call Set_Result_Definition
24028         instead of Set_Subtype_Mark.
24029
24030         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
24031         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
24032         (Result_Definition): New function for N_Function_Specifications.
24033         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
24034         N_Function_Specification.
24035         (Set_Null_Exclusion_Present): Allow this flag for
24036         N_Function_Specification.
24037         (Set_Result_Definition): New procedure for N_Function_Specifications.
24038         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
24039         and N_Function_Specification.
24040
24041         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
24042         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
24043         Add support for LIMITED NEW for Ada 2005 AI-419
24044         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
24045         syntax for anonymous access results.
24046         Replace Subtype_Mark field by Result_Definition in
24047         N_Function_Specification and N_Access_Definition specs.
24048         Add Null_Exclusion_Present to spec of N_Function_Specification.
24049         (Result_Definition): New function for N_Function_Specification and
24050         N_Access_Function_Definition.
24051         (Set_Result_Definition): New procedure for N_Function_Specification and
24052         N_Access_Function_Definition.
24053
24054         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
24055         Result_Definition for cases of N_Access_Function_Definition and
24056         N_Function_Specification.
24057         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
24058
24059 2005-09-01  Vincent Celier  <celier@adacore.com>
24060
24061         * lib-writ.adb: Update Copyright notice
24062         (Write_With_Lines): On platforms where file names are case-insensitive,
24063         record the file names in lower case.
24064         (Write_ALI): For D lines, on platforms where file names are
24065         case-insensitive, record the file names in lower case.
24066
24067 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24068             Emmanuel Briot  <briot@adacore.com>
24069
24070         * lib-xref.adb (Output_Overridden_Op): Display information on
24071         overridden operation.
24072
24073         * lib-xref.ads: Add documentation on overridden operations.
24074
24075         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
24076         information.
24077
24078         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
24079         overriding entity information.
24080
24081 2005-09-01  Vincent Celier  <celier@adacore.com>
24082
24083         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
24084         including those that are inherited.
24085
24086 2005-09-01  Robert Dewar  <dewar@adacore.com>
24087
24088         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
24089
24090         * par-prag.adb: Implement new pragma Debug_Policy
24091
24092         * sem_prag.adb Implement new pragma Debug_Policy
24093         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
24094         Component_Size attribute specification. Give warning for ignored pragma
24095         Pack.
24096
24097         * snames.h, snames.ads, snames.adb: Introduce entries in
24098         Preset_Names for Name_Disp_Asynchronous_Select,
24099         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
24100         Name_Disp_Timed_Select.
24101         New pragma Debug_Policy
24102
24103         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
24104         explicitly.
24105         Switch -gnata also sets Debug_Pragmas_Enabled
24106
24107         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
24108         handle an explicit -gnata when compiling predefined files.
24109
24110 2005-09-01  Vincent Celier  <celier@adacore.com>
24111
24112         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
24113         directories of projects that have no Ada sources.
24114
24115 2005-09-01  Robert Dewar  <dewar@adacore.com>
24116
24117         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
24118         (makes a difference for wide characters)
24119
24120         * widechar.adb, widechar.ads:
24121         Add Wide_Char_Byte_Count feature to count chars vs bytes
24122
24123 2005-09-01  Thomas Quinot  <quinot@adacore.com>
24124             Ed Schonberg  <schonberg@adacore.com>
24125             Robert Dewar  <dewar@adacore.com>
24126
24127         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
24128         'Address attribute reference with an overloaded prefix, use the
24129         location of the prefix (not the location of the attribute reference) as
24130         the error location.
24131         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
24132         a function renaming thereof, is a valid prefix for 'Size (where it is
24133         intepreted as a function call).
24134         (Statically_Denotes_Entity): New predicate to determine whether the
24135         prefix of an array attribute can be considered static.
24136
24137         PR ada/9087
24138         (Eval_Attr): Fix failure to evaluate Component_Size for
24139         unconstrained arrays (resulted in wrong value in packed case, since
24140         back end cannot handle this case)
24141
24142 2005-09-01  Robert Dewar  <dewar@adacore.com>
24143
24144         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
24145         error msgs for most common cases.
24146         Use new errout insertion char < (conditional warning)
24147
24148 2005-09-01  Javier Miranda  <miranda@adacore.com>
24149             Ed Schonberg  <schonberg@adacore.com>
24150
24151         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
24152         become local to the whole package.
24153         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
24154         the package was already analyzed the new algorithm "replaces" the
24155         real entities by the shadow ones. This is required to ensure that
24156         the order of these entities in the homonym chains does not change;
24157         otherwise we can have undefined references at linking time because
24158         in case of conflicts the external name of the entities will have
24159         a suffix that depends on the order of the entities in the chain.
24160         (Remove_Limited_With_Clause): Complementary code that completes the
24161         new algorithm and replaces the shadow entities by the real ones.
24162         (Install_Limited_Withed_Unit): When unchaining entities before the
24163         installation of the shadow entities, only regular entities of the
24164         public part must be taken into account. This is required to
24165         keep this routine in synch with the work done by Remove_Limited_
24166         With_Clause
24167         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
24168         even if unit is analyzed, because the analysis of the unit is
24169         idempotent in any case, and the limited view of the unit may have to
24170         be installed for proper visibility.
24171         (Expand_Limited_With_Clause): Even if the unit in the implicit
24172         with_clause has been analyzed already, a limited view of the package
24173         must be built for the current context, if it does not exist yet.
24174
24175 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24176             Javier Miranda  <miranda@adacore.com>
24177             Gary Dismukes  <dismukes@adacore.com>
24178
24179         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
24180         defining entity for the instance body, make a new defining identifier
24181         rather than copying the entity of the spec, to prevent accidental
24182         sharing of the entity list.
24183         (Check_Private_View): When exchanging views of private types, build the
24184         list of exchanged views as a stack, to ensure that on exit the exchanges
24185         are undone in the proper order.
24186         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
24187         Restore the compilation environment in case of instantiation_error.
24188         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
24189         for an anonymous access result.
24190         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
24191         (Formal_Entity): Handle properly the case of a formal package that
24192         denotes a generic package renaming.
24193
24194 2005-09-01  Thomas Quinot  <quinot@adacore.com>
24195
24196         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
24197         clause if the array aggregate is surrounded by parentheses.
24198
24199 2005-09-01  Cyrille Comar  <comar@adacore.com>
24200             Gary Dismukes  <dismukes@adacore.com>
24201             Ed Schonberg  <schonberg@adacore.com>
24202             Javier Miranda  <miranda@adacore.com>
24203
24204         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
24205         underlying type
24206         to check if a type is Constrained in cases related to code generation
24207         (rather than semantic checking) since otherwise we do not generate
24208         similar code for mutable private types depending if their
24209         discriminants are visible or not.
24210         (Check_Abstract_Overriding): Do not complain about failure to override
24211         the primitive operations used in dispatching selects since they will
24212         always be overriden at the freeze point of the type.
24213         (Access_Definition): Separate out handling for resetting the scope
24214         of an anonymous access function result type. Retrieve the scope
24215         of the associated function rather than using Current_Scope, which
24216         does not have a consistent value (depends on whether we're in the
24217         middle of analyzing formal parameters). Add ??? comment about
24218         finding a cleaner way to handle the special cases of scope setting.
24219         (Process_Incomplete_Dependents): A protected operation is never a
24220         dispatching operation (only its wrapper may be).
24221         (Build_Derived_Record_Type): In case of tagged private types that
24222         implement interfaces add derivation of predefined primitive
24223         operations.
24224         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
24225         by two parameters that are used in case of derivation from abstract
24226         interface types: No_Predefined_Prims is used to avoid the derivation
24227         of predefined primitives from the interface, and Predefined
24228         Prims_Only is used to complete the derivation predefined primitives
24229         in case of private tagged types implementing interfaces.
24230         Fix typo in comments
24231         (Find_Interface_In_Descendant): Protect the frontend against
24232         wrong code with large circularity chains.
24233         (Is_Private_Overriding): Add support for entities overriding interface
24234         subprograms. The test failed because Entities associated with overriden
24235         interface subprograms are always marked as hidden (and used to build
24236         the secondary dispatch table); in this case the overriden entity is
24237         available through the field abstract_interface_alias (cf. override_
24238         dispatching_operation)
24239         (Access_Definition): Set the scope of the type to Current_Scope for the
24240         case of a function with an anonymous access result type.
24241         (Access_Subprogram_Declaration): Handle creation of the type entity for
24242         an access-to-function type with an anonymous access result.
24243         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
24244         in handling for N_Access_Function_Definition.
24245         (Analyze_Subtype_Declaration): Modify the text of error message.
24246         (Derived_Type_Declaration): Modify the text of error message.
24247         (Process_Subtype): Modify the text of error message plus cleanup
24248         of one redundant error message.
24249         (Analyze_Component_Declaration): Code cleanup.
24250         (Analyze_Object_Declaration): Code cleanup.
24251         (Analyze_Subtype_Declaration): Propagate the null-exclusion
24252         attribute in case of access types. Code cleanup.
24253         (Array_Type_Declaration): Code cleanup.
24254         (Process_Discriminants): Create the new null-excluding itype
24255         if required. Code cleanup.
24256         (Process_Subtype): Create the new null-excluding itype if
24257         required. Code cleanup.
24258         (Build_Derived_Record_Type): Code cleanup to avoid calling
24259         twice the subprogram derive_subprograms in case of private
24260         types that implement interfaces. In this particular case the
24261         subprogram Complete_Subprograms_Derivation already does the
24262         job associated with the second call.
24263
24264         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
24265         conversion to the full view when generating an operation for a
24266         discriminant whose type may currently be private.
24267
24268 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24269             Javier Miranda  <miranda@adacore.com>
24270
24271         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
24272         V (Obj.F), the rewriting does not involve the indexed component, but
24273         only the selected component itself.
24274         Do not apply the transformation if the analyzed node is an actual of a
24275         call to another subprogram.
24276         (Complete_Object_Operation): Retain the entity of the
24277         dispatching operation in the selector of the rewritten node. The
24278         entity will be used in the expansion of dispatching selects.
24279         (Analyze_One_Call): Improve location of the error message associated
24280         with interface.
24281         (Analyze_Selected_Component): No need to resolve prefix when it is a
24282         function call, resolution is done when parent node is resolved, as
24283         usual.
24284         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
24285         when attempting to resolve a call transformed from its object notation.
24286         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
24287         of the argument list for each interpretation of the operation.
24288         (Try_Object_Operation): The designated type of an access parameter may
24289         be an incomplete type obtained through a limited_with clause, in which
24290         case the primitive operations of the type are retrieved from its full
24291         view.
24292         (Analyze_Call): If this is an indirect call, and the return type of the
24293         access_to_subprogram is incomplete, use its full view if available.
24294
24295 2005-09-01  Javier Miranda  <miranda@adacore.com>
24296             Gary Dismukes  <dismukes@adacore.com>
24297
24298         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
24299         access types the null-exclusion and access-to-constant attributes must
24300         also match.
24301         (Analyze_Return_Statement): When the result type is an anonymous access
24302         type, apply a conversion of the return expression to the access type
24303         to ensure that appropriate accessibility checks are performed.
24304         (Analyze_Return_Type): For the case of an anonymous access result type,
24305         generate the Itype and set Is_Local_Anonymous_Access on the type.
24306         Add ??? placeholder for check to disallow returning a limited object
24307         in Ada 2005 unless it's an aggregate or a result of a function call.
24308         Change calls from Subtype_Mark to Result_Definition.
24309         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
24310         Result_Definition in call to Make_Function_Specification.
24311         (Build_Body_To_Inline): Change Set_Subtype_Mark to
24312         Set_Result_Definition.
24313         (Make_Inequality_Operator): Change formal Subtype_Mark to
24314         Result_Definition in call to Make_Function_Specification.
24315         (Process_Formals): Create the new null-excluding itype if required.
24316         (New_Overloaded_Entity): For an entity overriding an interface primitive
24317         check if the entity also covers other abstract subprograms in the same
24318         scope. This is required to handle the general case, that is, overriding
24319         other interface primitives and overriding abstract subprograms inherited
24320         from some abstract ancestor type.
24321         (New_Overloaded_Entity): For an overriding entity that comes from
24322         source, note the operation that it overrides.
24323         (Check_Conformance, Type_Conformant): Addition of one new formal
24324         to skip controlling formals in the analysis. This is used to
24325         handle overloading of abstract interfaces.
24326         (Base_Types_Match): Add missing case for types imported from
24327         limited-with clauses
24328         (New_Overloaded_Entity): Add barrier to protect the use of
24329         the "alias" attribute.
24330
24331 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24332
24333         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
24334         verify that the procedure and the entry are mode conformant.
24335         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
24336         as a different operator, which is often a cut-and-paste error.
24337
24338 2005-09-01  Javier Miranda  <miranda@adacore.com>
24339             Ed Schonberg  <schonberg@adacore.com>
24340
24341         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
24342         used in controlling parameters exclude null because it is necessary to
24343         read the tag to dispatch, and null has no tag.
24344         (Override_Dispatching_Operation): If the previous operation is inherited
24345         from an interface, it becomes hidden  and does not participate in later
24346         name resolution.
24347
24348 2005-09-01  Javier Miranda  <miranda@adacore.com>
24349             Ed Schonberg  <schonberg@adacore.com>
24350             Gary Dismukes  <dismukes@adacore.com>
24351
24352         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
24353         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
24354         the expander will generate the corresponding run-time check to evaluate
24355         the expression.
24356         (Resolve_Call): Check for legal type of procedure name or prefix that
24357         appears as a trigger in a triggering alternative.
24358         (Valid_Conversion): If expression is ambiguous and the context involves
24359         an extension of System, remove System.Address interpretations.
24360         (Resolve_Qualified_Expression): Reject the case of a specific-type
24361         qualification applied to a class-wide argument. Enhance comment
24362         to explain checking of Original_Node.
24363         (Resolve_Type_Conversion): The location of the error message was not
24364         general enough to handle the general case and hence it has been removed.
24365         In addition, this patch improves the text of the message.
24366         (Resolve_Type_Conversion): Add missing support for access to interface
24367         types.
24368         (Resolve_Type_Conversion): If the target is a class-wide interface type,
24369         do not expand if the expression is the actual in a call, because proper
24370         expansion will take place when the call itself is expanded.
24371         (Resolve_Allocator): If the context is an unchecked conversion, the
24372         allocator inherits its storage pool, if any, from the target type of
24373         the conversion.
24374
24375 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24376             Javier Miranda  <miranda@adacore.com>
24377
24378         * sem_type.adb (Add_One_Interp): If a candidate operation is an
24379         inherited interface operation that has an implementation, use the
24380         implementation to avoid spurious ambiguities.
24381         (Interface_Present_In_Ancestor): In case of concurrent types we can't
24382         use the Corresponding_Record_Typ attribute to look for the interface
24383         because it is set by the expander (and hence it is not always
24384         available). For this reason we traverse the list of interfaces
24385         (available in the parent of the concurrent type).
24386         (Interface_Present_In_Ancestor): Handle entities from the limited view
24387
24388 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24389
24390         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
24391         from the list of required components.
24392         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
24393         primitive procedure of a limited interface with a controlling first
24394         parameter.
24395         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
24396         of an entry.
24397         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
24398         capture if it is generated in the second operand of a short-circuit
24399         operation.
24400         Do not capture values for variables with address clauses.
24401         (Is_Object_Reference): Treat a function call as an object reference only
24402         if its type is not Standard_Void_Type.
24403
24404 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24405
24406         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
24407         to a variable that is statically known to be constant.
24408
24409 2005-09-01  Geert Bosch  <bosch@adacore.com>
24410             Robert Dewar  <dewar@adacore.com>
24411
24412         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
24413         (VAXGF_Safe_First): Idem.
24414
24415 2005-09-01  Robert Dewar  <dewar@adacore.com>
24416             Arnaud Charlet  <charlet@adacore.com>
24417
24418         * g-dirope.ads: Minor reformatting
24419         Document that bounds of result of Base_Name match the input index
24420         positions.
24421         Add documentation on environment variable syntax for Expand_Path
24422
24423         * gnat_ugn.texi: Update documentation to include mention of -m switches
24424         Document new treatment of wide characters in max line length
24425         style check.
24426         Remove -gnatL/-gnatZ switches, no longer used.
24427         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
24428         of -gnata switch.
24429
24430         * gnat_rm.texi: Add doc for two argument form of pragma
24431         Float_Representation.
24432         Add documentation for pragma No_Strict_Aliasing
24433         Add note that explicit component clause overrides pragma Pack.
24434         Add documentation of pragma Debug_Policy
24435
24436 2005-09-01  Matthew Heaney  <heaney@adacore.com>
24437
24438         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
24439         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
24440         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
24441         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
24442         draft (Draft 13, August 2005) of Ada Amendment 1.
24443
24444 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
24445
24446         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
24447         Note that the platform-specific version of g-soccon.ads for VMS is now
24448         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
24449         really is a package spec).
24450         Replace s-taspri-linux.ads by s-taspri-posix.ads
24451         Remove references to s-mastop-x86.adb
24452
24453         * system-vxworks-xscale.ads: Removed, no longer used.
24454         * s-vxwork-xscale.ads: Removed, no longer used.
24455
24456 2005-09-01  Robert Dewar  <dewar@adacore.com>
24457
24458         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
24459         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
24460         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
24461         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
24462         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
24463         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
24464         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
24465         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
24466         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
24467         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
24468         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
24469         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
24470         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
24471         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
24472         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
24473         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
24474         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
24475         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
24476         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
24477         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
24478         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
24479
24480 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
24481
24482         PR ada/23187
24483         * adaint.c
24484         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
24485
24486 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
24487             Doug Rupp  <rupp@adacore.com>
24488
24489         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
24490         when needed.
24491         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
24492         this code in the GNAT run-time.
24493
24494         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
24495
24496         PR ada/21053
24497         * init.c (__gnat_error_handler [many]): Mark "msg" as const
24498         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
24499
24500         (__gnat_inside_elab_final_code): Moved here from
24501         Standard_Library and only defined for the compiler.
24502         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
24503         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
24504         using RTPs because directly vectored Interrupt routines are not
24505         supported on this configuration.
24506         (getpid): Do not redefine this function on VxWorks when using RTPs
24507         because this primitive is well supported by the RTP libraries.
24508         (copy_msg): Correct the code that checks for buffer overflow.
24509         Discovered during code reading.
24510
24511 2005-08-29  Olivier Hainque  <hainque@adacore.com>
24512
24513         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
24514         a library level mutable variable with an initializer, tell
24515         build_allocator to ignore the initializer's size. It may not be large
24516         enough for all the values that might be assigned to the variable later
24517         on.
24518
24519 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
24520             Eric Botcazou  <ebotcazou@adacore.com>
24521
24522         * trans.c: Protect < in error msg with quote
24523         Replace GCC_ZCX by Back_End_Exceptions.
24524         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
24525         has been sufficiently aligned in the record.
24526
24527 2005-08-15  James E. Wilson  <wilson@specifix.com>
24528
24529         * system-linux-alpha.ads: Change ia64 to alpha.
24530
24531 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
24532
24533         * decl.c, utils.c: Fix comment typos.
24534
24535 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
24536
24537         * decl.c, init.c, initialize.c: Fix comment typos.
24538
24539 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
24540
24541         Make CONSTRUCTOR use VEC to store initializers.
24542         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
24543         CONSTRUCTOR_ELTS.
24544         * trans.c (extract_values): Likewise.
24545         * utils.c (convert, remove_conversions): Likewise.
24546         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
24547         gnat_build_constructor): Likewise.
24548
24549 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
24550
24551         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
24552         DECL_SECTION_NAME.
24553         (compare_field_bitpos): Likewise.
24554
24555 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
24556
24557         * utils.c (create_var_decl): Only set DECL_COMMON on
24558         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
24559         VAR_OR_FUNCTION_DECL_P.
24560
24561 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
24562
24563         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
24564         removed.
24565
24566 2005-07-07  Pascal Obry  <obry@adacore.com>
24567
24568         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
24569         returned type on Windows.
24570
24571         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
24572         routine.
24573
24574         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
24575         exception in this case.
24576         Simplify the code as "Image (Image'Range)" = "Image".
24577
24578 2005-07-07  Vincent Celier  <celier@adacore.com>
24579
24580         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
24581         the destructor/constructor attributes for <lib>final/<lib>init.
24582
24583         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
24584
24585 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
24586
24587         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
24588         type if the parameter is not passed by copy but reference by default.
24589
24590 2005-07-07  Javier Miranda  <miranda@adacore.com>
24591
24592         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
24593         Reimplementation of the support for abstract interface types in order
24594         to leave the code more clear and easy to maintain.
24595
24596         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
24597         abstract interface types in order to leave the code clearer and easier
24598         to maintain.
24599
24600         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
24601         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
24602         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
24603         appropriate entry of the secondary dispatch table.
24604         (Make_DT): Add code to inherit the secondary dispatch tables of
24605         the ancestors.
24606
24607         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
24608         implementing both functionalities by means of a common routine, each
24609         routine has its own code.
24610
24611 2005-07-07  Javier Miranda  <miranda@adacore.com>
24612
24613         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
24614
24615         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
24616         types:
24617         --
24618           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
24619         --
24620
24621         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
24622         use of tag incomplete types.
24623
24624         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
24625         give support to tagged incomplete types.
24626
24627         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
24628         expression is a discriminant reference and its type is private, as can
24629         happen within a stream operation for a mutable record, use the full
24630         view of the type to resolve the case alternatives.
24631         (Analyze_Assignment): Check wrong dereference of incomplete types.
24632
24633         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
24634         types.
24635
24636         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
24637         incomplete types.
24638
24639         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
24640         N_Incomplete_Type_Declaration nodes.
24641
24642         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
24643         Tag_Present to give support to tagged incomplete types:
24644         --
24645           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
24646         --
24647
24648 2005-07-07  Olivier Hainque  <hainque@adacore.com>
24649
24650         PR ada/22301
24651         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
24652         definitions for the Unwind wrappers in the compiler case.
24653
24654 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
24655             Javier Miranda  <miranda@adacore.com>
24656
24657         * par-load.adb (Load): If a child unit is loaded through a limited_with
24658         clause, each parent must be loaded as a limited unit as well.
24659
24660         * sem_ch10.adb (Previous_Withed_Unit): Better name for
24661         Check_Withed_Unit. Return true if there is a previous with_clause for
24662         this unit, whether limited or not.
24663         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
24664         the current unit.
24665         (Is_Visible_Through_Renamings): New local subprogram of install_limited
24666         _withed_unit that checks if some package installed through normal with
24667         clauses has a renaming declaration of package whose limited-view is
24668         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
24669         of the current Draft document for Ada 2005.
24670         (Analyze_Context): Complete the list of compilation units that
24671         are allowed to contain limited-with clauses. It also contains
24672         checks that were previously done by Install_Limited_Context_Clauses.
24673         This makes the code more clear and easy to maintain.
24674         (Expand_Limited_With_Clause) It is now a local subprogram of
24675         Install_Limited_Context_Clauses, and contains the code that adds
24676         the implicit limited-with clauses for parents of child units.
24677         This functionality was prevously done by Analyze_Context.
24678
24679         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
24680         incomplete type.
24681
24682         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
24683         been erroneously named in a limited-with clause of its own context.
24684         In this case the error has been previously notified by Analyze_Context.
24685
24686 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
24687
24688         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
24689         generic package that contains local declarations with the same name.
24690         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
24691
24692 2005-07-07  Bernard Banner  <banner@adacore.com>
24693
24694         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
24695         ia64 platform only on platforms that you the GCC unwind library
24696         rather than the system unwind library.
24697
24698 2005-07-07  Thomas Quinot  <quinot@adacore.com>
24699
24700         * expect.c: Minor reformatting
24701
24702 2005-07-07  Sergey Rybin  <rybin@adacore.com>
24703
24704         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
24705         --no-separate-is
24706
24707         * gnat_ugn.texi: Add description for new gnatpp option
24708         (--no-separate-is)
24709
24710 2005-07-04  Thomas Quinot  <quinot@adacore.com>
24711
24712         * g-expect-vms.adb, g-expect.ads, g-expect.adb
24713         (Get_Command_Output): New subprogram to launch a process and get its
24714         standard output as a string.
24715
24716 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
24717             Olivier Hainque  <hainque@adacore.com>
24718
24719         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
24720         fetch a code-range descriptor associated with the machine state. On
24721         failure set the machine state's PC to 0; on success, pass the
24722         descriptor to exc_virtual_unwind.
24723
24724         * init.c (Tru64 section): New function __gnat_set_code_loc.
24725
24726 2005-07-04  Vincent Celier  <celier@adacore.com>
24727
24728         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
24729         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
24730         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
24731         Remove all auto-initialization code, as this is now done through the
24732         constructor mechanism.
24733
24734         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
24735         __gnat_sals_init_using_constructors): New functions.
24736
24737         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
24738         Linker_Constructor and Linker_Destructor when switch -a is used.
24739
24740         * bindusg.adb: Add line for new switch -a
24741
24742         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
24743         (Gnatbind): When switch -a is used, check if it is allowed
24744
24745         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
24746
24747 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
24748
24749         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
24750         This prevents us from hitting a limitation during the debug info
24751         generation when using stabs.
24752         (Prims_Ptr): Likewise.
24753
24754 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
24755             Ed Schonberg  <schonberg@adacore.com>
24756             Javier Miranda  <miranda@adacore.com>
24757
24758         * checks.adb (Null_Exclusion_Static_Checks): In the case of
24759         N_Object_Declaration, only perform the checks if the Object_Definition
24760         is not an Access_Definition.
24761
24762         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
24763         where the parent of an the access definition is an N_Object_Declaration
24764         when determining the Associated_Node_For_Itype and scope of an
24765         anonymous access-to-subprogram type.
24766
24767         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
24768         Corresponding_Spec on the body created for a null procedure. Add ???
24769         comment. Remove New_Copy_Tree call on body argument to
24770         Set_Body_To_Inline.
24771
24772         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
24773         discriminants, use the type of the actual as well, because the
24774         discriminants may be read by the called subprogram.
24775
24776         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
24777         access type we do not need to handle non-limited views.
24778         (Build_Derived_Record_Type): Additional check to check that in case of
24779         private types, interfaces are only allowed in private extensions.
24780
24781 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
24782
24783         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
24784         <Pragma_Linker_Destructor>: Likewise.
24785
24786         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
24787         Pragma_Linker_Destructor.
24788
24789         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
24790         ATTR_LINK_DESTRUCTOR.
24791         (static_ctors, static_dtors): New variables.
24792
24793         * misc.c (gnat_expand_body): Output current function as constructor
24794         and destructor if requested.
24795
24796         * par-prag.adb: Add processing for pragma Linker_Constructor and
24797         Linker_Destructor.
24798
24799         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
24800         extracted from Check_Interrupt_Or_Attach_Handler.
24801         (Check_Interrupt_Or_Attach_Handler): Invoke it.
24802         Implement pragma Linker_Constructor and Linker_Destructor with the
24803         help of Find_Unique_Parameterless_Procedure.
24804         Replace Name_Alias with Name_Target for pragma Linker_Alias.
24805
24806         * snames.h, snames.ads, snames.adb:
24807         Add Name_Linker_Constructor and Name_Linker_Destructor.
24808         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
24809         * snames.adb: Remove Name_Alias.
24810
24811         * trans.c: Include cgraph.h.
24812         (build_global_cdtor): New function.
24813         (Compilation_Unit_to_gnu): Build global constructor and destructor if
24814         needed.
24815         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
24816         of objects too.
24817         (addressable_p) <COMPONENT_REF>: Unconditionally test
24818         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
24819
24820         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
24821         variable if it is external.
24822
24823         (static_ctors, static_dtors): New global variables.
24824         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
24825         <ATTR_LINK_DESTRUCTOR>: Likewise.
24826         (end_subprog_body): Chain function as constructor and destructor
24827         if requested.
24828
24829         * exp_util.adb (Force_Evaluation): Unconditionally invoke
24830         Remove_Side_Effects with Variable_Ref set to true.
24831         (Remove_Side_Effects): Handle scalar types first. Use a renaming
24832         for non-scalar types even if Variable_Ref is true and for class-wide
24833         expressions.
24834
24835 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
24836
24837         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
24838         to prevent spurious warnings.
24839
24840 2005-07-04  Thomas Quinot  <quinot@adacore.com>
24841
24842         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
24843         Itypes. Itypes are really unexpected there.
24844         (Build_TypeCode_Function): Generalise special processing for Itypes to
24845         handle the case of numeric implicit base types as well as enumerated
24846         ones.
24847
24848 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
24849
24850         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
24851         controlled, indicate the expected type of the dereference that is
24852         created for the call to Deep_Finalize, to prevent spurious errors when
24853         the designated type is private and completed with a derivation from
24854         another private type.
24855
24856 2005-07-04  Vincent Celier  <celier@adacore.com>
24857
24858         * make.adb (Change_To_Object_Directory): When unable to change the
24859         current dir to the object directory, output the full path of the
24860         directory.
24861
24862 2005-07-04  Matthew Gingell  <gingell@adacore.com>
24863
24864         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
24865
24866         * indepsw-linux.adb: Replace by...
24867
24868         * indepsw-gnu.adb: ...this new file
24869
24870 2005-07-04  Vincent Celier  <celier@adacore.com>
24871
24872         * mlib-prj.adb (Auto_Initialize): New constant String
24873         (SALs_Use_Constructors): New Boolean function
24874         (Build_Library): Call gnatbind with Auto_Initialize switch when
24875         SALs_Use_Constructors returns True.
24876
24877         * mlib-tgt.ads: Minor reformatting
24878
24879         * mlib-utl.ads: Minor reformatting
24880
24881         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
24882
24883 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
24884
24885         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
24886         single protected declarations can have an interface list.
24887         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
24888         with seriously malformed entry declarations, and lead to compilation
24889         abandoned messages.
24890
24891 2005-07-04  Javier Miranda  <miranda@adacore.com>
24892
24893         * par-load.adb: Load the context items in two rounds.
24894
24895 2005-07-04  Robert Dewar  <dewar@adacore.com>
24896
24897         * scng.adb: Do not consider Mod used as an attribute to be a keyword
24898
24899 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
24900             Javier Miranda  <miranda@adacore.com>
24901
24902         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
24903         type extension needs a limited view.
24904         Remove previous restriction on private types available through the
24905         limited-view (only tagged private types were previously allowed).
24906         (Install_Withed_Unit): In the code that implements the
24907         legality rule given in AI-377, exclude a child unit with the name
24908         Standard, because it is a homonym of the Standard environment package.
24909
24910 2005-07-04  Thomas Quinot  <quinot@adacore.com>
24911
24912         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
24913         overloaded function call, carry interpretations from the original tree
24914         to the copy.
24915
24916 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
24917
24918         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
24919         types check whether some designated type is a limited view, and use
24920         the non-limited view if available.
24921
24922 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
24923
24924         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
24925         constraint of full view of a private view T1 if present, when T2 is a
24926         discriminated full view.
24927
24928 2005-07-04  Thomas Quinot  <quinot@adacore.com>
24929
24930         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
24931         actual that is a view conversion of a bit packed array reference.
24932
24933 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
24934
24935         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
24936         present before checking whether an interface type covers a synchronized
24937         type.
24938
24939 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
24940
24941         * sem_util.adb (Is_Object_Reference): An indexed or selected component
24942         whose prefix is an implicit dereference is an object reference. Removes
24943         spurious errors when compiling with -gnatc.
24944
24945 2005-07-04  Robert Dewar  <dewar@adacore.com>
24946
24947         PR ada/22039
24948         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
24949
24950 2005-07-04  Matthew Gingell  <gingell@adacore.com>
24951
24952         * tracebak.c: Enable tracebacks on ia64 platforms
24953
24954 2005-07-04  Vincent Celier  <celier@adacore.com>
24955
24956         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
24957         the GNAT BIND command, as gnatbind accepts multiples ALI files with
24958         the -L or -n switches.
24959
24960 2005-07-04  Vincent Celier  <celier@adacore.com>
24961
24962         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
24963         correctly computed and the main project data is not modified while
24964         doing so.
24965         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
24966         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
24967         c++linker as this does not work on some platforms.
24968
24969 2005-07-04  Matthew Heaney  <heaney@adacore.com>
24970
24971         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
24972         was changed.
24973         * a-coinve.adb: Perform constraint checks explicitly.
24974
24975 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24976             Thomas Quinot  <quinot@adacore.com>
24977
24978         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
24979         new target gen-soccon.
24980
24981 2005-07-04  Robert Dewar  <dewar@adacore.com>
24982
24983         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
24984
24985 2005-07-04  Thomas Quinot  <quinot@adacore.com>
24986
24987         * g-socket.ads (Check_Selector): Minor rewording of comment.
24988
24989 2005-07-04  Vincent Celier  <celier@adacore.com>
24990
24991         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
24992
24993 2005-07-04  Thomas Quinot  <quinot@adacore.com>
24994
24995         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
24996
24997 2005-07-04  Sergey Rybin  <rybin@adacore.com>
24998
24999         * gnat_ugn.texi: Add description of --eol gnatpp option
25000
25001 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
25002             Thomas Quinot  <quinot@adacore.com>
25003
25004         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
25005         if the user wants all calls of a subprogram to be flagged,
25006         independently of whether they are made from within the same unit or
25007         another unit.
25008         Mention restriction for pragma Linker_Alias on some platforms.
25009         Document pragma Linker_Constructor and Linker_Destructor.
25010         Rewrite documentation of Weak_External, Linker_Section and
25011         Linker_Alias pragmas.
25012
25013 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
25014
25015         * s-stausa.ads, s-stausa.adb: New files.
25016
25017 2005-06-30  Kelley Cook
25018
25019         * all files:  Update FSF address in copyright headers.
25020         * gen-soccon.co (main): Output new FSF address in generated files.
25021
25022 2005-06-28  Paul Brook  <paul@codesourcery.com>
25023
25024         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
25025
25026 2005-06-14  Olivier Hainque  <hainque@adacore.com>
25027             Eric Botcazou  <ebotcazou@adacore.com>
25028
25029         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
25030         exc_unwind, now that we are generating proper .debug_frame output for
25031         that target.
25032
25033         * tracebak.c: Remove the mips-irix section, as we are now using the
25034         s-mastop based unwinder again.
25035         Under SPARC/Solaris, take into account the stack bias to compute the
25036         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
25037         ABI.
25038
25039 2005-06-14  Doug Rupp  <rupp@adacore.com>
25040
25041         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
25042
25043         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
25044
25045 2005-06-14  Pascal Obry  <obry@adacore.com>
25046
25047         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
25048         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
25049         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
25050         package name).
25051
25052         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
25053         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
25054         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
25055         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
25056         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
25057         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
25058         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
25059         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
25060         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
25061         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
25062         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
25063         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
25064         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
25065         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
25066         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
25067         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
25068         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
25069         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
25070         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
25071         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
25072         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
25073         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
25074         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
25075         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
25076         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
25077         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
25078         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
25079         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
25080         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
25081         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
25082         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
25083         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
25084         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
25085         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
25086         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
25087         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
25088         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
25089         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
25090         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
25091         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
25092         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
25093         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
25094         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
25095         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
25096         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
25097         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
25098         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
25099         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
25100         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
25101         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
25102         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
25103         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
25104         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
25105         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
25106         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
25107         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
25108         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
25109         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
25110         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
25111         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
25112         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
25113         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
25114         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
25115         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
25116         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
25117         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
25118         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
25119         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
25120         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
25121         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
25122         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
25123         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
25124         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
25125         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
25126         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
25127         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
25128         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
25129         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
25130         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
25131         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
25132         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
25133         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
25134         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
25135         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
25136         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
25137         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
25138         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
25139         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
25140         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
25141         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
25142         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
25143         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
25144         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
25145         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
25146         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
25147         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
25148         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
25149         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
25150         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
25151         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
25152         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
25153         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
25154         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
25155         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
25156         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
25157         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
25158         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
25159         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
25160         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
25161         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
25162         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
25163         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
25164         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
25165         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
25166         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
25167         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
25168         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
25169         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
25170         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
25171         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
25172         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
25173         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
25174         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
25175         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
25176         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
25177         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
25178         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
25179         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
25180         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
25181         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
25182         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
25183         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
25184         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
25185
25186 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
25187             Arnaud Charlet  <charlet@adacore.com>
25188
25189         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
25190         longer protected objects. They have been replaced by lower-level
25191         suspension objects made up by a mutex and a condition variable (or
25192         their equivalent given a particular OS) plus some internal data to
25193         reflect the state of the suspension object.
25194         (Initialize, Finalize): Add this initialization procedure for
25195         Suspension_Object, which is a controlled type.
25196         (Finalize): Add the finalization procedure for Suspension_Object,
25197         which is a controlled type.
25198
25199         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
25200         Ada.Synchronous_Task_Control because there is no longer a need for a
25201         VxWorks specific version of this package. Target dependencies
25202         has been moved to System.Task_Primitives.Operations.
25203
25204         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
25205         longer needed.
25206         (InitializeCriticalSection, EnterCriticalSection,
25207         LeaveCriticalSection, DeleteCriticalSection): Replace the type
25208         pCriticalSection by an anonymous access type so that we avoid problems
25209         of accessibility to local objects.
25210
25211         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
25212         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
25213         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
25214         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
25215         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
25216         set the environment task mask here.
25217         (Current_State): Add this function that returns the state of the
25218         suspension object.
25219         (Set_False): Add this procedure that sets the state of the suspension
25220         object to False.
25221         (Set_True): Add this procedure that sets the state of the suspension
25222         object to True, releasing the task that was suspended, if any.
25223         (Suspend_Until_True): Add this procedure that blocks the calling task
25224         until the state of the object is True. Program_Error is raised if
25225         another task is already waiting on that suspension object.
25226         (Initialize): Add this procedure for initializing the suspension
25227         object. It initializes the mutex and the condition variable which are
25228         used for synchronization and queuing, and it sets the internal state
25229         to False.
25230         (Finalize): Add this procedure for finalizing the suspension object,
25231         destroying the mutex and the condition variable.
25232
25233         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
25234         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
25235         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
25236         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
25237         which provides a low-level abstraction (using operating system
25238         primitives) for Ada.Synchronous_Task_Control.
25239         This object is made up by a mutex (for ensuring mutual exclusion), a
25240         condition variable (for queuing threads until the condition is
25241         signaled), a Boolean (State) indicating whether the object is open,
25242         and a Boolean (Waiting) reflecting whether there is a task already
25243         suspended on this object.
25244
25245         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
25246         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
25247         s-intman-vms.ads, s-intman-mingw.adb,
25248         (Initialize_Interrupts): Removed, no longer used.
25249
25250         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
25251         (Setup_Interrupt_Mask): New procedure.
25252
25253         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
25254
25255         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
25256
25257         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
25258         this is no longer done in the body of s-taprop
25259         (Server_Task): Explicitely test for Pending_Action in case
25260         System.Parameters.No_Abort is True.
25261
25262         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
25263         is no longer done in the body of s-taprop
25264
25265 2005-06-14  Robert Dewar  <dewar@adacore.com>
25266
25267         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
25268         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
25269         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
25270         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
25271         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
25272         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
25273         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
25274         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
25275         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
25276         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
25277         system-linux-hppa.ads, system-vms_64.ads,
25278         system-vxworks-alpha.ads: Minor comment update for
25279         AI-362 (unit is Pure).
25280
25281         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
25282         Add pragma Pure_05 for AI-362
25283         Make remaining conversion functions obsolescent in Ada 95
25284
25285         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
25286         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
25287         Add entries for a-wichun and a-zchuni
25288         Add a-widcha a-zchara for AI-395
25289         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
25290
25291         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
25292         Add entries for a-wichun.o and a-zchuni.o
25293         Entries for a-widcha.o and a-zchara.o
25294         Add entry for a-chacon.o
25295
25296         * a-ztenau.adb: Add with of Ada.Characters.Conversions
25297
25298         * a-chacon.ads, a-chacon.adb: New files.
25299
25300         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
25301         categorization violations.
25302
25303         * a-strmap.ads: Add pragma Pure_05 for AI-362
25304         * a-strmap.ads: Add note on implicit categorization for AI-362
25305
25306         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
25307
25308         * par-prag.adb: Dummy entry for pragma Persistent_BSS
25309         Set Ada_Version_Explicit, for implementation of AI-362
25310         Add processing for pragma Pure_05 and Preelaborate_05
25311         Add entry for Assertion_Policy pragma
25312
25313         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
25314         when needed for proper processing of categorization stuff
25315
25316         * sem_cat.adb:
25317         For several cases, make errors in preealborate units warnings,
25318         instead of errors, if GNAT_Mode is set. For AI-362.
25319
25320         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
25321         preelaborate unit is now warning if in GNAT mode
25322
25323         * s-stoele.ads: Document AI-362 for pragma preelaborate
25324
25325 2005-06-14  Doug Rupp  <rupp@adacore.com>
25326
25327         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
25328         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
25329         Default_Exception_Msg_Max_Length: new parameter.
25330
25331         * a-except.ads: (Exception_Msg_Max_Length): Set to
25332         System.Parameters.Default_Exception_Msg_Max_Length
25333         Add pragma Preelaborate_05 for AI-362
25334         Add warnings off to allow categorization violations for AI-362
25335
25336 2005-06-14  Vincent Celier  <celier@adacore.com>
25337
25338         * gnatsym.adb: Adapt to modification of package Symbols: procedure
25339         Process is now in package Processing.
25340
25341         * symbols.ads, symbols.adb:
25342         (Processing): New package, containing procedure Process
25343
25344         * symbols-vms-alpha.adb:
25345         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
25346
25347         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
25348         symbols-processing-vms-ia64.adb: New files.
25349
25350 2005-06-14  Pascal Obry  <obry@adacore.com>
25351
25352         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
25353         implementation. This new version generates the proper DllMain routine
25354         to initialize the SAL. The DllMain is generated in Ada and compiled
25355         before being added as option to the library build command.
25356
25357 2005-06-14  Doug Rupp  <rupp@adacore.com>
25358             Pascal Obry  <obry@adacore.com>
25359
25360         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
25361         call to decc$translate_vms.
25362         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
25363         need to remove those quotes before catenating the filename.
25364         (__gnat_locate_exec_on_path): improvements to the Win32 section:
25365         * avoid allocating the memory twice for better efficiency;
25366         * allocate 32K buffer for environment expansion as suggested by MSDN;
25367         * prepend ".;" to the path so that current directory is searched too.
25368
25369 2005-06-14  Robert Dewar  <dewar@adacore.com>
25370
25371         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
25372         instead of raising CE (AI-241)
25373         Add warnings off to allow categorization violations for AI-362
25374
25375 2005-06-14  Robert Dewar  <dewar@adacore.com>
25376
25377         * ali-util.adb, gnatbind.adb: Remove references to
25378         Force_RM_Elaboration_Order.
25379
25380         * switch-b.adb: Remove recognition of -f switch
25381
25382 2005-06-14  Pascal Obry  <obry@adacore.com>
25383
25384         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
25385         implementation which is slightly more efficient.
25386
25387 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
25388             Javier Miranda  <miranda@adacore.com>
25389             Ed Schonberg  <schonberg@adacore.com>
25390             Hristian Kirtchev  <kirtchev@adacore.com>
25391
25392         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
25393         allocator's designated type is a class-wide type, and compiling for
25394         Ada 2005, emit a run-time check that the accessibility level of the
25395         type given in the allocator's expression is not deeper than the level
25396         of the allocator's access type.
25397
25398         (Tagged_Membership): Modified to gives support to abstract interface
25399         types.
25400
25401         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
25402         Access_Level.
25403         (Descendant_Tag): New predefined function
25404         (Is_Descendant_At_Same_Level): New predefined function
25405         (Get_Access_Level): New private function
25406         (Set_Access_Level): New private procedure
25407         (IW_Membership): New function. Given the tag of an object and the tag
25408         associated with an interface, evaluate if the object implements the
25409         interface.
25410         (Register_Interface_Tag): New procedure used to initialize the table of
25411         interfaces used by the IW_Membership function.
25412         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
25413         of the dispatch table.
25414         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
25415         table of interfaces of the parent.
25416         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
25417         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
25418         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
25419         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
25420         Ada 2005 semantics for the new predefined function.
25421
25422         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
25423         call to Descendant_Tag rather than Internal_Tag.
25424         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
25425         the accessibility level of the attribute's Item parameter is not deeper
25426         than the level of the attribute's prefix type. Tag_Error is raised if
25427         the check fails. The check is only emitted for Ada_05.
25428         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
25429         requested stream attribute, use it.
25430         (Expand_N_Attribute_Reference): If the designated type is an interface
25431         then rewrite the referenced object as a conversion to force the
25432         displacement of the pointer to the secondary dispatch table.
25433         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
25434         is a dereference of an object with a constrained partial view.
25435
25436         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
25437         type is a class-wide type, emit a run-time check that the accessibility
25438         level of the returned object is not deeper than the level of the
25439         function's master (only when compiling for Ada 2005).
25440
25441         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
25442         Action_Nb_Arg): Add entries for new Get_Access_Level and
25443         Set_Access_Level routines in these tables.
25444         (Make_DT): Generate a call to set the accessibility level of the
25445         tagged type in its TSD.
25446         (Make_DT): Code cleanup. The functionality of generating all the
25447         secondary dispatch tables has been moved to freeze_record_type.
25448         (Make_Abstract_Interface_DT): Minor code cleanup.
25449         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
25450         this subprogram implements a new algorithm that provides the
25451         same functionality and it is more clear in case of primitives
25452         associated with abstract interfaces.
25453         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
25454         clean up, the functionality of this subprogram is now provided
25455         by Set_All_DT_Position.
25456         (Write_DT): New subprogram: a debugging procedure designed to be called
25457         within gdb to display the dispatch tables associated with a tagged
25458         type.
25459         (Collect_All_Interfaces): New subprogram that collects the whole list
25460         of interfaces that are directly or indirectly implemented by a tagged
25461         type.
25462         (Default_Prim_Op_Position): New subprogram that returns the fixed
25463         position in the dispatch table of the default primitive operations.
25464         (Expand_Interface_Actuals): New subprogram to generate code that
25465         displaces all the actuals corresponding to class-wide interfaces to
25466         reference the interface tag of the actual object.
25467         (Expand_Interface_Conversion): New subprogram. Reference the base of
25468         the object to give access to the interface tag associated with the
25469         secondary dispatch table.
25470         (Expand_Interface_Thunk): New subprogram that generates the code of the
25471         thunk. This is required for compatibility with the C+ ABI.
25472         (Make_Abstract_Interface_DT): New subprogram that generate the
25473         declarations for the secondary dispatch tables associated with an
25474         abstract interface.
25475         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
25476         attribute for each primitive operation covering interface subprograms
25477         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
25478         These subprograms were upgraded to give support to abstract interfaces
25479
25480         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
25481         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
25482         RE_Set_Access_Level.
25483         (RE_Unit_Table): Add entries for new Ada.Tags operations.
25484         Add support to call the followig new run-time subprograms:
25485         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
25486
25487         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
25488         match its full declaration when both have an access definition with
25489         statically matching designated subtypes.
25490         (Analyze_Component_Declaration): Delete commented out code that was
25491         incorrectly setting the scope of an anonymous access component's type.
25492         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
25493         an access discriminant when the containing type is nonlimited.
25494         (Make_Incomplete_Type_Declaration): Create an incomplete type
25495         declaration for a record type that includes self-referential access
25496         components.
25497         (Check_Anonymous_Access_Types): Before full analysis of a record type
25498         declaration, create anonymous access types for each self-referential
25499         access component.
25500         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
25501         an access component in this context is a Local_Anonymous_Access, for
25502         proper accessibility checks.
25503         (Access_Definition): Set properly the scope of the anonymous access type
25504         created for a stand-alone access object.
25505         (Find_Type_Of_Object): An object declaration may be given with an access
25506         definition.
25507         (Complete_Subprograms_Derivation): New subprogram used to complete
25508         type derivation of private tagged types implementing interfaces.
25509         In this case some interface primitives may have been overriden
25510         with the partial-view and, instead of re-calculating them, they
25511         are included in the list of primitive operations of the full-view.
25512         (Build_Derived_Record_Type): Modified to give support to private
25513         types implemening interfaces.
25514         (Access_Definition): Reject ALL on anonymous access types.
25515         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
25516         type derivation to occur at a deeper accessibility level than the
25517         parent type.
25518         For the case of derivation within a generic body however, disallow the
25519         derivation if the derived type has an ancestor that is a formal type
25520         declared in the formal part of an enclosing generic.
25521         (Analyze_Object_Declaration): For protected objects, remove the check
25522         that they cannot contain interrupt handlers if not declared at library
25523         level.
25524         (Add_Interface_Tag_Components): New subprogram to add the tag components
25525         corresponding to all the abstract interface types implemented by a
25526         record type or a derived record type.
25527         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
25528         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
25529         Process_Full_View, Record_Type_Declaration): Modified to give
25530         support to abstract interface types
25531         (Collect_Interfaces): New subprogram that collects the list of
25532         interfaces that are not already implemented by the ancestors
25533         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
25534         when partial view has no discriminants and full view has defaults.
25535         (Constrain_Access): Reject a constraint on a general access type
25536         if the discriminants of the designated type have defaults.
25537         (Access_Subprogram_Declaration): Associate the Itype node with the inner
25538         full-type declaration or subprogram spec. This is required to handle
25539         nested anonymous declarations.
25540         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
25541         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
25542         Process_Full_View, Record_Type_Declaration): Modified to give
25543         support to abstract interface types
25544         (Derive_Subprograms): Addition of a new formal to indicate if
25545         we are in the case of an abstact-interface derivation
25546         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
25547         to the specification because it is requied to analyze all the
25548         identifiers found in a list of interfaces
25549
25550         * debug.adb: Complete documentation of flag "-gnatdZ"
25551
25552         * exp_ch3.adb: Implement config version of persistent_bss pragma
25553         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
25554         testing for TSS presence to properly enforce visibility rules.
25555         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
25556         Make_Abstract_Interfaces_DT to generate the secondary tables
25557         associated with abstract interfaces.
25558         (Build_Init_Procedure): Modified to initialize all the tags
25559         corresponding.
25560         (Component_Needs_Simple_Initialization): Similar to other tags,
25561         interface tags do not need initialization.
25562         (Freeze_Record_Type): Modified to give support to abstract interface
25563         types.
25564         (Expand_N_Object_Declaration): Do not generate an initialization for
25565         a scalar temporary marked as internal.
25566
25567         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
25568         in-out parameter that is a component in an initialization procedure,
25569         whose constraint might depend on discriminants, and that may be
25570         misaligned because of packing or representation clauses.
25571         (Is_Legal_Copy): New predicate to determine whether a possibly
25572         misaligned in-out actual can actually be passed by copy/return. This
25573         is an error in case the type is by_reference, and a warning if this is
25574         the consequence of a DEC import pragma on the subprogram.
25575         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
25576         interface types
25577         (Expand_Inlined_Call): Mark temporary generated for the return value as
25578         internal, so that no useless scalar normalization is generated for it.
25579         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
25580         null procedure can always be inlined.
25581         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
25582         procedure, generate an explicit empty body for it.
25583
25584         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
25585         Given a type implementing an interface, returns the corresponding
25586         access_disp_table value.
25587         (Find_Interface_Tag): New subprogram. Given a type implementing an
25588         interface, returns the record component containing the tag of the
25589         interface.
25590         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
25591         previous ones that return the corresponding tag and access_disp_table
25592         entities.
25593         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
25594         is a predefined primitive operation.
25595         (Expand_Subtype_From_Expr): If the expression is a selected component
25596         within an initialization procedure, compute its actual subtype, because
25597         the component may depend on the discriminants of the enclosing record.
25598
25599         * i-cpp.ads, i-cpp.adb:
25600         This package has been left available for compatibility with previous
25601         versions of the frontend. As part of the new layout this is now a
25602         dummy package that uses declarations available at a-tags.ads
25603
25604         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
25605         "constant access" and "aliased [constant] access" when not compiling
25606         with -gnat05.
25607         Suppress Ada 2005 keyword warning if -gnatwY used
25608         (P_Identifier_Declarations): Add support for object declarations with
25609         access definitions.
25610         (Private_Extension_Declaration): Complete the documentation
25611         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
25612         attribute in case of private extension declaration
25613         (P_Type_Declaration): Mark as "abstract" the type declarations
25614         corresponding with protected, synchronized and task interfaces
25615         (P_Declarative_Items): "not" and "overriding" are overriding indicators
25616         for a subprogram or instance declaration.
25617
25618         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
25619         instantiation that is a dispatching operation has controlling access
25620         parameters that are null excluding.
25621         Save and restore Ada_Version_Explicit, for implementation of AI-362
25622         (Validate_Derived_Type_Instance): Add check for abstract interface
25623         types.
25624         (Analyze_Formal_Package): Establish Instantiation source for the copy of
25625         the generic that is created to represent the formal package.
25626         (Analyze_Package_Instantiation): Instantiate body immediately if the
25627         package is a predefined unit that contains inlined subprograms, and
25628         we are compiling for a Configurable_Run_Time.
25629         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
25630         If the program has a null default, generate an empty body for it.
25631
25632         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
25633         error message condition, null procedures are correctly detected now.
25634         (New_Overloaded_Entity): Bypass trivial overriding indicator check
25635         for subprograms in the context of protected types. Instead, the
25636         indicator is examined in Sem_Ch9 while analysing the subprogram
25637         declaration.
25638         (Check_Overriding_Indicator): Check consistency of overriding indicator
25639         on subprogram stubs as well.
25640         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
25641         the library level.
25642         (Analize_Subprogram_Specification): When analyzing a subprogram in which
25643         the type of the first formal is a concurrent type, replace this type
25644         by the corresponding record type.
25645         (Analyze_Subprogram_Body): Undo the previous work.
25646         (Analyze_Procedure_Call): If the call has the form Object.Op, the
25647         analysis of the prefix ends up analyzing the call itself, after which
25648         we are done.
25649         (Has_Interface_Formals): New subprogram subsidiary to analyze
25650         subprogram_specification that returns true if some non
25651         class-wide interface subprogram is found
25652         (New_Overloaded_Entity): Modified to give support to abstract
25653         interface types
25654         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
25655         access to subprograms must be recursive.
25656         (Is_Unchecked_Conversion): Improve the test that recognizes
25657         instantiations of Unchecked_Conversion, and allows them in bodies that
25658         are to be inlined by the front-end. When the body comes from an
25659         instantiation, a reference to Unchecked_Conversion will be an
25660         Expanded_Name, even though the body has not been analyzed yet.
25661         Replace Is_Overriding and Not_Overriding in subprogram_indication with
25662         Must_Override and Must_Not_Override, to better express intent of AI.
25663         (Analyze_Subprogram_Body): If an overriding indicator is given, check
25664         that it is consistent with the overrinding status of the subprogram
25665         at this point.
25666         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
25667         always inlined.
25668         If the subprogram is a null procedure, indicate that it does not need
25669         a completion.
25670
25671         * sem_disp.adb (Check_Controlling_Type): Give support to entities
25672         available through limited-with clauses.
25673         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
25674         allowed as the last primitive of a tagged type if it has no previous
25675         spec.
25676         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
25677         to give support to abstract interface types
25678
25679         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
25680         in the case where the target type is an anonymous access type of an
25681         object or component (that is, when Is_Local_Anonymous_Access is true).
25682         Prevent the special checks for conversions of access discriminants in
25683         the case where the discriminant belongs to a nonlimited type, since
25684         such discriminants have their accessibility level defined in the same
25685         way as a normal component of an anonymous access type.
25686         (Resolve_Allocator): When an allocator's designated type is a class-wide
25687         type, check that the accessibility level of type given in the
25688         allocator's expression or subtype indication is not statically deeper
25689         than the level of the allocator's access type.
25690         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
25691         name in a discriminant constraint of a record component.
25692         (Resolve_Explicit_Dereference): Do not check whether the type is
25693         incomplete when the dereference is a use of an access discriminant in
25694         an initialization procedure.
25695         (Resolve_Type_Conversion): Handle conversions to abstract interface
25696         types.
25697         (Valid_Tagged_Conversion): The conversion of a tagged type to an
25698         abstract interface type is always valid.
25699         (Valid_Conversion): Modified to give support to abstract interface types
25700         (Resolve_Actuals): Enable full error reporting on view conversions
25701         between unrelated by_reference array types.
25702         The rule for view conversions of arrays with aliased components is
25703         weakened in Ada 2005.
25704         Call to obsolescent subprogram is now considered to be a violation of
25705         pragma Restrictions (No_Obsolescent_Features).
25706         (Check_Direct_Boolean_Operator): If the boolean operation has been
25707         constant-folded, there is nothing to check.
25708         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
25709         check on possible violation of restriction No_Direct_Boolean_Operators
25710         until after expansion of operands, to prevent spurious errors when
25711         operation is constant-folded.
25712
25713         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
25714         Has_Compatible_Type): Modified to give support to abstract interface
25715         types.
25716         (Interface_Present_In_Ancestor): New function to theck if some ancestor
25717         of a given type implements a given interface
25718
25719         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
25720         prefix is a parameterless function that returns an access_to_procedure.
25721         (Transform_Object_Operation): Handle properly function calls of the
25722         form Obj.Op (X), which prior to analysis appear as indexed components.
25723         (Analyze_One_Call): Complete the error notification to help new Ada
25724         2005 users.
25725         (Analyze_Allocator): For an allocator without an initial value, where
25726         the designated type has a constrained partial view, a discriminant
25727         constraint is illegal.
25728
25729 2005-06-14  Robert Dewar  <dewar@adacore.com>
25730
25731         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
25732         do with treatment of Set_Col when positioned at end of line character.
25733
25734 2005-06-14  Robert Dewar  <dewar@adacore.com>
25735
25736         * atree.adb: (Elist*): Protect against uninitialized field
25737
25738 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
25739
25740         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
25741         for an attribute reference that returns an access type.
25742         (Apply_Discriminant_Check): No need for check if (designated) type has
25743         constrained partial view.
25744
25745         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
25746         both bound checks, rather than a conjunction.
25747         (Insert_Valid_Check): If the expression is an actual that is an indexed
25748         component of a bit-packed array, force expansion of the packed element
25749         reference, because it is specifically inhibited elsewhere.
25750
25751 2005-06-14  Vincent Celier  <celier@adacore.com>
25752
25753         * clean.adb (Clean_Project): Correctly delete executable specified as
25754         absolute path names.
25755
25756         * make.adb (Gnatmake): Allow relative executable path names with
25757         directory information even when project files are used.
25758         (Change_To_Object_Directory): Fail gracefully when unable to change
25759         current working directory to object directory of a project.
25760         (Gnatmake): Remove exception handler that could no longer be exercized
25761         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
25762         may be deallocated by Normalize_Arguments.
25763         (Collect_Arguments): Eliminate empty arguments
25764
25765         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
25766         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
25767         (Check_Project): Return False when Project is No_Project. Return True
25768         when All_Projects is True.
25769         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
25770         All_Projects to True.
25771         Minor reformatting
25772
25773 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
25774             Javier Miranda  <miranda@adacore.com>
25775             Thomas Quinot  <quinot@adacore.com>
25776             Robert Dewar  <dewar@adacore.com>
25777             Hristian Kirtchev  <kirtchev@adacore.com>
25778             Gary Dismukes  <dismukes@adacore.com>
25779
25780         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
25781         anonymous access types, to indicate that the accessibility level of
25782         the type is determined by that of the enclosing declaration.
25783         (Has_Persistent_BSS): New flag
25784         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
25785         of this attribute with functions.
25786         (Is_Primitive_Wrapper): Remove the barrier.
25787         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
25788         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
25789         New subprograms.
25790         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
25791         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
25792         New subprograms.
25793         (Is_Pure_Unit_Access_Type): New flag
25794         (Abstract_Interfaces): Complete the assertion to cover all usages.
25795         (Set_Is_Interface): Complete the assertion to cover all usages.
25796         (Is_Primitive_Wrapper): New attribute.
25797         (Is_Obsolescent): Now applies to all entities (though it is only set
25798         for subprograms currently)
25799         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
25800         which solves various problems concerning access subtypes.
25801         (Has_Persistent_BSS): New flag
25802         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
25803         Remove these subprograms because this attribute is currently
25804         not used.
25805         New entity flags:
25806         Has_Specified_Stream_Input (Flag190)
25807         Has_Specified_Stream_Output (Flag191)
25808         Has_Specified_Stream_Read (Flag192)
25809         Has_Specified_Stream_Write (Flag193)
25810         Present in all type and subtype entities. Set for a given view if the
25811         corresponding stream-oriented attribute has been defined by an
25812         attribute definition clause. When such a clause occurs, a TSS is set
25813         on the underlying full view; the flags are used to track visibility of
25814         the attribute definition clause for partial or incomplete views.
25815         (Is_Pure_Unit_Access_Type): New flag
25816         Clarify use of Is_Internal.
25817         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
25818         internally generated to wrap the invocation of tasks and protected
25819         types that implement interfaces.
25820         (Implementation_Base_Type): Documentation correction
25821         (Is_Obsolescent): Now applies to all entities (though it is only set
25822         for subprograms currently)
25823         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
25824         which solves various problems concerning access subtypes.
25825
25826         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
25827         for examined parameters. Identify unequal parameter list lengths as
25828         non-conformant parameters.
25829         (Overriding_Possible): Do not check for "All" qualifier in declaration
25830         of controlling access parameter, following prescription of AI-404.
25831         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
25832         that build the procedure body that wraps an entry invocation
25833         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
25834         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
25835         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
25836         give support to abstract interface types
25837
25838         * freeze.adb (Freeze_Entity): Issue error message if
25839         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
25840         type has no storage pool (Ada 2005) AI-366.
25841         Also modified to give support to abstract interface types
25842         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
25843         Inline_Always pragma.
25844
25845         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
25846         now begin an entry declaration.
25847         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
25848         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
25849         a subprogram declaration preceded by an overriding indicator.
25850         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
25851         declarations or subprogram declarations preceded by reserved words
25852         "not" or "overriding".
25853         (P_Entry_Declaration): Update comment. Parse and check overriding
25854         indicator, set semantic flags of entry declarations.
25855         (P_Task): New error message in case of private applied
25856         to a task type declaration.
25857         (P_Protected): New error message in case of private applied
25858         to a task type declaration.
25859
25860         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
25861         in which the full view of a type implementing an interface is a
25862         concurrent type.
25863         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
25864         Declare_Inherited_Private_Subprograms): If an explicit operation
25865         overrides an operation that is inherited in the private part, mark the
25866         explicit one as overriding, to enable overriding indicator checks.
25867         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
25868         full view to partial view, to simplify handling in back-end.
25869
25870         * sprint.adb: Print interface lists where needed: derived types,
25871         protected types, task types.
25872         output "is null" for null procedures. Part of implementation of
25873
25874         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
25875         relaxation of rules for access types in pure, shared passive partitions.
25876
25877         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
25878         first read discriminants into temporary objects, performing checks on
25879         the read values, then possibly performing discriminant checks on the
25880         actual (if it is constrained), and only finally reading the components
25881         into a constrained temporary object.
25882         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
25883         case of reading discriminants of a mutable record type to recognize
25884         the new form of the code generated by
25885         Build_Mutable_Record_Read_Procedure.
25886
25887         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
25888         of a simple call to Make_TSS_Name.
25889         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
25890         buffer, in order for Is_TSS to work correctly on local TSS names.
25891
25892         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
25893         Is_Local_Anonymous_Access to check legaliy of attributes in the
25894         context of  access components and stand-alone access objects.
25895         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
25896         treated as available for a limited private type if there is an
25897         attribute_definition_clause that applies to its full view, but not in
25898         other cases where the attribute is available for the full view
25899         (specifically, the sole fact that the full view is non-limited does not
25900         make the attribute available for the partial view).
25901         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
25902         non-overloaded intrinsic subprogram.
25903         (Check_Stream_Attribute): Reject an attribute reference for an
25904         unavailable stream attribute even if the prefix is not a limited type
25905         (case of a 'Input attribute reference for an abstract, non-classwide
25906         type)
25907         (Stream_Attribute_Available): New function to determine whether a stream
25908         attribute is available at a place.
25909         (Check_Attribute): Use Stream_Attribute_Available instead of just
25910         testing for TSS presence on the implementation base type.
25911         (Analyze_Attribute): Modified to give support to task interfaces.
25912         (Analyze_Access_Attribute): Add error check for use of an Access (or
25913         Unrestricted_Access) attribute with a subprogram marked as
25914         Inline_Always.
25915         (Analyze_Attribute, case Attribute_Address): Add error check for use of
25916         an Address attribute with a subprogram marked as Inline_Always.
25917         Update Eval_Attribute to handle new value of Width from AI-395
25918
25919         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
25920         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
25921         Factor common code across the stream-oriented attribute circcuits into
25922         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
25923         processing is functionally identical to the previous duplicated one,
25924         except that an expression that denotes an abstract subprogram will now
25925         be rejected, as mandated by AI-195 item 5.
25926
25927         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
25928         Is_Local_Anonymous_Access to apply accessibility checks to access
25929         components and stand-alone access objects.
25930         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
25931         elsewhere.
25932         (Is_Potentially_Persistent_Type): New function
25933         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
25934         a heap-object whose type has a constrained partial view, the object is
25935         unconstrained and the component may depend on a discriminant, making its
25936         renaming illegal.
25937
25938         * sinfo.ads, sinfo.adb
25939         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
25940         (Must_Override): Flag applicable to N_Entry_Declaration.
25941         Indicate that interface_list can appear in single task and single
25942         protected declarations.
25943         Replace Is_Overriding and Not_Overriding with Must_Override and
25944         Must_Not_Override, to better express intent of AI.
25945         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
25946         of an overriding indicator in a subprogram or instance.
25947         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
25948         Add the overriding indicator [[not] overriding] construct to the
25949         following grammar productions:
25950          ENTRY_DECLARATION
25951          GENERIC_INSTANTIATION
25952          SUBPROGRAM_SPECIFICATION
25953
25954         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
25955         can start with an overriding indicator.
25956
25957         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
25958         flags accordingly on subrogram specifications or instances.
25959
25960         * sem_ch8.adb:
25961         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
25962         overriding_indicator, if present, is consistent with status of spec.
25963         Improve error message for null-excluding checks on controlling access
25964         parameters.
25965         (Check_In_Previous_With_Clause): Protect the frontend against
25966         previously reported critical errors in the context clauses.
25967         Save and restore Ada_Version_Explicit, for implementation of AI-362
25968         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
25969         operation verify that controlling formals of the renamed entity that
25970         are access parameters are explicitly non-null.
25971         (Find_Expanded_Name): Improve error message when prefix is an illegal
25972         reference to a private child unit.
25973
25974         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
25975         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
25976         Rewrite to correspond to new wide character names in AI-395
25977
25978         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
25979         default procedures.
25980
25981 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
25982             Robert Dewar  <dewar@adacore.com>
25983
25984         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
25985         code, not on the bodies of predefined operations, to cut down on
25986         spurious noise.
25987
25988 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
25989
25990         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
25991         be expanded in place. The size computation does not require a
25992         subtraction, which would raise an exception on a compiler built with
25993         assertions when the upper bound is Integer'first.
25994         (Flatten): For an array of composite components, take into account the
25995         size of the components to determine whether it is safe to expand the
25996         array into a purely positional representation.
25997
25998 2005-06-14  Thomas Quinot  <quinot@adacore.com>
25999
26000         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
26001         denoting a formal parameter into account.
26002
26003 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26004
26005         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
26006         the entry_call alternative of a conditional entry call, wrap the
26007         conditional entry call itself.
26008
26009 2005-06-14  Nicolas Setton  <setton@adacore.com>
26010             Ed Schonberg  <schonberg@adacore.com>
26011
26012         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
26013         the "simple_choice" member in a variant record, in accordance with the
26014         description in the package spec: the information output for a constant
26015         should be "S number", not "SS number".
26016         (Get_Encoded_Name): Return at once if not generating code. Avoids name
26017         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
26018
26019 2005-06-14  Thomas Quinot  <quinot@adacore.com>
26020
26021         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
26022         RACW without any primitives, do not generate the if statement for
26023         dispatching by name in the PolyORB/DSA case, as it would be malformed
26024         (it would have an Elsif_Parts list that is not No_List, but with a
26025         length of 0).
26026
26027 2005-06-14  Robert Dewar  <dewar@adacore.com>
26028
26029         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
26030
26031 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
26032
26033         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
26034         can determine whether pragma Suppress_Exception_Locations is in effect.
26035
26036         * utils2.c (build_call_raise): Do not pass the file name to the
26037         exception handler if pragma Suppress_Exception_Locations is in effect.
26038         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
26039
26040 2005-06-14  Emmanuel Briot  <briot@adacore.com>
26041
26042         * g-debpoo.adb (Deallocate, Dereference): Improve output.
26043
26044 2005-06-14  Nicolas Roche  <roche@adacore.com>
26045
26046         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
26047         to ""
26048         (Next_Level): Fix minor bug in handling of ../dir case
26049         (Read): Add dir separator to Directory name so that "" is understood as
26050          "/"
26051
26052 2005-06-14  Pascal Obry  <obry@adacore.com>
26053
26054         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
26055         releasing the items.
26056
26057 2005-06-14  Vincent Celier  <celier@adacore.com>
26058             Cyrille Comar  <comar@adacore.com>
26059
26060         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
26061         with output file descriptor and with output file name.
26062         (Dup, Dup2): Now global procedures as they are used by two subprograms
26063         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
26064
26065 2005-06-14  Thomas Quinot  <quinot@adacore.com>
26066
26067         PR ada/6717
26068         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
26069         broadcast address.
26070         (Create_Selector): Bind listening socket used to create the signalling
26071         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
26072         Set listen backlog to 1 to ensure that we detect socket theft by a
26073         failure of our own connect(2) call.
26074         (Check_Selector): Improve documentation of the selector mechanism.
26075         (Broadcast_Inet_Addr): New constant.
26076
26077 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
26078
26079         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
26080         type which turns out to be an incomplete and incorrect fix.
26081         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
26082         of the type is declared in a record (for determination of insertion
26083         type).
26084         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
26085         a private type and ensure that the primary entity is used for the type
26086         of the newly created function's V formal by taking the Etype of the
26087         view.
26088
26089 2005-06-14  Javier Miranda  <miranda@adacore.com>
26090             Jose Ruiz  <ruiz@adacore.com>
26091             Robert Dewar  <dewar@adacore.com>
26092             Ed Schonberg  <schonberg@adacore.com>
26093
26094         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
26095         that indicates if we are parsing a compilation unit found in a
26096         limited-with clause.
26097         It is use to avoid the circularity check.
26098
26099         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
26100         we are parsing a compilation unit found in a limited-with clause. This
26101         is use to avoid the circularity check.
26102
26103         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
26104         unit as a consequence of parsing a limited-with clause. This is used
26105         to avoid the circularity check.
26106
26107         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
26108         (Analyze_Context): Limited-with clauses are now allowed
26109         in more compilation units.
26110         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
26111         againts previously reported critical errors in context clauses
26112         (Install_Limited_Withed_Unit): Code cleanup plus static detection
26113         of two further errors: renamed subprograms and renamed packages
26114         are not allowed in limited with clauses.
26115         (Install_Siblings): Do not install private_with_clauses on the package
26116         declaration for a non-private child unit.
26117         (Re_Install_Parents): When a parent of the subunit is reinstalled,
26118         reset visibility of child units properly.
26119         (Install_Withed_Unit): When a child unit appears in a with_clause of its
26120         parent, it is immediately visible.
26121
26122 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26123             Emmanuel Briot  <briot@adacore.com>
26124
26125         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
26126         declared within an inlined body as referenced, to prevent spurious
26127         warnings.
26128         (Output_One_Ref): If an entity renames an array component, indicate in
26129         the ALI file that this aliases (renames) the array. Capture as well
26130         function renamings that rename predefined operations.
26131         Add information about generic parent for package and subprogram
26132         instances.
26133         (Get_Type_Reference): For a subtype that is the renaming of an actual in
26134         an instantiation, use the first_subtype to ensure that we don't generate
26135         cross-reference information for internal types.
26136         For objects and parameters of a generic private type, retain the '*'
26137         indicator to distinguish such an entity from its type.
26138
26139         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
26140         to store information about instantiated entities.
26141
26142         * ali.adb (Scan_ALI): Add support for parsing the reference to the
26143         generic parent
26144
26145         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
26146         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
26147         information.
26148
26149 2005-06-10  Doug Rupp  <rupp@adacore.com>
26150             Arnaud Charlet  <charlet@adacore.com>
26151             Olivier Hainque  <hainque@adacore.com>
26152             Jose Ruiz  <ruiz@adacore.com>
26153
26154         * Make-lang.in: Add initialize.o when needed.
26155         Remove obsolete references to RT_FLAGS.
26156         Add missing dependencies for sdefault.o
26157
26158         * initialize.c: New file.
26159
26160         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
26161         [VMS] cond_signal_table: Fix problem in declaration.
26162         [VMS] __gnat_error_handler: rewrite.
26163         Move all __gnat_initialize() routines to initialize.c
26164         Specialize the former "hpux" section to "hppa hpux", as this is what the
26165         section really is here for and we now have other hpux ports that need
26166         different contents.
26167         (__gnat_adjust_context_for_raise) i386-linux: First version of this
26168         function for this target. Adjust PC by one in the machine context. This
26169         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
26170         it is more reliable to do that in the signal handler itself.
26171         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
26172         flags, so that the handler is passed the context structure to adjust
26173         prior to the raise.
26174         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
26175         SA_SIGINFO sigaction should look like. Call
26176         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
26177         Machine_State_Operations stuff.
26178         Add conditional code so that the x86_64 is also supported.
26179
26180 2005-06-14  Pascal Obry  <obry@adacore.com>
26181
26182         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
26183         the library name.
26184
26185 2005-06-14  Robert Dewar  <dewar@adacore.com>
26186
26187         * opt.ads, opt.adb: New flags for persistent_bss mode
26188         Add Ada_Version_Explicit, for implementation of AI-362
26189         Add Assertions_Enabled_Config and associated handling
26190         Needed since setting can be changed with Assertion_Policy pragma
26191         Add new flag Warn_On_Ada_2005_Compatibility
26192
26193         * switch-c.adb: Recognize -gnatwy/Y
26194         Set Ada_Version_Explicit, for implementation of AI-362
26195         The -gnatg switch now includes -gnatyu
26196
26197         * usage.adb: Add -gnatwy/Y
26198         Remove wrong asterisk on -gnatwX line
26199         Add line for -gnatyu switch
26200
26201 2005-06-14  Vincent Celier  <celier@adacore.com>
26202
26203         * osint.adb (Add_Default_Search_Dirs): Put source and object
26204         directories of project files before directories coming from
26205         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
26206
26207 2005-06-14  Robert Dewar  <dewar@adacore.com>
26208
26209         PR ada/15613
26210         * par-ch2.adb (Scan_Pragma_Argument): New procedure
26211         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
26212
26213 2005-06-14  Vincent Celier  <celier@adacore.com>
26214
26215         * prep.adb (Preprocess): Ignore error when scanning the first token of
26216         a line.
26217
26218 2005-06-14  Vincent Celier  <celier@adacore.com>
26219
26220         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
26221         (Check_Stand_Alone_Library): If the specified reference symbol file does
26222         not exist, only issue a warning when the symbol policy is not
26223         Controlled. And, when symbol policy is Compliant, set the symbol
26224         policy to Autonomous.
26225
26226 2005-06-14  Vincent Celier  <celier@adacore.com>
26227
26228         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
26229         when the project file in a with clause is not the last one, that is the
26230         project file name is followed by a comma.
26231         * prj-pp.adb: (First_With_In_List): New Boolean global variable
26232         (Print): Issue list of project files separated by commas in with clauses
26233         according to the values returned by Is_Not_Last_In_List.
26234         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
26235         (Set_Is_Not_Last_In_List): New procedure
26236
26237 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
26238
26239         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
26240
26241 2005-06-14  Robert Dewar  <dewar@adacore.com>
26242
26243         * scng.adb: Add call to new Check_EOF routine
26244         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
26245         Add some comments regarding wide character handling
26246
26247         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
26248
26249         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
26250
26251         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
26252         characters are now considered graphic characters and hence yield false
26253         in this call.
26254
26255         * nmake.adt: Modify header so that xnmake does not generate output
26256         files with multiple blank lines.
26257
26258         * treeprs.adt: Remove a blank line so that output from xtreeprs does
26259         not have an extra blank line
26260
26261 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
26262
26263         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
26264         expression when the component type is an anonymous access type to
26265         ensure that appropriate accessibility checks are done.
26266
26267         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
26268         expression of an assignment when the target object is of an anonymous
26269         access type. This ensures that required accessibility checks are done.
26270         (One_Bound): Move the check for type Universal_Integer to
26271         Process_Bounds.
26272         (Process_Bounds): Check whether the type of the preanalyzed range is
26273         Universal_Integer, and in that case set Typ to Integer_Type prior
26274         to setting the type of the original range and the calls to One_Bound.
26275
26276 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26277
26278         * sem_case.adb (Expand_Others_Choice): Improve warning.
26279
26280 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26281
26282         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
26283         constraint of full view if present, when other type is discriminated.
26284         (Eval_Relational_Op): Recognize tests of pointer values against Null,
26285         when the pointer is known to be non-null, and emit appropriate warning.
26286
26287 2005-06-14  Robert Dewar  <dewar@adacore.com>
26288             Ed Schonberg  <schonberg@adacore.com>
26289
26290         PR ada/10671
26291         * sem_prag.adb: Implement pragma Persistent_BSS
26292         Remove obsolete pragma Persistent_Data, Persistent_Object
26293         Set Ada_Version_Explicit, for implementation of AI-362
26294         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
26295         Add processing for pragma Pure_05 and Preelaborate_05
26296         Add processing for Assertion_Policy pragma
26297         Add pragma identifiers for Assert
26298         (Analyze_Pragma, case Assert): Check number of arguments
26299         (Process_Inline): Additional guard against an illegal program, where the
26300         argument of the pragma is undefined, and warnings on redundant
26301         constructs are enabled.
26302         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
26303         Ada_05 to this pragma, specifying that the pragma is only active in
26304         Ada_05 mode.
26305         (Check_Arg_Order): New procedure
26306         Add appropriate calls to this procedure throughout
26307         Also throughout, check entity name before doing any other checks
26308
26309         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
26310         Remove obsolete pragma Persistent_Data, Persistent_Object
26311         Add entries for pragma Pure_05 and Preelaborate_05
26312         Add entries for Assertion_Policy pragma and associated names
26313         Add some names for pragma argument processing
26314
26315         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
26316
26317 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26318
26319         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
26320         appears within a negation (either from source or as a rewriting of
26321         inequality) adjust text of warning accordingly.
26322
26323 2005-06-14  Thomas Quinot  <quinot@adacore.com>
26324
26325         * s-strxdr.adb: Follow AI95-00132
26326
26327 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
26328
26329         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
26330
26331 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
26332             Jose Ruiz  <ruiz@adacore.com>
26333
26334         * s-tposen.adb, s-tpobop.adb
26335         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
26336         the exception id.
26337         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
26338         there is no violation of the Max_Entry_Queue_Length restriction (if it
26339         has been set); Program_Error is raised otherwise.
26340         (Requeue_Call): Before requeuing the task on the target entry queue we
26341         check that there is no violation of the Max_Entry_Queue_Length
26342         restriction (if it has been set); Program_Error is raised otherwise.
26343
26344 2005-06-14  Robert Dewar  <dewar@adacore.com>
26345
26346         * styleg.adb: Fix several remaining problems in -gnatyu switch
26347         Blank line count not reset at start
26348         Scanning outside source buffer in some cases
26349         Confusing message for blanks at end of file
26350         Non-empty blank lines not recognized
26351
26352         * nmake.adt: Modify header so that xnmake does not generate output
26353         files with multiple blank lines.
26354
26355         * treeprs.adt: Remove a blank line so that output from xtreeprs does
26356         not have an extra blank line
26357
26358 2005-06-14  Sergey Rybin  <rybin@adacore.com>
26359
26360         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
26361
26362 2005-06-14  Doug Rupp  <rupp@adacore.com>
26363             Vincent Celier  <celier@adacore.com>
26364
26365         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
26366         Update copyright.
26367
26368         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
26369         Remove "Library" command.
26370         Change keyword for style check -gnatyd from NOCRLF to
26371         DOS_LINE_ENDINGS.
26372         Remove useless second style check keyword NONE
26373         Remove help documentation for inexistent style check keyword
26374         RM_COLUMN_LAYOUT.
26375         Add help documentation for style check keywords DOS_LINE_ENDINGS,
26376         UNNECESSARY_BLANK_LINES and XTRA_PARENS
26377         Add UNNECESSARY_BLANK_LINES for -gnatyu
26378         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
26379
26380         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
26381
26382 2005-06-14  Vincent Celier  <celier@adacore.com>
26383
26384         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
26385         gprmake was invoked with -d.
26386         (Compile_Sources): If -d was used, output the "completed ..." message
26387         for each compilation.
26388         (Scan_Arg): Recognize new switch -d
26389         When -c and at least one main is specified, set
26390         Unique_Compile to True to guarantee that no other sources will be
26391         compiled.
26392
26393 2005-06-14  Matthew Heaney  <heaney@adacore.com>
26394
26395         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
26396         * a-swuwha.ads, a-swuwha.adb: New files
26397
26398         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
26399         * a-szuzha.ads, a-szuzha.adb: New files.
26400
26401         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
26402         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
26403         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
26404         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
26405         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
26406         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
26407         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
26408         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
26409         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
26410         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
26411         Ada 2005 RM.
26412
26413 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
26414             Olivier Hainque  <hainque@adacore.com>
26415             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26416             Pascal Obry  <obry@adacore.com>
26417
26418         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
26419
26420         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
26421         making a temporary around a procedure call because of non-addressable
26422         actual parameter.
26423         (process_freeze_entity): If entity is a private type, capture size
26424         information that may have been computed for the full view.
26425         (tree_transform, case N_Allocator): If have initializing expression,
26426         check type for Has_Constrained_Partial_View and pass that to
26427         build_allocator.
26428         (tree_transform, case N_Return_Statement): Pass extra arg to
26429         build_allocator.
26430
26431         * decl.c (annotate_value): Remove early return if -gnatR is not
26432         specified.
26433         (gnat_to_gnu_field): Don't make a packable type for a component clause
26434         if the position is byte aligned, the field is aliased, and the clause
26435         size isn't a multiple of the packable alignment. It serves no useful
26436         purpose packing-wise and would be rejected later on.
26437         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
26438
26439         PR ada/20515
26440         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
26441         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
26442         instead.
26443         (create_concat_name): Idem.
26444
26445 2005-06-10  Robert Dewar  <dewar@adacore.com>
26446             Eric Botcazou  <ebotcazou@adacore.com>
26447             Ben Brosgol  <brosgol@adacore.com>
26448             Cyrille Comar  <comar@adacore.com>
26449             Sergey Rybin  <rybin@adacore.com>
26450             Pascal Obry  <obry@adacore.com>
26451
26452         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
26453         Document second argument (Ada_05) of pragma Obsolescent
26454         Add note that call to subprogram marked with pragma Obsolescent
26455         is now considered to be a violation of program Restrictions
26456         (No_Obsolescent_Features).
26457         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
26458         that only machine-dependent attributes are supported.
26459
26460         * gnat_ugn.texi:
26461         Commented out menu lines and empty section for gnatclean examples
26462         Document -gnatwy/Y
26463         Fix some over long lines
26464         Clarify and enhance documentation of ADA_PROJECT_PATH.
26465         Rework section 2.11.2(3) about linking with a non-GNU compiler.
26466         Mention new switch -fcallgraph-info.
26467         Mention new switch -fstack-usage.
26468         For gnatpp, replace '-notab' with '-N' and add this option to Index
26469         Corrected VMS example.
26470         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
26471         Minor reformatting
26472         Add documentation for -gnatyu switch (unnecessary blank lines)
26473         Document new switch -U for GNAT PRETTY and GNAT METRIC
26474         Add note about Stdcall being handled as C convention on non Windows OS.
26475         Remove some junk typo in description of gnatbind -S switch
26476         Remove reference to Extensions_Allowed pragma
26477         Document the new order of the directories to be searched (source and
26478         object directories of project files before directories in ADA_*_PATH
26479         environment variables.
26480
26481         * g-trasym.ads: Document that IRIX is supported
26482
26483 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
26484
26485         * Makefile.in: Add initialize.o when needed.
26486         Adapt to new VMS package body Symbols and subunits
26487         No specialized version of a-sytaco is needed for VxWorks.
26488
26489         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
26490         * a-zchara.ads, a-widcha.ads: New files.
26491
26492         * system-hpux-ia64.ads: New file.
26493
26494         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
26495         is imported from the VxWorks kernel.
26496
26497 2005-06-14  Robert Dewar  <dewar@adacore.com>
26498
26499         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
26500         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
26501         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
26502         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
26503         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
26504         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
26505         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
26506         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
26507         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
26508         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
26509         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
26510         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
26511
26512 2005-06-14  Thomas Quinot  <quinot@adacore.com>
26513
26514         * xeinfo.adb: Fix typo in comment
26515
26516 2005-06-14  Javier Miranda  <miranda@adacore.com>
26517
26518         * repinfo.ads: Fix typo in comment
26519
26520 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
26521
26522         * s-finimp.adb (Parent_Tag): Delete this imported function (function
26523         Parent_Tag is now in the visible part of Ada.Tags).
26524         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
26525         using imported function.
26526
26527 2005-06-14  Bernard Banner  <banner@adacore.com>
26528
26529         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
26530         also apply for handling support for VxSim 653.
26531
26532 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
26533
26534         * xsnames.adb: Add automatic generation of snames.h.
26535
26536 2005-06-14  Thomas Quinot  <quinot@adacore.com>
26537
26538         * gen-soccon.c: Add IP_MULTICAST_IF constant
26539         Minor reformatting and adjustments to prevent warnings.
26540
26541 2005-06-14  Pascal Obry  <obry@adacore.com>
26542
26543         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
26544
26545 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
26546
26547         * trans.c (gnat_gimplify_expr): Call
26548         recompute_tree_invarant_for_addr_expr when we change
26549         the operand of the ADDR_EXPR.
26550
26551 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26552
26553         * misc.c: Don't include errors.h.
26554
26555 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26556
26557         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
26558
26559 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
26560
26561         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
26562         comment typos.
26563         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
26564
26565 2005-05-16  Nathanael Nerode  <neroden@gcc.gnu.org>
26566
26567         PR ada/20270
26568         * Makefile.in: Make TGT_LIB behave correctly.
26569
26570 2005-04-23  DJ Delorie  <dj@redhat.com>
26571
26572         * misc.c: Adjust warning() callers.
26573
26574 2005-04-16  Laurent Guerby  <laurent@guerby.net>
26575
26576         PR ada/18847
26577         * a-nudira.adb (Value): Check for valid string.
26578         * a-nuflra.adb (Value): Likewise.
26579
26580 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
26581
26582         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
26583
26584 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
26585
26586         * adaint.c, init.c, tracebak.c: Fix comment typos.
26587         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
26588
26589 2005-04-07  Laurent Guerby  <laurent@guerby.net>
26590             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26591
26592         * Makefile.in: Add make ifeq define for hppa linux tasking support.
26593         * system-hpux.ads: Define Signed_Zeros to be True.
26594         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
26595
26596 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
26597
26598         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
26599         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
26600         typos.
26601
26602 2005-03-30  Tom Tromey  <tromey@redhat.com>
26603
26604         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
26605
26606 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
26607
26608         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
26609
26610 2005-03-29  Robert Dewar  <dewar@adacore.com>
26611
26612         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
26613         fixed-point expression has value that is not a multiple of the Small
26614         value.
26615
26616         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
26617
26618         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
26619         nanoseconds.
26620
26621         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
26622
26623 2005-03-29  Vincent Celier  <celier@adacore.com>
26624
26625         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
26626         (Build_Dynamic_Library.Version_String): Return the empty string when
26627         Lib_Version is empty or when the symbol policy is not Autonomous.
26628
26629         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
26630         a symbol is not in the reference symbol file, increase the Major ID
26631         and set the Minor ID to 0.
26632         Use gsmatch=lequal instead of gsmatch=equal
26633
26634 2005-03-29  Doug Rupp  <rupp@adacore.com>
26635
26636         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
26637         name and translate.
26638
26639 2005-03-29  Javier Miranda  <miranda@adacore.com>
26640
26641         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
26642         (Inherit_DT): The first formal has been redefined as a Tag.
26643         This allows us the removal of the subprogram Get_TSD.
26644         (TSD): Replace the call to Get_TSD by the actual code.
26645
26646         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
26647         (Make_DT): Upgrade the call to Inherit_TSD according to the
26648         new interface: the first formal is now a Tag.
26649
26650         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
26651         redefined as a Tag.
26652         This change allows us to remove the subprogram Get_TSD.
26653         (CPP_Get_TSD): Subprogram removed.
26654         (TSD): Replace the call to CPP_Get_TSD by the actual code.
26655
26656         * rtsfind.ads: Remove support to call the run-time
26657         subprogram Get_TSD
26658
26659 2005-03-29  Robert Dewar  <dewar@adacore.com>
26660
26661         * errutil.adb, errout.adb:
26662         Minor comment updates on Line_Terminator references
26663
26664         * par-ch10.adb: Add ??? comment about line terminator
26665
26666         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
26667         (check dos line terminator).
26668         (Check_Line_Max_Length): New procedure, split off from the existing
26669         Check_Line_Terminator routine. Separating this out allows -gnatyf to
26670         be properly recognized.
26671
26672         * styleg.adb: Add ??? comment for line terminator reference
26673
26674         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
26675         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
26676
26677         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
26678         (check dos line terminator).
26679         (Check_Line_Max_Length): New procedure, split off from the existing
26680         Check_Line_Terminator routine. Separating this out allows -gnatyf to
26681         be properly recognized.
26682
26683         * stylesw.ads, stylesw.adb:
26684         Add handling for new -gnatyd switch (check dos line terminator)
26685
26686         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
26687         Recognize -gnatwb/-gnatwB switches
26688         Include Warn_On_Bad_Fixed_Value for -gnatg
26689
26690         * usage.adb:
26691         Add line for new -gnatyd switch (check dos line terminator)
26692
26693         * usage.adb: Add lines for -gnatwb/-gnatwB
26694
26695         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
26696
26697         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
26698
26699         * gnat_ugn.texi: Fix overlong lines
26700         Document new -gnatyd switch
26701         Document new -gnatwb/-gnatwB switches
26702
26703 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
26704
26705         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
26706         order to retrieve the component list of the type, before examining
26707         individual components.
26708
26709         * sem_type.adb (Covers): Types are compatible if one is the base type
26710         of the other, even though their base types might differ when private
26711         views are involved.
26712
26713 2005-03-29  Thomas Quinot  <quinot@adacore.com>
26714
26715         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
26716         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
26717         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
26718         analyzed if expansion is disabled (which could otherwise cause spurious
26719         error messages if expansion has been disabled due to previous
26720         (unrelated) errors).
26721
26722         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
26723         is disabled, the entity denoted by the argument is the access type
26724         itself, not an underlying record type, so there is no need to go back
26725         to the Corresponding_Remote_Type.
26726
26727 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
26728             Robert Dewar  <dewar@adacore.com>
26729
26730         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
26731         expand a call to an instance of
26732         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
26733         Constructor actual of the instance. A class-wide membership
26734         check is also generated, to ensure that the tag passed to the instance
26735         denotes a type in the class.
26736         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
26737         of Name_Generic_Dispatching_Constructor.
26738
26739         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
26740         05 unit for AI-260-02).
26741
26742         * a-tgdico.ads: New file.
26743
26744         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
26745         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
26746
26747         * snames.ads, snames.adb (Preset_Names): Add entry for
26748         Generic_Dispatching_Constructor.
26749
26750         PR ada/20300
26751         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
26752         character type cases.
26753         (Analyze_Subprogram_Renaming): Add special handling for
26754         the case of renaming of stream attributes when the renaming denotes a
26755         generic formal subprogram association for an abstract formal subprogram.
26756         Check that the attribute is a primitive stream attribute (and not
26757         a class-wide stream attribute) and then rewrite the attribute name
26758         as the name of the appropriate compiler-generated stream primitive.
26759
26760 2005-03-29  Robert Dewar  <dewar@adacore.com>
26761
26762         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
26763         recursive calls.
26764         (Is_Possibly_Unaligned_Object): Correct typo that
26765         resulted in inaccurate result for unaligned scalars within records.
26766
26767 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
26768
26769         * freeze.adb (Freeze_Record_Type): If the type of the component is an
26770         itype whose parent is controlled and not yet frozen, do not create a
26771         freeze node for the itype if expansion is disabled.
26772
26773 2005-03-29  Vincent Celier  <celier@adacore.com>
26774
26775         * make.adb (Gnatmake): Don't fail if the main project file is declared
26776         as having no Ada sources. Do not display message "no sources to
26777         compile" in quiet output.
26778
26779 2005-03-29  Doug Rupp  <rupp@adacore.com>
26780
26781         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
26782         extra tools.
26783
26784 2005-03-29  Robert Dewar  <dewar@adacore.com>
26785
26786         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
26787         child.
26788
26789 2005-03-29  Robert Dewar  <dewar@adacore.com>
26790
26791         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
26792         missing TYPE Improve the error message generated when compiling a
26793         limited interface in Ada83 or Ada95 mode.
26794
26795 2005-03-29  Robert Dewar  <dewar@adacore.com>
26796
26797         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
26798         rather than proceed ahead using a junk attribute name.
26799
26800 2005-03-29  Vincent Celier  <celier@adacore.com>
26801
26802         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
26803
26804         * prj-part.adb (Parse_Single_Project): Set the location of a project
26805         on its defining identifier, rather than on the reserved word "project".
26806
26807         * prj-proc.adb (Expression): Adapt to the fact that default of external
26808         references may be string expressions, not always literal strings.
26809         (Recursive_Process): Set Display_Name equal to Name
26810         when Location is No_Location, that is when there is no actual file.
26811         Get the Display_Name of the project from the source, when it is not a
26812         virtual project.
26813         (Process): Use the Display_Name in error messages
26814
26815         * prj-strt.adb (External_Reference): Allow default to be string
26816         expressions, not only literal strings.
26817
26818 2005-03-29  Vincent Celier  <celier@adacore.com>
26819
26820         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
26821         file and the reference symbol file to be the same file.
26822
26823 2005-03-29  Thomas Quinot  <quinot@adacore.com>
26824
26825         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
26826         forbid conversion of a local access-to-subprogram type to a remote one.
26827
26828         * sem_util.adb (Wrong_Type): For a record type that is the expanded
26829         equivalent type for a remote access-to-subprogram type, go back to the
26830         original RAS entity when displaying an error message, so the casing is
26831         the original source casing.
26832
26833 2005-03-29  Robert Dewar  <dewar@adacore.com>
26834
26835         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
26836         on param update.
26837
26838 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
26839
26840         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
26841         subtype if code is being pre-analyzed, to prevent un-expanded
26842         references to protected formals, among others.
26843         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
26844         interpretation that can be a call, include the result of the call as a
26845         possible interpretation of the dereference.
26846
26847         * sem_ch5.adb (Process_Bounds): Determine type of range by
26848         pre-analyzing a copy of the original range, and then analyze the range
26849         with the expected type.
26850
26851         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
26852         with an overloaded prefix where not all interpretations yield an
26853         access to subprogram, do not rewrite node as a call.
26854         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
26855         the node as a call once the context identifies the interpretation of
26856         the prefix whose call yields the context type.
26857         (Valid_Conversion): For the case of a conversion between
26858         local access-to-subprogram types, check subtype conformance using
26859         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
26860         detailed error message.
26861
26862 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
26863
26864         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
26865         indicator, indicate that the formal can never be null.
26866         (Process_Formals): If a formal has a non_null indicator, insert the
26867         resulting subtype immediately before the enclosing subprogram decl,
26868         and not at the beginning of the corresponding declarative part, to
26869         prevent access before elaboration (Ada2005).
26870
26871 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26872
26873         PR ada/19956
26874         * utils.c (finish_record_type): Use variable_size when setting sizes.
26875
26876 2005-03-29  Robert Dewar  <dewar@adacore.com>
26877
26878         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
26879         guarantee Unix style line terminators for the output files, even when
26880         running on windows.
26881
26882 2005-03-29  Robert Dewar  <dewar@adacore.com>
26883
26884         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
26885         buffer if an exception is raised.
26886
26887 2005-03-29  Ed Falis  <falis@adacore.com>
26888
26889         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
26890         VxWorks 653 1.4
26891
26892 2005-03-29  Robert Dewar  <dewar@adacore.com>
26893
26894         * sem_util.ads: Minor reformatting
26895         * gnat_rm.texi: Minor editing.
26896
26897 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
26898
26899         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
26900         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
26901
26902 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
26903
26904         * adaint.c (__gnat_portable_spawn): Adjust cast.
26905
26906 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
26907
26908         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
26909
26910 2005-03-17  Pascal Obry  <obry@adacore.com>
26911
26912         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
26913         used.
26914
26915         * expect.c (__gnat_waitpid): Moved here from adaint.c.
26916         Reimplement under Win32 using Win32 API.
26917
26918         (__gnat_kill) [Win32]: Properly close the process handle before leaving
26919         this routine.
26920
26921 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
26922
26923         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
26924         (DECL_RENAMED_OBJECT): New accessor macro.
26925         (SET_DECL_RENAMED_OBJECT): New setter macro.
26926
26927         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
26928         object in all cases.  Attach the renamed object to the VAR_DECL.
26929         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
26930         field is not prescribed.
26931
26932         * misc.c (gnat_handle_option): Handle -gnatO separately.
26933         (gnat_print_decl) <VAR_DECL>: New case.
26934         Print the DECL_RENAMED_OBJECT node.
26935
26936         * lang.opt:  Declare separate -gnatO option.
26937
26938         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
26939         pointer, replace it with the renamed object.
26940         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
26941         pointer type if the source is not a fat pointer type whose underlying
26942         array has the same non-zero alias set as that of the destination array.
26943
26944 2005-03-17  Javier Miranda  <miranda@adacore.com>
26945
26946         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
26947         (Get_Inheritance_Depth): Removed.
26948         (Set_Inheritance_Depth): Removed.
26949
26950         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
26951         subprogram Get_Expanded_Name because it is not referenced by the
26952         frontend.
26953
26954         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
26955         (CPP_Get_Inheritance_Depth): Removed.
26956         (CPP_Set_Inheritance_Depth): Removed.
26957
26958         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
26959
26960 2005-03-17  Robert Dewar  <dewar@adacore.com>
26961
26962         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
26963         3, since we now expect GCC 3 to do all the work.
26964
26965 2005-03-17  Javier Miranda  <miranda@adacore.com>
26966
26967         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
26968         of one barrier to avoid wrong usage of this attribute.
26969
26970         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
26971         First_Private_Entity.
26972
26973         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
26974         the subprogram against wrong usage.
26975         Adapt the code to traverse the entities in the
26976         scope of a record_type because in addition to its usage regarding
26977         packages, this subprogram is also called by Expand_N_Freeze_Entity
26978         to install the visible declarations of the enclosing scope of a
26979         record_type_with_private to establish the proper visibility before
26980         freezing the entity and related subprograms.
26981
26982 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
26983
26984         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
26985         entry formals.
26986
26987 2005-03-17  Thomas Quinot  <quinot@adacore.com>
26988
26989         * exp_ch3.adb (Check_Attr): New subprogram.
26990         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
26991         into a new Check_Attr subprogram, in order to provide a more
26992         explanatory error message (including the name of the missing attribute).
26993         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
26994         subprogram determines whether a default implementation exists for a
26995         given stream attribute.
26996         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
26997         Determine whether to generate a default implementation for each stream
26998         attribute separately, as this depends on the specific attribute.
26999
27000         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
27001         limited extension where a stream attribute is missing for a limited
27002         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
27003         generate a bogus reference to the missing attribute to prevent
27004         cascaded errors. Instead, generate a null statement.
27005
27006         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
27007         available for a limited type if it has been specified for an ancestor
27008         of the type.
27009
27010 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
27011
27012         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
27013         entity is an operator.
27014
27015 2005-03-17  Thomas Quinot  <quinot@adacore.com>
27016
27017         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
27018         spec, to make this predicate available to other units.
27019
27020         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
27021         reimplementing it.
27022
27023         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
27024         when no distribution runtime library is available.
27025
27026         * sem_res.adb, sem_dist.adb: Disable expansion of remote
27027         access-to-subprogram types when no distribution runtime library is
27028         available.
27029         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
27030         predicate available to other units.
27031
27032         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
27033         spec, to make this predicate available to other units.
27034
27035 2005-03-17  Vincent Celier  <celier@adacore.com>
27036
27037         * make.adb (Insert_Project_Sources): Make sure the Q is always
27038         initialized.
27039
27040         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
27041         the default for the tree, not the global default naming.
27042
27043         * prj-proc.adb (Recursive_Process): No need to put the default naming
27044         in the project data, it's already there.
27045
27046 2005-03-17  Doug Rupp  <rupp@adacore.com>
27047
27048         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
27049
27050         * 5xcrtl.ads: Renamed to...
27051         * s-crtl-vms64.ads: ...this new file
27052
27053 2005-03-17  Robert Dewar  <dewar@adacore.com>
27054
27055         PR ada/19519
27056         * namet.adb (Copy_One_Character): Set proper wide character encoding
27057         for upper half character if we have upper half encoding.
27058
27059 2005-03-17  Robert Dewar  <dewar@adacore.com>
27060
27061         * par.adb (Par): Improved msg for attempt to recompile predefined unit
27062
27063 2005-03-17  Thomas Quinot  <quinot@adacore.com>
27064
27065         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
27066         tagged limited type, the TSS is a newly built renaming declaration:
27067         insert it using Set_TSS, not Copy_TSS.
27068
27069 2005-03-17  Javier Miranda  <miranda@adacore.com>
27070
27071         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
27072         Try_Object_Operation): Analyze the object that is accessible
27073         through the prefix of the subprogram call before we apply
27074         the transformation of the object-operation notation.
27075
27076 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
27077
27078         * s-taprob.adb (Initialize_Protection): Initialize the protected
27079         object's owner to Null_Task.
27080         (Lock): If pragma Detect_Blocking is in effect and the caller of this
27081         procedure is already the protected object's owner then Program_Error
27082         is raised. In addition the protected object's owner is updated.
27083         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
27084         of this procedure is already the protected object's owner then
27085         Program_Error is raised.
27086         In addition the protected object's owner is updated.
27087         (Unlock): Remove the ownership of the protected object.
27088
27089         * s-taprob.ads (Protection): Add the field Owner, used to store the
27090         protected object's owner.
27091         This component is needed for detecting one type of potentially blocking
27092         operations (external calls on a protected subprogram with the same
27093         target object as that of the protected action). Document the rest of
27094         the components.
27095
27096         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
27097         Initialize the protected object's owner to Null_Task.
27098         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
27099         caller of this procedure is already the protected object's owner then
27100         Program_Error is raised.
27101         Do not raise Program_Error when this procedure is called from a
27102         protected action.
27103         (Unlock_Entries): Remove the ownership of the protected object.
27104         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
27105         of this procedure is already the protected object's owner then
27106         Program_Error is raised.
27107         Do not raise Program_Error when this procedure is called from
27108         a protected action.
27109
27110         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
27111         used to store the protected object's owner.
27112
27113         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
27114         effect and this procedure (a potentially blocking operation) is called
27115         from whithin a protected action, Program_Error is raised.
27116         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
27117         and this procedure (a potentially blocking operation) is called from
27118         whithin a protected action, Program_Error is raised.
27119
27120 2005-03-17  Vincent Celier  <celier@adacore.com>
27121             Nicolas Setton  <setton@adacore.com>
27122
27123         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
27124         switch, not supported by the linker on Darwin. Add '_' before
27125         <library>init, as this character is added unconditionally by the
27126         compiler.
27127         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
27128         correct one ".dylib". This fixes detection of the archive files when
27129         building library projects.
27130
27131 2005-03-17  Vincent Celier  <celier@adacore.com>
27132
27133         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
27134         -gnat83, -gnat95 and -gnat05.
27135
27136 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
27137
27138         * gnat_ugn.texi: Document gnatmem restriction
27139
27140 2005-03-17  Thomas Quinot  <quinot@adacore.com>
27141
27142         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
27143         cleanup
27144
27145 2005-03-17  Robert Dewar  <dewar@adacore.com>
27146
27147         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
27148         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
27149         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
27150
27151         * casing.adb: Comment improvements
27152
27153 2005-03-17  Pascal Obry  <obry@adacore.com>
27154
27155         * g-expect.adb: Minor reformatting.
27156
27157 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
27158
27159         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
27160         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
27161         to dependencies.
27162
27163 2005-03-15  Vincent Celier  <celier@adacore.com>
27164
27165         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
27166         Add new parameter In_Tree to specify the project tree: needed
27167         by the project manager. Adapt to changes in project manager
27168         using new parameter In_Tree.
27169
27170 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
27171
27172         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
27173         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
27174         ada/bldtools to avoid make -jN failures.
27175
27176 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
27177
27178         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
27179         to NULL_TREE on entry.
27180
27181 2005-03-15  Robert Dewar  <dewar@adacore.com>
27182
27183         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
27184         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
27185         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
27186         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
27187         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
27188         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
27189         system-interix.ads, system-solaris-sparc.ads,
27190         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
27191         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
27192         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
27193         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
27194         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
27195         Compiler_System_Version to be False.
27196
27197         * opt.ads: Add new flag Opt.Address_Is_Private
27198
27199         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
27200         Add new parameter Compiler_System_Version to avoid checking for
27201         completeness of parameters when compiler is compiling itself.
27202         Allows old versions of GNAT to be compiled with new compiler.
27203
27204 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
27205
27206         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
27207         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
27208         calling thread.
27209         (Stack_Base_Available): New flag.
27210         (Get_Page_Size): New overloaded functions imported from C.
27211         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
27212         PROT_ON, PROT_OFF): New constants.
27213         (mprotect): New function imported from C.
27214         (pthread_teb_t): New record type.
27215
27216         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
27217         (Create_Task): Account for the Yellow Zone and the guard page.
27218
27219 2005-03-15  Vincent Celier  <celier@adacore.com>
27220
27221         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
27222         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
27223         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
27224         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
27225         Library_File_Name_For): Add new parameter In_Tree
27226         to specify the project tree: needed by the project manager.
27227         Adapt to changes in project manager using new parameter In_Tree.
27228         Remove local imports, use functions in System.CRTL.
27229
27230         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
27231         to use the project manager.
27232
27233         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
27234         In_Tree to designate the project tree. Adapt to changes in the project
27235         manager, using In_Tree.
27236
27237         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
27238         Copy_Interface_Sources): Add new parameter In_Tree to specify the
27239         project tree: needed by the project manager.
27240         (Build_Library): Check that Arg'Length >= 6 before checking if it
27241         contains "--RTS=...".
27242
27243         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
27244         Library_File_Name_For): Add new parameter In_Tree to specify the
27245         project tree: needed by the project manager.
27246
27247         * prj.ads, prj.adb: Major modifications to allow several project trees
27248         in memory at the same time.
27249         Change tables to dynamic tables and hash tables to dynamic hash
27250         tables. Move tables and hash tables from Prj.Com (in the visible part)
27251         and Prj.Env (in the private part). Move some constants from the visible
27252         part to the private part. Make other constants deferred.
27253         (Project_Empty): Make it a variable, not a function
27254         (Empty_Project): Add parameter Tree. Returns the data with the default
27255         naming data of the project tree Tree.
27256         (Initialize): After updating Std_Naming_Data, copy its value to the
27257         component Naming of Project Empty.
27258         (Register_Default_Naming_Scheme): Use and update the default naming
27259         component of the project tree, instead of the global variable
27260         Std_Naming_Data.
27261         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
27262         Tree is not defaulted, return the default naming data of the Tree.
27263         (Initial_Buffer_Size): Constant moved from private part
27264         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
27265         variables initialized in procedure Initialize.
27266         (Add_To_Buffer): Add two in out parameters to replace global variables
27267         Buffer and Buffer_Last.
27268         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
27269         functions.
27270         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
27271         hash tables.
27272         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
27273         for the project tree.
27274         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
27275         constant at the beginning of the package spec, so that they cane be used
27276         in subprograms before their full declarations.
27277         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
27278         (Empty_Project): Add parameter of type Project_Node_Ref
27279         (Private_Project_Tree_Data): Add component Default_Naming of type
27280         Naming_Data.
27281         (Buffer, Buffer_Last): remove global variables
27282         (Add_To_Buffer): Add two in out parameters to replace global variables
27283         Buffer and Buffer_Last.
27284         (Current_Packages_To_Check): Remove global variable
27285         (Empty_Name): Move to private part
27286         (No-Symbols): Make it a constant
27287         (Private_Project_Tree_Data): New type for the private part of the
27288         project tree data.
27289         (Project_Tree_Data): New type for the data of a project tree
27290         (Project_Tree_Ref): New type to designate a project tree
27291         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
27292         for the project tree.
27293
27294         * prj-attr.ads: Add with Table; needed, as package Prj no longer
27295         imports package Table.
27296
27297         * prj-com.adb: Remove empty, no longer needed body
27298
27299         * prj-com.ads: Move most of the content of this package to package Prj.
27300
27301         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
27302         designate the project node tree and Packages_To_Check to replace
27303         global variable Current_Packages_To_Check.
27304         Add new parameters In_Tree and Packages_To_Check to local subprograms,
27305         when needed. Adapt to changes in project manager with project node tree
27306         In_Tree.
27307
27308         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
27309         project tree to most subprograms. Move tables and hash tables to
27310         private part of package Prj.
27311         Adapt to changes in project manager using project tree In_Tree.
27312
27313         * prj-makr.adb (Tree): New constant to designate the project node tree
27314         Adapt to change in project manager using project node tree Tree
27315
27316         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
27317         display the Library_Src_Dir and the Library_Dir.
27318         Add new parameter In_Tree to designate the project node tree to most
27319         subprograms. Adapt to changes in the project manager, using project tree
27320         In_Tree.
27321         (Check_Naming_Scheme): Do not alter the casing on platforms where
27322         the casing of file names is not significant.
27323         (Check): Add new parameter In_Tree to designate the
27324
27325         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
27326         designate the project tree.
27327         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
27328
27329         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
27330         to replace those that were in the private part of package Prj.
27331         Add new parameter In__Tree to designate the project node tree to most
27332         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
27333         (Post_Parse_Context_Clause): When specifying the project node of a with
27334         clause, indicate that it is a limited with only if there is "limited"
27335         in the with clause, not necessarily when In_Limited is True.
27336         (Parse): Add new parameter In_Tree to designate the project node tree
27337
27338         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
27339         designate the project node tree. Adapt to change in Prj.Tree with
27340         project node tree In_Tree.
27341
27342         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
27343         tree In_Tree in the call to function Empty_Process to give its initial
27344         value to the project data Processed_Data.
27345         Add new parameters In_Tree to designate the project tree and
27346         From_Project_Node_Tree to designate the project node tree to several
27347         subprograms. Adapt to change in project manager with project tree
27348         In_Tree and project node tree From_Project_Node_Tree.
27349
27350         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
27351         to replace those that were in the private part of package Prj.
27352         Add new parameter In_Tree to designate the project node tree to most
27353         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
27354
27355         * prj-tree.ads, prj-tree.adb: Add new parameter of type
27356         Project_Node_Tree_Ref to most subprograms.
27357         Use this new parameter to store project nodes in the designated project
27358         node tree.
27359         (Project_Node_Tree_Ref): New type to designate a project node tree
27360         (Tree_Private_Part): Change table to dynamic table and hash tables to
27361         dynamic hash tables.
27362
27363         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
27364         the project tree to most subprograms. Adapt to changes in project
27365         manager using project tree In_Tree.
27366
27367         * makegpr.adb (Project_Tree): New constant needed to use project
27368         manager.
27369
27370 2005-03-15  Olivier Hainque  <hainque@adacore.com>
27371
27372         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
27373         for sigactions with SA_SIGINFO set. Call
27374         __gnat_adjust_context_for_raise before raising, to perform the
27375         potentially required adjustments to the machine context for the GCC
27376         unwinder.
27377
27378         * raise.h (__gnat_adjust_context_for_raise): New prototype.
27379
27380         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
27381         Adjust PC by one in the provided machine context.
27382         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
27383         so that the handler is passed the context structure to adjust prior to
27384         the raise.
27385         (__gnat_error_handler) HPUX: Adjust the signature to match what an
27386         SA_SIGINFO sigaction should look like. Call
27387         __gnat_adjust_context_for_raise before actually raising.
27388         (__gnat_adjust_context_for_raise): Default noop to help PC
27389         adjustments before raise from signal handlers.
27390         (__gnat_error_handler): Indirectly call a predicate function to
27391         determine if a condition should be resignaled or not.
27392         (__gnat_set_resignal_predicate): User interface to modify the predicate.
27393         (__gnat_default_resignal_p): Default GNAT predicate.
27394
27395 2005-03-15  Doug Rupp  <rupp@adacore.com>
27396
27397         * adaint.c: Prefix #include of VMS system header files with vms/
27398         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
27399         Do not define a dummy function "convert_addresses" under Darwin,
27400         not needed.
27401
27402         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
27403         with vms/
27404
27405 2005-03-15  Nicolas Setton  <setton@adacore.com>
27406
27407         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
27408         PPC/AIX.
27409
27410 2005-03-15  Robert Dewar  <dewar@adacore.com>
27411
27412         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
27413         AI-386.
27414
27415         * a-retide.ads: Minor comment changes
27416
27417 2005-03-15  Robert Dewar  <dewar@adacore.com>
27418
27419         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
27420         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
27421         Realloc_For_Chunk to private part of package.
27422         New subprograms for AI-301
27423
27424         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
27425         Get_Line procedure.
27426         Avoid unnecessary use of Get/Set_Wide_String
27427
27428 2005-03-15  Robert Dewar  <dewar@adacore.com>
27429
27430         PR ada/13470
27431         * a-stunau.ads, a-stunau.adb:
27432         Change interface to allow efficient (and correct) implementation
27433         The previous changes to allow extra space in unbounded strings had
27434         left this interface a bit broken.
27435
27436         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
27437
27438         * g-spipat.ads, g-spipat.adb: New interface for Get_String
27439         Minor reformatting (function specs)
27440
27441         * g-spitbo.adb: New interface for Get_String
27442
27443         * g-spitbo.ads: Minor reformatting
27444
27445         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
27446
27447         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
27448
27449 2005-03-15  Javier Miranda  <miranda@adacore.com>
27450             Robert Dewar  <dewar@adacore.com>
27451             Thomas Quinot  <quinot@adacore.com>
27452             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27453
27454         * atree.ads, atree.adb: Add support for Elist24 field
27455
27456         * atree.h: Fix wrong definition of Field27
27457         Add support for Elist16 field
27458         Add support for Elist24 field
27459
27460         * einfo.ads, einfo.adb (Abstract_Interfaces,
27461         Set_Abstract_Interfaces): New subprograms.
27462         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
27463         subprograms.
27464         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
27465         entities rather than a single node.
27466         (Is_Interface, Set_Is_Interface): New subprogram
27467         (First_Tag_Component): New syntesized attribute
27468         (Next_Tag_Component): New synthesized attribute
27469         (Write_Entity_Flags): Upgraded to write Is_Interface
27470         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
27471         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
27472         (Task_Body_Procedure): New subprogram to read this attribute.
27473         (Set_Task_Body_Procedure): New subprogram to set this attribute.
27474         (Has_Controlled_Component): Now applies to all entities.
27475         This is only a documentation change, since it always worked to apply
27476         this to other than composite types (yielding false), but now this is
27477         official.
27478         Update documentation on Must_Be_Byte_Aligned for new spec
27479
27480         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
27481         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
27482         uses of the Access_Disp_Table attribute to reference the first dispatch
27483         table associated with a tagged type. As
27484         part of the implementation of abstract interface types,
27485         Access_Disp_Table has been redefined to contain a list of dispatch
27486         tables (rather than a single dispatch table).
27487         Similarly, upgrade all the references to Tag_Component by the
27488         new attribute First_Tag_Component.
27489         (Find_Inherited_TSS): Moved to exp_tss.
27490         Clean up test in Expand_N_Object_Declaration for cases
27491         where we need to do a separate assignment of the initial value.
27492         (Expand_N_Object_Declaration): If the expression in the
27493         declaration of a tagged type is an aggregate, no need to generate an
27494         additional tag assignment.
27495         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
27496         is to be deleted.
27497         Bit packed array ops are only called if operands are known to be
27498         aligned.
27499         (Component_Equality): When returning an N_Raise_Program_Error statement,
27500         ensure that its Etype is set to Empty to avoid confusing GIGI (which
27501         expects that only expressions have a bona fide type).
27502         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
27503         determine the amount of data to be copied.
27504
27505         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
27506         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
27507             INTERFACE_TYPE_DEFINITION ::=
27508               [limited | task | protected | synchronized] interface
27509                 [AND interface_list]
27510
27511         * par-ch3.adb (P_Type_Declaration): Modified to give support to
27512         interfaces.
27513         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
27514         interfaces.
27515         (P_Interface_Type_Definition): New subprogram that parses the new
27516         syntax rule of Ada 2005 interfaces
27517         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
27518         messages by the correct RENAMES (quotes removed).
27519
27520         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
27521         attribute First_Tag_Component.
27522
27523         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
27524         (Interface_List, Set_Interface_List): New subprograms.
27525         (Interface_Present, Set_Interface_Present): New subprograms.
27526         (Limited_Present, Set_Limited_Present): Available also in derived
27527         type definition nodes.
27528         (Protected_Present, Set_Protected_Present): Available also in
27529         record type definition and
27530         derived type definition nodes.
27531         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
27532         (Task_Present, Set_Task_Present): New subprogram.
27533         (Task_Body_Procedure): Removed.
27534         (Set_Task_Body_Procedure): Removed.
27535         These subprogram have been removed because the attribute
27536         Task_Body_Procedure has been moved to the corresponding task type
27537         or task subtype entity to leave a field free to store the list
27538         of interfaces implemented by a task (for AI-345)
27539         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
27540         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
27541         expression flag Do_Range_Check
27542         (Exception_Junk): Change to Flag7 to accomodate above change
27543         (Box_Present, Default_Name, Specification, Set_Box_Present,
27544         Set_Default_Name, Set_Specification): Expand the expression
27545         "X in N_Formal_Subprogram_Declaration" into the corresponding
27546         two comparisons. Required to use the csinfo tool.
27547
27548         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
27549         "with string" given.
27550
27551         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
27552         expression given.
27553
27554         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
27555         in 2005 mode
27556
27557         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
27558         attribute Task_Body_Procedure rather than the old semantic field that
27559         was available in the task_type_declaration node.
27560
27561         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
27562         interface type definitions.
27563         (P_Formal_Derived_Type_Definition): Modified to handle the list of
27564         interfaces.
27565
27566         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
27567         task type declaration.
27568         (P_Protected): Modified to handle the list of interfaces in a
27569         protected type declaration.
27570
27571 2005-03-15  Doug Rupp  <rupp@adacore.com>
27572             Vincent Celier  <celier@adacore.com>
27573
27574         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
27575         (Gen_Output_File_C): Likewise.
27576         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
27577
27578 2005-03-15  Thomas Quinot  <quinot@adacore.com>
27579
27580         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
27581         is an N_Raise_Constraint_Error node, create a new copy of it without
27582         going through a call to Duplicate_Subexpr.
27583
27584 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
27585             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27586             Nicolas Setton  <setton@adacore.com>
27587             Ed Schonberg  <schonberg@adacore.com>
27588
27589         PR ada/19900
27590         PR ada/19408
27591         PR ada/19140
27592         PR ada/20255
27593         * decl.c (gnat_to_gnu_field): Reject aliased components with a
27594         representation clause that prescribes a size not equal to the rounded
27595         size of their types.
27596         (gnat_to_gnu_entity, case E_Component): Always look at
27597         Original_Record_Component if Present and not the entity.
27598         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
27599         of tagged extension types by not making field for components that are
27600         inside the parent.
27601         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
27602         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
27603         expression to the type of the object when the object is constant.
27604         Reverse defer_debug_incomplete_list before traversing it, so that trees
27605         are processed in the order at which they were added to the list. This
27606         order is important when using the stabs debug format.
27607         If we are deferring the output of debug information, also defer this
27608         output for a function return type.
27609         When adding fields to a record, prevent emitting debug information
27610         for incomplete records, emit the information only when the record is
27611         complete.
27612         (components_to_record): New parameter defer_debug.
27613         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
27614         (gnat_to_gnu_field_decl): New function.
27615         (substitution_list, annotate_rep): Call it.
27616         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
27617         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
27618         No longer update discriminants to not be a COMPONENT_REF.
27619         (copy_alias_set): Strip padding from input type; also handle
27620         unconstrained arrays properly.
27621
27622         * gigi.h (write_record_type_debug_info): New function.
27623         Convert to use ANSI-style prototypes. Remove unused
27624         declarations for emit_stack_check, elab_all_gnat and
27625         set_second_error_entity.
27626         (gnat_to_gnu_field_decl): New decl.
27627
27628         * utils.c (write_record_type_debug_info): New function.
27629         (finish_record_type): Delegate generation of debug information to
27630         write_record_type_debug_info.
27631         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
27632         (update_pointer_to): Fix pasto.
27633         (convert) <UNION_TYPE>: Accept slight type variations when
27634         converting to an unchecked union type.
27635
27636         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
27637         replace the N_Freeze_Entity with a null statement.
27638
27639         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
27640         within a constrained subcomponent of an enclosing record, place the
27641         freeze nodes in the scope stack entry for the enclosing record.
27642         (Undelay_Type): New Subprogram.
27643         (Set_Small_Size): Pass T, the type to modify; all callers changed.
27644         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
27645         within records; allow them to have freeze nodes if their base types
27646         aren't frozen yet.
27647
27648         * exp_util.adb (Remove_Side_Effects): Properly test for
27649         Expansion_Delayed and handle case when it's inside an
27650         N_Qualified_Expression.
27651
27652         * sem_ch3.adb (Derived_Type_Declaration): New predicate
27653         Comes_From_Generic, to recognize accurately that the parent type in a
27654         derived type declaration can be traced back to a formal type, because
27655         it is one or is derived from one, or because its completion is derived
27656         from one.
27657         (Constrain_Component_Type): If component comes from source and has no
27658         explicit constraint, no need to constrain in in a subtype of the
27659         enclosing record.
27660         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
27661         Minor change to propagate Is_Ada_2005 flag
27662
27663         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
27664         Expansion_Delayed is False.
27665         (assoc_to_constructor): Ignore fields that have a
27666         Corresponding_Discriminant.
27667         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
27668         function returns "by target", dereference the target pointer using the
27669         type of the actual return value.
27670         <all>: Be prepared for a null gnu_result.
27671         (processed_inline_subprograms): Check flag_really_no_inline
27672         instead of flag_no_inline.
27673         (set_second_error_entity): Remove unused function.
27674         (gnat_to_gnu, case N_Selected_Component): Call
27675         gnat_to_gnu_field_decl.
27676         (assoc_to_constructor): Likewise.
27677
27678 2005-03-15  Robert Dewar  <dewar@adacore.com>
27679             Ed Schonberg  <schonberg@adacore.com>
27680             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27681
27682         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
27683         Must_Be_Byte_Aligned for cases where we do not need to use a
27684         System.Pack_nn unit.
27685
27686         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
27687         as procedures.
27688         Needed now that we do some processing for IN parameters as well. This
27689         may well fix some unrelated errors.
27690         (Expand_Call): Handle case of unaligned objects (in particular those
27691         that come from packed arrays).
27692         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
27693         renamed entity is an inherited operation, re-expand the call using the
27694         original operation, which is the one to call.
27695         Detect attempt to inline parameterless recursive subprogram.
27696         (Represented_As_Scalar): Fix to work properly with private types
27697         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
27698         accurate estimate. Yields True in far fewer cases than before,
27699         improving the quality of code that depends on this test.
27700
27701         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
27702         over both visible and private declarations to remove them from tree,
27703         and mark subprograms declared in package as eliminated, to prevent
27704         spurious use in subsequent compilation of generic units in the context.
27705
27706         * exp_util.ads: Minor cleanup in variable names
27707
27708         * sem_eval.ads, sem_eval.adb: Minor reformatting
27709         (Compile_Time_Known_Bounds): New function
27710
27711 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
27712
27713         * exp_ch7.adb (Convert_View): Use base types of underlying types when
27714         determining whether an unchecked conversion is needed for the argument
27715         of an initialization call.
27716
27717 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
27718
27719         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
27720         that appears in the instantiation rather than the internal subtype
27721         generated in the wrapper package, to avoid anomalies in gigi when the
27722         target is derived from a private type whose full view is an access type.
27723
27724 2005-03-15  Robert Dewar  <dewar@adacore.com>
27725
27726         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
27727         not needed.
27728         Add documentation to replace the use of this flag
27729         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
27730         the x86_64.
27731
27732 2005-03-15  Thomas Quinot  <quinot@adacore.com>
27733
27734         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
27735         here from exp_attr so it can be shared between exp_attr and exp_dist.
27736         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
27737         all TSS names, not a subset thereof, and the previous name introduced
27738         an unnecessarily confusion that a distinction might exist between
27739         "OK" TSS names and some "not OK" TSS names.
27740
27741 2005-03-15  Doug Rupp  <rupp@adacore.com>
27742
27743         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
27744         Command_Name.
27745
27746 2005-03-15  Pascal Obry  <obry@adacore.com>
27747             Eric Botcazou  <ebotcazou@adacore.com>
27748
27749         PR ada/20226
27750         PR ada/20344
27751         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
27752         when IN_RTS. This is to work around a bootstrap path problem.
27753
27754         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
27755         table and pass it to __gnat_install_SEH_handler().
27756         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
27757
27758         * lang.opt: Fix specification of -fRTS=.
27759
27760 2005-03-15  Doug Rupp  <rupp@adacore.com>
27761             Bernard Banner  <banner@adacore.com>
27762             Vincent Celier  <celier@adacore.com>
27763             Arnaud Charlet  <charlet@adacore.com>
27764
27765         PR ada/6852
27766         This change works fine when gnatlib is built from the gcc directory,
27767         but does not work when using the libada Makefile, since GCC_FOR_TARGET
27768         is not passed to ada/Makefile.in, so more work is needed by a
27769         Makefile/configure expert.
27770
27771         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
27772         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
27773         Setup gnatlink switch -M for x86_64 linux, as it is already setup
27774         for Linux x86.
27775         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
27776         Run ranlib on libgccprefix.a
27777         Define PREFIX_OBJS for Darwin, to build libgccprefix.
27778         (ADA_INCLUDE_SRCS): Split Ada packages.
27779
27780 2005-03-15  Robert Dewar  <dewar@adacore.com>
27781
27782         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
27783
27784         * impunit.adb: Add GNAT.UTF_32
27785
27786         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
27787
27788         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
27789         now uses GNAT.UTF_32).
27790
27791         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
27792         capabilities for categorizing characters using Unicode categories
27793
27794 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
27795
27796         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
27797         instantiation that has been rewritten as a package body, retrieve spec
27798         to generate proper name for implicit_with_clause.
27799         (Install_Parents): Recognize a parent that is an instantiation but has
27800         been rewritten as a package declaration during analysis.
27801
27802 2005-03-15  Javier Miranda  <miranda@adacore.com>
27803             Ed Schonberg  <schonberg@adacore.com>
27804
27805         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
27806         parameter reported some error we immediately return. This improves the
27807         behaviour of the frontend in case of errors.
27808         (Install_Parent, Remove_Parent): Introduce new flag
27809         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
27810         ancestor of a generic child unit, when the child is being instantiated.
27811         (Inline_Instance_Body): If we are compiling the private
27812         part or the body of a child unit, restore the proper visibility of the
27813         parents after compiling the instance body.
27814
27815 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
27816             Javier Miranda  <miranda@adacore.com>
27817
27818         PR ada/15608
27819         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
27820         of a private type, in which case it is underlying_type that denotes
27821         the proper task. Also modified to use the new entity attribute
27822         that is directly available in the task type and task subtype entities
27823         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
27824         arrays when other dimensions than the first are constrained by
27825         discriminants of an enclosing record.
27826         (Insert_Explicit_Dereference): If the prefix is an indexed component or
27827         a combination of indexed and selected components, find ultimate entity
27828         and generate the appropriate reference for it, to suppress spurious
27829         warnings.
27830         (Note_Possible_Modification): If an entity name has no entity, return.
27831         (Is_Variable): A function call never denotes a variable.
27832         (Requires_Transient_Scope): For record types, recurse only on
27833         components, not on internal subtypes that may have been generated for
27834         constrained components.
27835
27836 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
27837
27838         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
27839         Eliminated as candidates for resolution. Both efficient, and avoids
27840         anomalies with operators declared in deleted code.
27841         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
27842         expansion is disabled (as when compiling a generic) to prevent spurious
27843         warnings on prefixes of selected components.
27844
27845 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
27846
27847         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
27848         attached to a list before checking whether it appears in the private
27849         declarations of the current package.
27850         (Make_Inequality_Operator): Insert declaration in proper declarative
27851         list rather than just setting the Parent field, so that
27852         Is_Private_Declaration can handle it properly.
27853
27854 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
27855
27856         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
27857         a renaming a body, check that the renamed subprogram in not intrinsic.
27858         (Find_Direct_Name): If several use_visible entities hide
27859         each other, and the context is a predefined file compiled through
27860         rtsfind, keep only the entity that comes from a predefined file.
27861
27862 2005-03-15  Geert Bosch  <bosch@adacore.com>
27863
27864         * s-fatgen.adb (Valid): Extend special exceptions to account for long
27865         long float padding to also cover AMD64 and IA64.
27866
27867 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
27868
27869         * s-imgwch.adb: Add with and use of Interfaces.
27870         (Img_Wide_Character): Change type of Val to Unsigned_16.
27871         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
27872
27873 2005-03-15  Matthew Gingell  <gingell@adacore.com>
27874
27875         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
27876
27877 2005-03-15  Robert Dewar  <dewar@adacore.com>
27878
27879         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
27880
27881         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
27882
27883         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
27884
27885 2005-03-15  Robert Dewar  <dewar@adacore.com>
27886
27887         * s-bitops.adb, s-bitops.ads,
27888         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
27889         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
27890         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
27891         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
27892         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
27893         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
27894         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
27895         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
27896         reformatting.
27897
27898 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
27899
27900         * utils2.c (build_binary_op): Fix typo.
27901
27902 2005-03-15  Doug Rupp  <rupp@adacore.com>
27903
27904         * s-crtl.ads (popen,pclose): New imports.
27905
27906 2005-03-15  Cyrille Comar  <comar@adacore.com>
27907
27908         * comperr.adb (Compiler_Abort): remove references to obsolete
27909         procedures in the bug boxes for various GNAT builds.
27910
27911 2005-03-15  Vincent Celier  <celier@adacore.com>
27912
27913         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
27914
27915 2005-03-15  Geert Bosch  <bosch@adacore.com>
27916             Arnaud Charlet  <charlet@adacore.com>
27917             Robert Dewar  <dewar@adacore.com>
27918             Cyrille Comar  <comar@adacore.com>
27919             Sergey Rybin  <rybin@adacore.com>
27920
27921         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
27922         too specific and long-winded to be appropriate for the GNAT User's
27923         Guide.
27924         Warn about use of GCC switches not documented in the GNAT User's Guide,
27925         as these may cause generated code to not conform to Ada semantics.
27926         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
27927         Add documentation for -gnat95 and -gnat05 switches
27928         Remove paragraph documenting obsolete way to refer to third party
27929         libraries.
27930         Add a few references to Ada_05 that were missing.
27931         Update documentation on -gnatZ/-gnatL.
27932         Document limitation when using -m64 under Solaris.
27933         Change the "Name Casing" subsection of the pretty-printer section
27934         according to the changes in the dictionary processing.
27935
27936         * gnat_rm.texi: Document the Ada_05 pragma.
27937         Section on record representation clauses describes the new more
27938         relaxed rules about placement of large packed bit array components.
27939         Add documentation of GNAT.UTF_32
27940
27941 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
27942
27943         * misc.c (gnat_post_options): Turn off structural
27944         aliasing for now.
27945
27946 2005-03-08  Laurent Guerby  <laurent@guerby.net>
27947
27948         * system-linux-sparc.ads: Fix typo in previous commit.
27949
27950 2005-03-07  James A. Morrison  <phython@gcc.gnu.org>
27951             Laurent Guerby  <laurent@guerby.net>
27952
27953         PR ada/20035
27954         * system-linux-sparc.ads: New.
27955         * Makefile.in: Add sparc linux entry.
27956
27957 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
27958
27959         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
27960         parameters as unused.
27961
27962 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
27963         Partial merge from libada-gnattools-branch:
27964
27965         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
27966         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
27967         into code in gnattools/Makefile.in.  Remove direct dependencies on
27968         stamp-tools by tools clauses.
27969         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
27970         * config-lang.in: Add gnattools to $lang_dirs.
27971
27972 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
27973
27974         PR ada/19942
27975         * utils.c (gnat_type_for_mode): Return null instead of ICE because
27976         we asked for an unknown mode.
27977
27978 2005-02-12  Richard Henderson  <rth@redhat.com>
27979
27980         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
27981         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
27982
27983 2005-02-10  Andreas Jaeger  <aj@suse.de>
27984
27985         * init.c (__gnat_initialize): Mark parameter as unused.
27986
27987 2005-02-09  Doug Rupp  <rupp@adacore.com>
27988
27989         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
27990         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
27991
27992 2005-02-09  Doug Rupp  <rupp@adacore.com>
27993
27994         * gnatchop.adb (dup, dup2),
27995         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
27996
27997         * gnatlbr.adb (mkdir),
27998         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
27999
28000         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
28001
28002 2005-02-09  Doug Rupp  <rupp@adacore.com>
28003
28004         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
28005
28006 2005-02-09  Robert Dewar  <dewar@adacore.com>
28007             Thomas Quinot  <quinot@adacore.com>
28008             Javier Miranda  <miranda@adacore.com>
28009             Pascal Obry  <obry@adacore.com>
28010             Ed Schonberg  <schonberg@adacore.com>
28011             Doug Rupp  <rupp@adacore.com>
28012             Gary Dismukes  <dismukes@adacore.com>
28013             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28014
28015         * g-zstspl.ads: New file.
28016
28017         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
28018
28019         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
28020         Ada 95 mode
28021         Add definition of Wide_Wide_Space for AI-285
28022
28023         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
28024         interface (to support Ada 95 and Ada 2005 units).
28025         Add Unbounded_IO files
28026         Add entries for Wide_Wide packages for AI-285
28027         Add list of containers packages to Ada 2005 unit list
28028
28029         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
28030         support new Unbounded_IO package cleanly.
28031
28032         * g-utf_32.ads, g-utf_32.adb: New files.
28033
28034         * Makefile.rtl: Add entry for g-utf_32
28035         Add new files for Unbounded_IO
28036         Adjust make file for new AI-285 wide wide packages
28037         Add AI-302 containers to the run time.
28038
28039         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
28040         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
28041         subprograms for AI-301.
28042
28043         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
28044
28045         * a-stunau.ads: Minor comment correction
28046
28047         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
28048         etc.
28049         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
28050         (Check_RPC): Update to match changes in expanded code.
28051         Clean up unused entity.
28052
28053         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
28054         was not taken into account.
28055         This includes proper initialization with Normalize_Scalars.
28056         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
28057         normalize scalars cases (particularly the latter) to do a better job
28058         of finding invalid representations.
28059
28060         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
28061
28062         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
28063         used
28064
28065         * exp_dist.adb: Add support for wide wide character type
28066         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
28067         private part, generate stub bodies at the end of the private part,
28068         not the visible part.
28069         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
28070         PolyORB support.
28071         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
28072         generic wrapper to execute final processing after completing the
28073         expansion of the RPC receiver for an RACW.
28074
28075         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
28076         packages and attributes.
28077         (Preset_Names): Addition of the new reserved words of Ada 2005,
28078         that is interface, overriding and synchronized.
28079         (Get_Pragma_Id): Give support to the use of the new reserved word
28080         "interface" as a pragma name.
28081         (Is_Pragma_Name): Give support to the use of the new reserved word
28082         "interface" as a pragma name.
28083         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
28084         attribute implementation.
28085
28086         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
28087         checks to entities that are output parameters of Asm operations.
28088         Handle the Stream_Size attribute.
28089         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
28090
28091         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
28092
28093         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
28094         for second parameter being 0.0.
28095         Add support for wide wide character type.
28096         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
28097
28098         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
28099         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
28100         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
28101         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
28102         for wide wide character cases.
28103
28104         * cstand.adb: Create entities for Wide_Wide_Character and
28105         Wide_Wide_String.
28106
28107         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
28108         accordance with AI-258.
28109         Add new declarations for 16/32 bit C character types (Part of AI285)
28110
28111         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
28112         (Obsolescent_Warning): New field
28113         (Rep_Clause): New local subprogram used to share code. Returns the rep
28114         clause for which the name is given in parameter.
28115         (Has_Stream_Size_Clause): New routine.
28116         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
28117         (Address_Clause): Implementation is now using Rep_Clause.
28118         (Alignment_Clause): Idem.
28119         (Size_Clause): Idem.
28120
28121         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
28122         entity in non-Ada 2005 mode and generate warning.
28123
28124         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
28125         (Prag): Code cleanup. Remove old gnat pragma "overriding"
28126
28127         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
28128         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
28129         on the named unit if the pragma is not in the current compilation unit,
28130         so that elaboration calls in the current unit can set up an elaboration
28131         dependency on the named unit, as needed.
28132         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
28133         subprogram as well as for subprograms declared within a package.
28134         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
28135         pragma overriding.
28136
28137         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
28138         to z) to avoid some instances of duplication for Wide_Wide packages.
28139
28140         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
28141         characters.
28142
28143         * scn.adb: Char_Literal_Value field is now a Uint
28144
28145         * scng.adb: Significant rewrite to handle new Ada 2005 features
28146         allowing wide and wide wide characters in program text, e.g. for
28147         identifiers, as described in AI-285.
28148         (Set_Reserved): New procedure, makes setting up keywords cleaner.
28149         (Initialize_Scanner): Register the new reserved words of Ada 2005.
28150         (Scan): Give support to the new reserved words.
28151
28152         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
28153         warning notifying that interface, overriding, and synchronized are
28154         new reserved words.
28155         (P_Pragma): Allow the use of the new reserved word "interface" as
28156         a pragma name.
28157
28158         * gnatls.adb, gnatbind.adb,
28159         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
28160         identifiers named "interface" to "SAL_Interface".
28161
28162         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
28163         (Structured Exception handling).
28164         (Gen_Main_C): Idem.
28165
28166         * bindgen.adb:
28167         (Gen_Main_Ada): Set the default exit code if specified.
28168         (Gen_Main_C): Likewise.
28169         Part of *DC20-006.
28170         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
28171         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
28172
28173         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
28174         new -Xnnn switch.
28175
28176         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
28177         has a collision with the new Ada 2005 "interface" reserved word.
28178
28179         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
28180         generate a warning notifying that interface, overriding, and
28181         synchronized are new reserved words.
28182
28183         * scans.ads (Token_Type): Addition of the tokens corresponding to the
28184         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
28185         and Tok_Synchronized.
28186
28187         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
28188         "dispatching" rather than "primitive" operations, since dispatching
28189         calls are now allowed to abstract formal subprograms (which are not
28190         primitive).
28191         Char_Literal_Value field is now a Uint
28192         (Resolve_Slice): If the prefix is an access to an unconstrained array,
28193         compute the actual subtype of the designated object to impose the proper
28194         index constraints.
28195         (Resolve_Selected_Component): Do not insert an access check if the
28196         prefix is an access type: such a node is expanded into an explicit
28197         dereference, on which the access check is performed anyway. Removes
28198         expensive duplicate checks.
28199         (Resolve_Call): Use new flag Is_Obsolescent and field
28200         Obsolescent_Warning so that pragma Obsolescent works on library
28201         subprograms.
28202         Add support for wide wide character type
28203         (Resolve_Allocator): Replace the error message on wrong null-exclusion
28204         value by a warning message.
28205         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
28206         as fixed-point, and one of the operands is non-static and universal, it
28207         can only be an illegal exponentiation operation, in which case there is
28208         no real value to retrieve.
28209
28210         * exp_strm.adb: Add support for wide wide character type
28211         (Build_Elementary_Input_Call): Compute the size of the stream element by
28212         querying the rep chain to find the Stream_Attribute attribute value.
28213         (Build_Elementary_Write_Call): Ditto.
28214
28215         * sem_aggr.adb: Char_Literal_Value field is now a Uint
28216         Add support for wide wide character type
28217         Replace the error messages on wrong null-exclusion value by warnings
28218         as described in Ada 2005.
28219         (Resolve_Extension_Aggregate): Document the fact that the error
28220         message on class-wide expressions in extensions aggregates.
28221
28222         * sem_case.adb: Add support for wide wide character type
28223
28224         * sem_ch13.adb: Add support for wide wide character type
28225         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
28226
28227         * sem_ch3.adb: Add support for wide wide character type
28228         (Process_Subtype): If constraint is illegal for the type, set Ekind of
28229         now-useless Itype, to prevent cascaded errors on a compiler built
28230         without -gnatp.
28231
28232         * sem_ch8.adb: Add with and use of Sem_Disp.
28233         (Analyze_Subprogram_Renaming): Replace unclean uses of
28234         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
28235         of Corresponding_Spec to Empty).
28236         (Attribute_Renaming): Replace use of Corresponding_Spec with
28237         Corresponding_ Formal_Spec and simplify condition.
28238         (Use_One_Package): Check that scope of homonym of identifier is defined,
28239         before checking whether it is a wrapper package.
28240         Add support for wide wide character type
28241
28242         * sem_eval.adb: Add support for wide wide character type.
28243         (Eval_Arithmetic_Op): Check for compile time known signed integer
28244         overflow in the non-static case.
28245         (Subtypes_Statically_Match): A formal scalar type and its base type do
28246         not statically match.
28247
28248         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
28249         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
28250         subtype).
28251         (Unit_Declaration_Node): Ditto.
28252         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
28253         has a packed array type, the prefix has been rewritten into a type
28254         conversion. Determine variable-ness from the converted expression.
28255         Handle wide wide character cases.
28256
28257         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
28258
28259         * stringt.ads, stringt.adb: Handle full UTF-32 range.
28260         Remove ["0A"] from comment, since it can look like a line terminator.
28261         Currently we don't permit this, but this is under discussion by the
28262         ARG, and it is easy enough to use a different example.
28263
28264         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
28265         handling UTF-32 encoding for wide wide character.
28266         Implement new brackets coding ["hhhhhhhh"]
28267         Add UTF-8 encodings for full UTF-32 range
28268
28269         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
28270
28271         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
28272         bit range Add full UTF-32 support.
28273         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
28274         notify that constraint error will be raised at run-time
28275         because a null value is assigned to a null-excluding object.
28276         Remove some obsolete declarations and make Char_Code
28277         unsigned.
28278
28279         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
28280         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
28281         Rcheck subprograms.
28282
28283         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
28284         wrong null-exclusion value by a warning message.
28285         (Enable_Range_Check): Do range check if the prefix is an
28286         explicit dereference whose designated object is an unconstrained array.
28287         Current algorithm for removing duplicate checks is over-eager in this
28288         case.
28289
28290         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
28291         null-exclusion value by a warning message
28292
28293         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
28294         completely. Add support for Uint2 field
28295
28296         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
28297         exp_prag.adb: Char_Literal_Value field is now a Uint.
28298
28299         * exp_util.adb (Insert_Actions): Replace
28300         N_Formal_Subprogram_Declaration by
28301         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
28302         Char_Literal_Value field is now a Uint.
28303
28304         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
28305         defined for subprogram renaming declarations. When set, the field
28306         indicates the defining entity of a corresponding formal subprogram
28307         when the renaming corresponds to a formal subprogram association in an
28308         instantiation.
28309         (Set_Corresponding_Formal_Spec): New procedure to return
28310         Corresponding_Formal_Spec field.
28311         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
28312         (which is now a subtype).
28313         Char_Literal_Value field is now a Uint
28314
28315         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
28316         pointer to the base of the dispatch table.
28317         Minor changes to comments.
28318         (Controlling_Type): New function for determining the tagged type
28319         associated with a tagged primitive subprogram.
28320         (Expand_Dispatching_Call): Add support for a controlling actual that is
28321         directly a value of type Ada.Tag rather than a tagged object.
28322
28323         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
28324         describing the new layout.
28325         (Dispatch_Table): The expander computes the actual array size, allocates
28326         the Dispatch_Table record accordingly, and generates code that displaces
28327         the base of the record after the Typeinfo_Ptr component. The access to
28328         these components is done by means of local functions.
28329         (Offset_To_Top): New function.
28330         (Typeinfo_Ptr): New function.
28331         (Get_TSD): Modified to access the new position of the TSD.
28332         (Set_TSD): Modified to save the TSD in its new position.
28333
28334         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
28335         case of formal abstract subprograms. Add check and message for -gnat05.
28336         Update comments.
28337
28338         * sem_ch12.adb: Add with and use for Sem_Disp.
28339         (Analyze_Associations): Minor change from "=" to "in" for use of
28340         N_Formal_Subtype_Declaration (which is now a subtype).
28341         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
28342         N_Formal_Subtype_Declaration (which is now a subtype).
28343         (Analyze_Formal_Subprogram): Add handling for
28344         N_Formal_Abstract_Subprogram, marking the formal as abstract and
28345         dispatching, setting the controlling status of the formal parameters
28346         and result, and issuing an error if there is no controlling type for
28347         the formal subprogram.
28348         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
28349         which is an unclean use of that field, we set the new field
28350         Corresponding_Formal_Spec to make the formal subprogram available to
28351         processing in Analyze_Subprogram_Declaration.
28352         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
28353         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
28354         Constrained, so that it is is does not statically match its anonymous
28355         base type.
28356
28357         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
28358         abstract formal subprograms in error check for functions returning
28359         abstract types. Set scope of new designator for
28360         a parameterless subprogram, so that it is available when checking the
28361         body for nested subprograms, before full analysis of said body.
28362         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
28363         subprogram only if inner one comes from source.
28364         (Analyze_Function_Call): If the call is given in object notation, the
28365         analysis of the name rewrites the node and analyzes it with the proper
28366         argument list. After analyzing the name, if the call has been rewritten
28367         and the result type is set, no further analysis is needed.
28368         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
28369         mark in function specification, in a context where the formals are
28370         visible and hide outer homographs.
28371
28372         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
28373         as the tagged type for the cases of abstract formal subprograms and
28374         renamings of those.  Clean up spec comments.
28375         (Check_Dispatching_Context): Add error message to indicate "abstract
28376         procedure", covering the case of a call to a formal abstract procedure
28377         that has statically tagged operands.
28378         (Check_Dispatching_Call): Check for the case of an actual given by
28379         a tag-indeterminate function call whose type is an ancestor of the
28380         containing call's associated tagged type. This situation can occur
28381         for inherited primitives with function defaults. In this case we
28382         use the tagged type's tag directly as the controlling argument for
28383         the calls.
28384         (Expand_Call): Name change on call to Expand_Dispatch_Call.
28385
28386         * sprint.adb (Sprint_Node_Actual): Split
28387         N_Formal_Subprogram_Declaration into two alternatives for the new
28388         cases N_Formal_Abstract_Subprogram_Declaration and
28389         N_Formal_Concrete_Subprogram_Declaration.
28390         Char_Literal_Value field is now a Uint.
28391
28392         * trans.c: Get rid of junk Uint2 reference.
28393         Char_Literal_Value field is now a Uint.
28394         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
28395         (gigi): Correct third arg to gimplify_body.
28396
28397         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
28398         (TYPE_LANG_FLAG_0): Check for record or union.
28399
28400         * treepr.adb: Char_Literal_Value field is now a Uint
28401
28402         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
28403         UI_From_CC.
28404
28405         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
28406         Add full UTF-32 support
28407         Char_Code is now 32 bits
28408
28409         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
28410         wide character UTF_32 line terminators.
28411         Initialize Main_Source_File to avoid error when no main
28412         source is loaded.
28413
28414         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
28415         (Main_Source_File) when no main source has been loaded, to avoid
28416         potential crash.
28417
28418 2005-02-09  Robert Dewar  <dewar@adacore.com>
28419
28420         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
28421         Fix name of Set routine
28422
28423         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
28424         fixed packages.
28425
28426         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
28427         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
28428         fixed packages
28429
28430         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
28431         forms of Get_Line subprograms for AI-301.
28432
28433         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
28434         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
28435         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
28436         a-stwima.ads: Minor reformatting.
28437
28438 2005-02-09  Doug Rupp  <rupp@adacore.com>
28439             Thomas Quinot  <quinot@adacore.com>
28440
28441         * adaint.c, adaint.h
28442         [VMS] (to_ptr32): New function.
28443         (MAYBE_TO_PTR32): New macro.
28444         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
28445         for pointer size.
28446         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
28447         [VMS] (#define fork()): Remove since unneccessary.
28448         (__gnat_set_close_on_exec): New routine to support
28449         GNAT.OS_Lib.Set_Close_On_Exec.
28450
28451         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
28452         the parent side as close-on-exec so that they are not inherited by the
28453         child.
28454
28455         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
28456         set or clear the FD_CLOEXEC flag on a file descriptor.
28457
28458 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
28459             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28460
28461         PR ada/19386
28462         * decl.c:
28463         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
28464         on the field if Pragma Component_Alignment (Storage_Unit).
28465         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
28466         side-effects as if it were a constant; also make SAVE_EXPR to protect
28467         side-effects.
28468         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
28469         UNION_TYPE.
28470         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
28471         (components_to_record): Test it.
28472         Fix improper usage of REFERENCE_CLASS_P.
28473
28474         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
28475         RECORD_TYPE.
28476
28477         * utils2.c: Minor reformatting.
28478
28479         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
28480         handle other cases like RECORD_TYPE.
28481
28482         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
28483
28484 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
28485
28486         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
28487         component of an array of arrays in an assignment context, and the
28488         aggregate has component associations that require sliding on
28489         assignment, force reanalysis of the aggregate to generate a temporary
28490         before the assignment.
28491         (Must_Slide): Make global to the package, for use in Gen_Assign.
28492
28493 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
28494
28495         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
28496         unchecked union with no inferable discriminants, return a
28497         Raise_Program_Error node, rather than inserting it at the point the
28498         type is frozen.
28499         (Expand_Record_Equality, Component_Equality): Handle properly the case
28500         where some subcomponent is an unchecked union whose generated equality
28501         code raises program error.
28502
28503 2005-02-09  Doug Rupp  <rupp@adacore.com>
28504
28505         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
28506         [VMS] (#define exit hack): Remove.
28507
28508 2005-02-09  Pascal Obry  <obry@adacore.com>
28509             Arnaud Charlet  <charlet@adacore.com>
28510
28511         * init.c (__gnat_initialize): Add a new parameter eh which contains the
28512         address of the exception registration. The Win32 version of this
28513         routine calls __gnat_install_SEH_handler() to initialize the SEH
28514         (Structured Exception Handling) handler.
28515         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
28516         SEH (Structured Exception Handling) now.
28517         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
28518         (__gnat_initialize for ppc-vxworks): Adjust comments and the
28519         preprocessor condition protecting the call to the extra eh setup
28520         subprogram, which is only available for the ppc target.
28521         (__gnat_clear_exception_count): replaced reference to
28522         variable taskIdCurrent by call to taskIdSelf(), cleaner.
28523
28524         * seh_init.c: New file.
28525
28526         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
28527         (GNATBIND_OBJS): Idem.
28528
28529         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
28530         routine takes a new parameter (a pointer to the exception registration
28531         for the SEH (Structured Exception Handling) support.
28532
28533         * raise.h: (__gnat_install_SEH_handler): New prototype.
28534         Update copyright notice.
28535
28536         * s-tassta.adb (Task_Wrapper): Declare the exception registration
28537         record and initialize it by calling __gnat_install_SEH_handler.
28538
28539 2005-02-09  Vincent Celier  <celier@adacore.com>
28540
28541         * make.adb (Gnatmake): Do not fail when the main project has no object
28542         directory.
28543
28544 2005-02-09  Doug Rupp  <rupp@adacore.com>
28545
28546         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
28547         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
28548         [VMS]: Add translations for g-enblsp.adb.
28549
28550         * s-asthan-vms.adb: Removed.
28551         * s-asthan-vms-alpha.adb: Added.
28552
28553 2005-02-09  Pascal Obry  <obry@adacore.com>
28554
28555         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
28556         (LIBGNAT_OBJS): Add seh_init.o.
28557
28558 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
28559
28560         PR ada/16592
28561         * Makefile.in: Link all gnat tools with -static-libgcc, since
28562         -shared-libgcc is now used by default on some systems (e.g. linux with
28563         recent binutils).
28564         Remove references to Makefile.prolog/generic, no longer used.
28565
28566 2005-02-09  Vincent Celier  <celier@adacore.com>
28567
28568         * prj-makr.adb (Process_Directory): Put file name in canonical case
28569         before matching against the patterns.
28570         If gnatname has been invoked as <prefix>-gnatname
28571         then invoke the compiler as <prefix>-gcc, not just "gcc".
28572
28573 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
28574
28575         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
28576         with expansion disabled. The actual subtype is needed among other
28577         places when the selected component appears in the context of a loop
28578         bound, and denotes a packed array.
28579         (Operator_Check): Always use the first subtype in the
28580         error message, to avoid the appearance of internal base types.
28581         (Transform_Object_Operation): Copy each actual in full
28582         to the parameter associations of the constructed call, rather than
28583         using the shallow copy mechanism of New_Copy_List. This ensures that
28584         the chaining of named associations is done properly.
28585         (Complete_Object_Operation): Rewrite node, rather than
28586         replacing it, so that we can trace back to the original selected
28587         component.
28588
28589         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
28590         and calls that use object notation, if the called function is not
28591         declared  in a withed unit, place the elaboration constraint on the
28592         unit in the context that makes the function accessible.
28593         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
28594         imposes an elaboration constraint between two packages.
28595
28596 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
28597
28598         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
28599         views of a private type after handling its private dependents, to
28600         maintain proper stack discipline between entry and exit from the
28601         package.
28602
28603 2005-02-09  Cyrille Comar  <comar@adacore.com>
28604
28605         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
28606         Minor reformatting.
28607
28608 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
28609
28610         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
28611         fields for foreign threads.
28612
28613 2005-02-09  Doug Rupp  <rupp@adacore.com>
28614
28615         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
28616         recursion warnings when compiled with -gnatdm.
28617
28618 2005-02-09  Robert Dewar  <dewar@adacore.com>
28619
28620         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
28621         Slight fix to documentation of -gnaty with no parameters
28622
28623         * xr_tabls.ads: Add ??? comment for missing overall comment
28624
28625         * xsinfo.adb: Make default file name be sinfo.h, since this is what
28626         we now use by default.
28627
28628         * xsnames.adb: Adjust end of file test to look for five space followed
28629         by '#' instead of six spaces. The format of xsnames.adb was modified
28630         in the last update.
28631
28632         * a-numeri.ads: Add reference to AI-388 for greek letter pi
28633         identifier.
28634
28635         * clean.adb: Minor reformatting.
28636
28637         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
28638         gnatname.adb: Minor reformatting
28639         Add 2005 to copyright output when utility is run
28640
28641         * csets.adb: Eliminate obsolete comment
28642
28643         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
28644         Update comments.
28645
28646         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
28647
28648 2005-02-09  Sergey Rybin  <rybin@adacore.com>
28649
28650         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
28651         the difference between compact and incompact layout and add the record
28652         representation clause to the example illustrating different layouts.
28653         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
28654         component clauses").
28655
28656 2005-02-09  Florian Villoing  <villoing@adacore.com>
28657
28658         * gnat_ugn.texi: Fix typos.
28659         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
28660         @file.
28661         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
28662         in the generated documentation.
28663
28664 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
28665
28666         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
28667         longer supported.
28668         Update linker wrapper when linking with non GNU C++.
28669
28670 2005-02-09  Pascal Obry  <obry@adacore.com>
28671
28672         * gnat_ugn.texi:
28673         Document the procedure to debug the DllMain routine on Windows.
28674         Add note about -funwind-tables and mixed Ada and C/C++ programming in
28675         ZCX mode.
28676         Document new BIND qualifer /RETURN_CODES=VMS.
28677
28678 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
28679
28680         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
28681         Edited gnatmetric chapter
28682
28683 2005-02-09  Robert Dewar  <dewar@adacore.com>
28684
28685         * gnat_rm.texi:
28686         Changes to document new wide wide character support
28687         For AI-285
28688         Update documentation on Normalize_Scalars and Initialize_Scalars
28689
28690 2005-02-09  Pascal Obry  <obry@adacore.com>
28691
28692         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
28693
28694 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
28695
28696         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
28697         from the VxWorks kernel) that is needed for getting the active
28698         priority of the different tasks.
28699
28700         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
28701         Use a pragma Elaborate_Body in the spec file instead.
28702         Noticed by code reading.
28703
28704 2005-02-09  Thomas Quinot  <quinot@adacore.com>
28705
28706         * exp_util.ads: Minor correction in comment.
28707
28708 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
28709
28710         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
28711         since this procedure is now too complex to be worth inlining.
28712
28713 2005-02-09  Richard Henderson  <rth@redhat.com>
28714
28715         * utils.c (gnat_define_builtin): Remove.
28716         (gnat_install_builtins): Use build_common_builtin_nodes.
28717
28718 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
28719
28720         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
28721         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
28722         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
28723         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
28724         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
28725         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
28726         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
28727         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
28728         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
28729         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
28730         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
28731         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
28732         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
28733         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
28734         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
28735         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
28736         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
28737         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
28738         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
28739         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
28740         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
28741         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
28742         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
28743         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
28744         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
28745         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
28746         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
28747         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
28748         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
28749         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
28750         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
28751         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
28752         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
28753         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
28754         library.
28755
28756 2005-01-27  Laurent Guerby  <laurent@guerby.net>
28757
28758         * Makefile.in: Fix a-intnam.ads from previous commit,
28759         add 2005 to copyright.
28760         * a-intman-rtems.ads: Renamed to...
28761         * a-intnam-rtems.ads:
28762
28763 2005-01-27  Laurent Guerby  <laurent@guerby.net>
28764
28765         * Makefile.in: Rename GNAT RTEMS specific files.
28766         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
28767         5rosinte.ads, 5rparame.adb: Replaced by files below.
28768         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
28769         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
28770
28771 2005-01-27  Joel Sherrill  <joel.sherrill@oarcorp.com>
28772             Laurent Guerby  <laurent@guerby.net>
28773
28774         PR ada/19488
28775         * 5rosinte.ads: Add No_Key constant.
28776         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
28777         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
28778
28779 2005-01-26  Laurent Guerby  <laurent@guerby.net>
28780
28781         PR ada/19414
28782         * i-cobol.adb (Valid_Numeric): Handle zero length case.
28783
28784 2005-01-20  Richard Henderson  <rth@redhat.com>
28785
28786         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
28787         a-intnam-linux.ads and system-linux-alpha.ads.
28788         * a-intnam-linux-alpha.ads: Remove file.
28789         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
28790         * system-linux-alpha.ads: New file.
28791
28792 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
28793
28794         PR ada/13470
28795         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
28796         set to the new string.
28797
28798 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
28799
28800         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
28801         to True.
28802
28803 2005-01-18  Richard Henderson  <rth@redhat.com>
28804
28805         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
28806         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
28807         for alpha-linux.
28808         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
28809
28810 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
28811
28812         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
28813         (GCC_ZCX_Support): Likewise.
28814
28815 2005-01-11  Bastian Blank  <waldi@debian.org>
28816
28817         * system-linux-s390.ads: Define Preallocated_Stacks.
28818         * system-linux-s390x.ads: Likewise.
28819
28820 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
28821
28822         * gnat_ugn.texi: Fix texi errors with null variables.
28823
28824 2005-01-03  Thomas Quinot  <quinot@adacore.com>
28825
28826         * gen-soccon.c: New utility program to generate g-soccon.ads
28827         automatically.
28828
28829         * socket.c, gsocket.h: Split inclusion of system header files into a
28830         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
28831
28832         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
28833         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
28834         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
28835         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
28836         should not be edited by hand anymore, but should be regenerated using
28837         gen-soccon.
28838
28839 2005-01-03  Robert Dewar  <dewar@adacore.com>
28840             Ed Schonberg  <schonberg@adacore.com>
28841             Vincent Celier  <celier@adacore.com>
28842
28843         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
28844         on/off, since this is an obsolescent feature, for which we now generate
28845         a warning.
28846
28847         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
28848         warning mode is set and obsolescent usage of this attribute occurs.
28849         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
28850         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
28851         predates, and partly motivates, the adoption of the AI.
28852         Implement new Ada 2005 attribute Mod
28853
28854         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
28855         attribute Mod.
28856
28857         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
28858
28859         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
28860         pragma restrictions.
28861         New entry for Ada 2005 attribute Mod.
28862
28863         * par-prag.adb:
28864         Add recognition of new pragma Restrictions No_Dependence
28865         Recognize restriction No_Obsolescent_Features at parse time
28866
28867         * bcheck.adb: Add circuitry for checking for consistency of
28868         No_Dependence restrictions.
28869
28870         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
28871         restrictions.
28872
28873         * restrict.ads, restrict.adb: Add subprograms to deal with
28874         No_Dependence restrictions.
28875
28876         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
28877         restrictions.
28878
28879         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
28880         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
28881
28882         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
28883         dummy parameter to scng instantiation.
28884         Needed for new restriction No_Obsolescent_Features
28885
28886         * scn.adb: (Obsolescent_Check): New procedure
28887         Needed for new restriction No_Obsolescent_Features
28888
28889         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
28890         specified by AI-285, needed for implementation of AI-388 (adding greek
28891         pi to Ada.Numerics).
28892         Add new generic formal to scng, needed for new restriction
28893         No_Obsolescent_Features.
28894
28895         * s-rident.ads: Add new restriction No_Obsolescent_Features.
28896
28897         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
28898         restrictions lines.
28899         (Scan_ALI): When finding an unexpected character on an R line, raise
28900         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
28901         Ignore_Errors is True, default restrictions are set and scanning of the
28902         ALI file continues with the next line. Also, when Bad_R_Line is raised
28903         and Ignore_Errors is True, skip to the end of le line.
28904
28905         * sem_ch10.adb: Check that explicit with's do not violate
28906         No_Dependence restrictions.
28907         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
28908         illegal context clauses containing child units of instance.
28909
28910         * sem_prag.adb: Processing and checking for new No_Dependence
28911         restrictions.
28912         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
28913         analyze and check the External argument.
28914
28915         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
28916
28917 2005-01-03  Robert Dewar  <dewar@adacore.com>
28918
28919         * atree.adb: Add a fifth component to entities
28920         This allows us to add 32 flags and four new fields
28921
28922         * atree.ads: Add a fifth component to entities
28923         This allows us to add 32 flags and four new fields
28924
28925         * einfo.ads, einfo.adb: Document new fields and new flags now available
28926         Add routines for printing new fields
28927
28928         * treepr.adb: Call routines to print out additional fields if present
28929
28930 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
28931
28932         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
28933         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
28934
28935         * Makefile.in: Add support to build shared Ada libraries on solaris x86
28936         Remove gpr2make, replaced by gprmake.
28937         Remove references to gnatmem and libaddr2line.
28938         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
28939         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
28940         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
28941         a-numaux-darwin.ads and a-numaux-darwin.adb
28942         Enable mlib-tgt-lynxos.adb on lynxos.
28943
28944         * Make-lang.in: Remove rules for gpr2make.
28945         When generating sdefault.adb, do not call Relocate_Path
28946         on S3 for function Target_Name, as it is not a path.
28947         Remove references to gnatmem and libaddr2line.
28948
28949         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
28950         files.
28951
28952 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
28953
28954         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
28955         address is incompatible with its base type alignment constraints when
28956         this can be decided statically.
28957
28958 2005-01-03  Olivier Hainque  <hainque@adacore.com>
28959
28960         * decl.c (compatible_signatures_p): New function. The intended purpose
28961         is to check if two function signatures for a call-site and a callee are
28962         compatible enough for the call to be valid. The underlying purpose is
28963         to check if a call to a mapped builtin is using the right interface.
28964         The current code actually does not check antyhing - this a placeholder
28965         for future refinements.
28966         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
28967         builtin calls for convention Intrinsic.
28968
28969         * gigi.h (builtin_decl_for): Declare (new function).
28970
28971         * utils.c (gnat_install_builtins): Install the target specific builtins.
28972         (builtin_decl_for): New function, provide a dummy body for now.
28973
28974 2005-01-03  Geert Bosch  <bosch@adacore.com>
28975
28976         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
28977         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
28978         (Pred): Implement in terms of Succ.
28979
28980         * trans.c (convert_with_check): Reimplement conversion of float to
28981         integer.
28982
28983 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
28984             Vincent Celier  <celier@adacore.com>
28985
28986         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
28987         bounds can be negative, and must be declared Int, not Nat.
28988
28989         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
28990         array is checked after using the index in the array.
28991
28992         * makegpr.adb (Add_Switches): Check if there is a package for the
28993         processor. If there is no package, do not look for switches.
28994
28995 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
28996
28997         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
28998         generation of predefined stream operations (specs and bodies) should
28999         proceed. Under various restrictions these subprograms must not be
29000         generated.
29001
29002 2005-01-03  Thomas Quinot  <quinot@adacore.com>
29003
29004         * exp_dist.adb:
29005         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
29006         amount of PCS-specific code in RACW stubs generation.
29007         (Copy_Specification): Set Etype on copied formal parameter entities, as
29008         this information is needed for PolyORB stubs generation.
29009         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
29010         variable Dynamic_Async.
29011         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
29012         (Build_RPC_Receiver_Specification): Make generic again, as recent
29013         changes have allowed RPC receivers to have the same profile for both
29014         variants of the PCS.
29015         Reorganise RPC receiver generation to reduce differences between the
29016         structure of GARLIC and PolyORB RPC receivers.
29017         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
29018         PCS-specific.
29019         Simplify elaboration code for RCI packages.
29020
29021         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
29022         generation to reduce differences between the structure of GARLIC and
29023         PolyORB RPC receivers.
29024
29025         * s-stratt.adb: Fix typo in comment.
29026
29027 2005-01-03  Thomas Quinot  <quinot@adacore.com>
29028
29029         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
29030         copied from Make_Init_Call).
29031
29032         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
29033         reads and assignments on a temporary variable declared with appropriate
29034         discriminants.
29035
29036 2005-01-03  Robert Dewar  <dewar@adacore.com>
29037
29038         * i-c.adb (To_C): Raise CE if string is null and Append_Null
29039
29040 2005-01-03  Robert Dewar  <dewar@adacore.com>
29041
29042         * i-cstrin.adb (Update): Do not append a null in form called with a
29043         String. This avoids unintended behavior.
29044
29045 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
29046
29047         PR ada/17527
29048         * init.c: Fix warnings on Free BSD section.
29049
29050 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
29051
29052         PR ada/16949
29053         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
29054         xsinfo.adb).
29055
29056 2005-01-03  Vincent Celier  <celier@adacore.com>
29057
29058         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
29059         libraries when Unique_Compile is True (-u switch).
29060         (Gnatmake): ditto.
29061
29062 2005-01-03  Robert Dewar  <dewar@adacore.com>
29063
29064         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
29065         upper case letter or underscore after W, as allowed by spec.
29066
29067 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
29068
29069         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
29070         darwin port by using proper type definitions from header files.
29071         Use SIGTERM instead of SIGABRT for SIGADAABORT.
29072
29073 2005-01-03  Robert Dewar  <dewar@adacore.com>
29074
29075         * par.adb: Enhance error message handling for configuration file
29076         pragmas.
29077
29078 2005-01-03  Robert Dewar  <dewar@adacore.com>
29079
29080         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
29081         removed during the previous update (test properly for case of dividing
29082         largest negative number by -1, which generates overflow).
29083
29084 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
29085             Sergey Rybin  <rybin@adacore.com>
29086
29087         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
29088         to use as the defining identifier for a formal package.
29089         (Remove_Parent): If the instance takes place within (an instance of)
29090         a sibling, preserve private declarations of common parent.
29091
29092 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
29093
29094         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
29095         to determine whether one of the operands is a fixed-point type for
29096         which a user-defined multiplication or division operation might be
29097         defined.
29098
29099         * sem_res.adb (Valid_Conversion): The legality rules for conversions
29100         of access types are symmetric in Ada 2005: either designated type can
29101         be unconstrained.
29102
29103 2005-01-03  Vincent Celier  <celier@adacore.com>
29104
29105         * s-fileio.adb (Temp_File_Record): Change length of string component
29106         Name from L_tmpnam + 1 to max_path_len + 1.
29107
29108 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
29109
29110         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
29111         Self_Id.Deferral_Level = 0.
29112         (Do_Pending_Action): Move this function to the spec.
29113
29114         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
29115         Do_Pending_Action explicitely when needed, in case we're using
29116         No_Abort restrictions.
29117
29118         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
29119         deferral level since it will not get changed by the generated code.
29120         Keeping a default value of 1 would prevent some operations (e.g.
29121         select or delay) to proceed successfully.
29122
29123 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
29124             Robert Dewar  <dewar@adacore.com>
29125             Cyrille Comar  <comar@adacore.com>
29126
29127         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
29128         porting guide chapter (vms version).
29129         Revised doc title (removed "for native platforms") and subtitle.
29130         Add discussion on warning flag for obsolescent features. First we
29131         note that it applies to obsolete GNAT features, which was previously
29132         omitted. Second we contrast the behavior with that of the new
29133         Ada 2005 AI-368 restriction No_Obsolescent_Features.
29134         Preliminary rewriting of GNAT & libraries chapter in order to take
29135         into account default project locations & new project manager
29136         capabilities.
29137
29138 2005-01-03  Robert Dewar  <dewar@adacore.com>
29139
29140         * cstand.adb (Create_Operators): Clean up format and documentation of
29141         unary and binary operator result tables. No change in code, just
29142         reformatting and addition of comments.
29143
29144         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
29145         sem_ch2.adb: Minor reformatting
29146
29147         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
29148         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
29149         comments for Tree_Read and Tree_Write.
29150
29151 2005-01-03  Pascal Obry  <obry@adacore.com>
29152
29153         * exp_attr.ads: Minor reformatting.
29154
29155 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
29156
29157         * comperr.adb (Compiler_Abort): Add specialized message for GAP
29158         versions.
29159
29160 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
29161
29162         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
29163         whether the ancestor type is private, as may be the case with nested
29164         instantiations.
29165
29166 2004-12-30  Sohail Somani  <sohail@sohailsomani.com>
29167
29168         PR ada/19128
29169         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
29170
29171 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
29172
29173         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
29174         * utils2.c (build_unary_op): Likewise.
29175
29176 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29177
29178         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
29179
29180 2004-12-19  Richard Henderson  <rth@redhat.com>
29181
29182         * trans.c (gigi): Update gimplify_body call.
29183
29184 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
29185
29186         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
29187
29188 2004-12-07  Ed Falis  <falis@adacore.com>
29189
29190         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
29191         current task being suspended.
29192
29193         * init.c (__gnat_clear_exception): added to reset VxWorks exception
29194         count.
29195         (__gnat_map_signal): removed test for current task being suspended.
29196
29197 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
29198
29199         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
29200         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
29201         targets (such as AAMP).
29202
29203 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
29204
29205         * atree.adb (Visit_Itype): Create a new name for the generated itype,
29206         because the back-end may otherwise treat it as a redefinition of the
29207         old symbol.
29208
29209 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
29210
29211         * back_end.adb (Scan_Back_End_Switches): Accept --param.
29212
29213         * lang-specs.h: Accept --param.
29214
29215 2004-12-07  Vincent Celier  <celier@adacore.com>
29216
29217         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
29218         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
29219         Current_Body_Suffix => Ada_Body_Suffix).
29220         Take into account Externally_Built attribute.
29221
29222         * clean.adb (In_Extension_Chain): Always return False when one of the
29223         parameter is No_Project.
29224         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
29225         Ada_Language_Index).
29226         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
29227         Process_Languages for procedure Parse).
29228
29229         * gnatcmd.adb (Carg_Switches): New table.
29230         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
29231         Adapt to name changes in package Prj (Current_Spec_Suffix =>
29232         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
29233
29234         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
29235         Header_Num and function Hash are now declared in package Prj,
29236         not Prj.Com.
29237
29238         * prj.adb (Suffix_Of): New function.
29239         (Set (Suffix)): New procedure.
29240         (Hash): One function moved from Prj.Com
29241         (Is_Present, Language_Processing_Data_Of): New functions
29242         (Set): Two new procedures
29243         (Add_Language_Name, Display_Language_Name): New procedures
29244
29245         * prj.ads: (Suffix_Of): New function
29246         (Set (Suffix)): New procedure
29247         Add several types and tables for multi-language support.
29248         (Header_Num): Type moved from Prj.Com
29249         (Hash): Two functions moved from Prj.Com
29250         (Is_Present, Language_Processing_Data_Of): New functions
29251         (Set): Two new procedures
29252         (Add_Language_Name, Display_Language_Name): New procedures
29253         (Naming): Component name changes:
29254         Current_Spec_Suffix => Ada_Spec_Suffix,
29255         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
29256         Impl_Suffixes, Supp_Suffixes.
29257         (Project_Data): New components: Externally_Built, Supp_Languages,
29258         First_Language_Processing, Supp_Language_Processing, Default_Linker,
29259         Default_Linker_Path.
29260
29261         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
29262         new package Language_Processing with its attributes (Compiler_Driver,
29263         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
29264         Binder_Driver, Default_Linker).
29265
29266         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
29267         (Header_Num): Type moved to package Prj
29268
29269         * prj-env.adb: Adapt to name changes in package Prj
29270         (Current_Spec_Suffix => Ada_Spec_Suffix,
29271         Current_Body_Suffix => Ada_Body_Suffix).
29272
29273         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
29274         default to the project path, except the "-" is one of the directories
29275         in env var ADA_PROJECT_PATH.
29276         (Current_Project_Path): Global variable, replacing Project_Path
29277         that was in the body of Prj.Part.
29278         (Project_Path): New function
29279         (Set_Project_Path): New procedure
29280         Initialize Current_Project_Path during elaboration of the package
29281         Remove dependency on Prj.Com, no longer needed
29282
29283         * prj-ext.ads (Project_Path): New function
29284         (Set_Project_Path): New procedure
29285
29286         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
29287         suffix is defined for language <lang>.
29288         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
29289         accessing directly the components of Naming.
29290         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
29291         Reorganise of this package.
29292         Break procedure Check in several procedures.
29293
29294         * prj-nmsc.ads: Replace all procedures (Ada_Check,
29295         Other_Languages_Check and Language_Independent_Check) with a single
29296         procedure Check.
29297
29298         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
29299         Process_Languages, no longer needed.
29300
29301         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
29302         Current_Project_Path.
29303         Remove elaboration code, moved to the body of Prj.Ext
29304         Use new function Prj.Ext.Project_Path instead of old variable
29305         Project_Path.
29306         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
29307         When comparing with project paths on the stack, first put the resolved
29308         path in canonical case.
29309         (Parse_Single_Project): Set the path name of the project file in the
29310         tree to the normalized path.
29311
29312         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
29313         parameter Process_Languages, no longer needed.
29314         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
29315         Other_Languages_Check.
29316
29317         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
29318         to store the resolved canonical path of the project file.
29319         Remove dependency to Prj.Com, no longer needed
29320
29321         * prj-util.adb: Adapt to name changes in package Prj
29322         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
29323         Ada_Body_Suffix).
29324
29325         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
29326         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
29327         Externally_Built, Include_Option, Language_Processing.
29328
29329         * makegpr.adb: Numerous changes due to changes in packages
29330         Prj and Prj.Nmsc.
29331
29332         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
29333         default to the project path, except whe "-" is one of the directories
29334         in env var ADA_PROJECT_PATH.
29335         (Gnatls): In verbose mode, add the new section "Project Search Path:"
29336
29337 2004-12-07  Robert Dewar  <dewar@adacore.com>
29338
29339         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
29340
29341         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
29342         set -gnatR3m mode.
29343
29344         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
29345         flag. No longer needed now that we handle this in gnat1drv.adb.
29346
29347         * repinfo.ads: Minor reformatting
29348
29349 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29350             Olivier Hainque  <hainque@adacore.com>
29351             Eric Botcazou  <ebotcazou@adacore.com>
29352
29353         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
29354         TYPE_SIZE_UNIT of result type if SIZE is not specified.
29355         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
29356         of a bitfield, which we know is useless and causes trouble because of
29357         alignment implications.
29358
29359         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
29360         BSS sections.
29361         (process_attributes): Clear DECL_COMMON again when a section attribute
29362         is present.
29363         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
29364         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
29365         (create_field_decl): Special case ADDRESSABLE negative to mean
29366         "no bitfield creation", to be used by make_aligning_type. Don't
29367         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
29368         fields claimed addressable still have to be bitfields. Use
29369         value_factor_p instead of a raw binop construction to check for the
29370         position's alignment.
29371
29372 2004-12-07  Geert Bosch  <bosch@adacore.com>
29373
29374         * eval_fat.adb: Revert previous change.
29375
29376 2004-12-07  Thomas Quinot  <quinot@adacore.com>
29377             Ed Schonberg  <schonberg@adacore.com>
29378
29379         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
29380         with an implicit dereference as its prefix, use
29381         Insert_Explicit_Dereference instead of merely rewriting the prefix into
29382         an explicit dereference. This ensures that a reference to the original
29383         prefix is generated, if appropriate.
29384
29385         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
29386         dereference is rewritten to an explicit one, generate a reference to
29387         the entity denoted by its prefix using the original prefix node, so
29388         the dereference can be properly recorded as a read of the denoted
29389         access value, if appropriate.
29390
29391         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
29392         emitting 'assigned but never read' warning on a variable on the basis
29393         that it has an access type.
29394         (Check_References): Emit unreferenced warning when the scope is a
29395         subprogram body.
29396
29397 2004-12-07  Robert Dewar  <dewar@adacore.com>
29398             Ed Schonberg  <schonberg@adacore.com>
29399
29400         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
29401         intrinsic
29402
29403         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
29404         leaving call unchanged.
29405         This deals with the case where the pragma Import specified
29406         an external name, to be handled by the back end.
29407
29408         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
29409         subprogram which is Imported with convention Intrinsic if an
29410         External_Name argument is specified.
29411         (Process_Import_Or_Interface): Properly diagnose link name argument.
29412         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
29413         with Sem_Ch6.Cannot_Inline.
29414         (Process_Inline): Provide separate warning for inapplicable inline
29415         pragma.
29416         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
29417         treatment is uniform on different targets.
29418
29419 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
29420
29421         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
29422         construct is rewritten, preserve end label to permit source navigation.
29423
29424 2004-12-07  Thomas Quinot  <quinot@adacore.com>
29425
29426         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
29427         Specific_Build_Stub_Target): New subprograms.
29428         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
29429         the PCS implementation used, using the above PCS-customized subprograms.
29430         Minor reformatting.
29431         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
29432         for generation of DSA code targeted to the PolyORB PCS.
29433         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
29434         implementation of the partition communication subsystem in ancillary
29435         subprograms.
29436         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
29437         PolyORB_Support.Build_Stub_Type): New subrograms containing the
29438         PCS-specific part of Add_Stub_Type.
29439         (Insert_Partition_Check): Use runtime library function to perform
29440         E.4(19) check.
29441
29442         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
29443         (RE_Same_Partition): New entity, from s-parint.
29444
29445         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
29446
29447 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
29448
29449         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
29450         Output the copyright message on a separate line from the version
29451         message.
29452
29453 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
29454
29455         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
29456         compile-time warning.
29457
29458 2004-12-07  Robert Dewar  <dewar@adacore.com>
29459
29460         * g-regpat.adb: (Match): Change a misuse of or to or else
29461
29462 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
29463
29464         * lib-xref.adb:
29465         (Generate_Reference): Handle properly a reference to an entry formal,
29466          when an accept statement has a pragma Unreferenced for it.
29467
29468         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
29469         and the Has_Pragma_Unreferenced flag for each formal before analyzing
29470         the body, to ensure that warnings are properly emitted for each accept
29471         statement of a given task entry.
29472
29473 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
29474
29475         * Makefile.in: Add support for foreign threads on VMS.
29476
29477 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29478
29479         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
29480         Remove.
29481         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
29482
29483         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
29484
29485         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
29486         exception.
29487         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
29488
29489 2004-12-07  Robert Dewar  <dewar@adacore.com>
29490
29491         * nlists.adb (Prepend_Debug): Remove parameters and nest within
29492         Prepend.
29493         (Remove_Next_Debug): Same fix
29494
29495         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
29496         maintain back pointers now, though we did not used to, and comments
29497         were out of date).
29498         (Prepend): Remove pragma Inline.
29499         (Remove_Next): Same cleanup
29500
29501 2004-12-07  Thomas Quinot  <quinot@adacore.com>
29502
29503         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
29504         used to record an implicit dereference as a read operation on its
29505         prefix when operating under -gnatc. Necessary to avoid spurious
29506         'variable assigned but never read' warnings in that mode.
29507         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
29508         is a non-overloaded implicit dereference, call the above subprogram to
29509         ensure proper recording of references.
29510
29511 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
29512
29513         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
29514         to be resolved later as part of Analyze_Iteration_Scheme's call to
29515         Make_Index.
29516
29517 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
29518
29519         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
29520         prefix is not a scalar type, place error message on prefix, not on
29521         type entity.
29522
29523 2004-12-07  Bernard Banner  <banner@adacore.com>
29524
29525         * vxaddr2line.adb: Add support for x86 vxworks
29526
29527 2004-12-07  Thomas Quinot  <quinot@adacore.com>
29528
29529         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
29530         documentation of the behaviour of these functions when passed an IP
29531         address that has no record in the system hosts database and no reverse
29532         record in the DNS.
29533
29534         * cstand.adb, a-tags.ads: Fix typos in comment.
29535
29536 2004-12-07  Robert Dewar  <dewar@adacore.com>
29537
29538         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
29539         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
29540         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
29541         s-poosiz.ads: Minor reformatting
29542
29543         * make.adb: Minor reformatting
29544         Add some ??? comments asking for more comments
29545
29546         * s-poosiz.adb: Minor reformatting
29547         Add comments on alignment requirement
29548
29549         * sinfo.ads: Remove obsolete comment and fix typo.
29550
29551 2004-12-07  Vincent Celier  <celier@adacore.com>
29552             Sergey Rybin  <rybin@adacore.com>
29553
29554         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
29555         Files" with the new tool and package names.
29556         Reformatting to suppress most of the warnings for line too long
29557         Document the new section "Project Search Path:" in the output of
29558         gnatls -v.
29559         Add gnatmetric section
29560
29561 2004-12-07  Vincent Celier  <celier@adacore.com>
29562
29563         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
29564         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
29565         and -eit to -ept. Added qualifier
29566         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
29567
29568 2004-11-27  Andreas Schwab  <schwab@suse.de>
29569
29570         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
29571
29572 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
29573
29574         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
29575         internal implementation unit GNAT.Sockets.Thin,
29576         as their usage for sockets is non-portable (using the read and write
29577         functions from the system runtime library is fine on UNIX but won't
29578         work under Windows).
29579
29580         * mingw32.h: Update copyright notice.
29581
29582 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
29583
29584         * ada-tree.h: Minor reformatting of previous change to avoid lines
29585         longer than 79 characters.
29586
29587 2004-11-25  Olivier Hainque  <hainque@adacore.com>
29588
29589         * tb-gcc.c: GCC infrastructure based implementation of
29590         __gnat_backtrace.
29591
29592 2004-11-24  Steven Bosscher  <stevenb@suse.de>
29593
29594         * misc.c (gnat_post_options): Don't clear
29595         flag_inline_functions.
29596
29597 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
29598
29599         PR ada/17986
29600         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
29601         tree.
29602
29603 2004-11-21  Andreas Jaeger  <aj@suse.de>
29604
29605         * stylesw.adb: Change Style_Check_Subprogram_Order to
29606         Style_Check_Order_Subprograms.
29607
29608 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
29609
29610         * adaint.h, adaint.c
29611         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
29612         to avoid warnings.
29613         Add also a cast to kill another warning.
29614         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
29615         parameter with the priority class of the parent process instead of
29616         always using the NORMAL_PRIORITY_CLASS.
29617         (__gnat_dup): New function.
29618         (__gnat_dup2): New function.
29619         (__gnat_is_symbolic_link): Enable the effective body of this
29620         function when __APPLE__ is defined.
29621
29622         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
29623         Update comments.
29624
29625 2004-11-18  Olivier Hainque  <hainque@adacore.com>
29626
29627         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
29628         address of which may be used to represent "others" and "all others"
29629         choices in exception tables, instead of the current harcoded
29630         (void *)0 and (void *)1.
29631         (Setup_Exception): Do nothing in the GNAT SJLJ case.
29632
29633         * gigi.h (others_decl, all_others_decl): New decls representing the
29634         new Others_Value and All_Others_Value objects.
29635         (struct attrib): Rename "arg" component as "args", since GCC expects a
29636         list of arguments in there.
29637
29638         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
29639         corresponding objects exported by a-exexpr, instead of hardcoded dummy
29640         addresses.
29641
29642         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
29643         others_decl and all_others_decl instead of hardcoded dummy addresses
29644         to represent "others" and "all others" choices, which is cleaner and
29645         more flexible with respect to the possible eh pointer encoding policies.
29646
29647         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
29648         (process_attributes): Account for the naming change of the "args"
29649         attribute list entry component.
29650
29651         * decl.c (build_attr_list): Rename into prepend_attributes to allow
29652         cumulating attributes for different entities into a single list.
29653         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
29654         attributes for the current entity and propagate first subtype
29655         attributes to other subtypes.
29656         <E_Procedure>: Attribute arguments are attr->args and not
29657         attr->arg any more.
29658         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
29659         argument provided, as this is what GCC expects. Use NULL_TREE instead
29660         of 0 for trees.
29661
29662 2004-11-18  Robert Dewar  <dewar@adacore.com>
29663
29664         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
29665         Minor reformatting througout (including new function specs)
29666         Add ??? comments asking for clarification.
29667
29668 2004-11-18  Thomas Quinot  <quinot@adacore.com>
29669
29670         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
29671         incomplete duplicate implementation of this subprogram from butil.
29672
29673 2004-11-18  Thomas Quinot  <quinot@adacore.com>
29674
29675         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
29676         procedures factors the common processing for building an RPC receiver
29677         for an RCI package or an RACW type.
29678         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
29679         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
29680         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
29681         in use.
29682         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
29683         Add_RACW_Features.
29684         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
29685         Add_RAST_Features.
29686         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
29687         distribution subprogram identifiers that are either subprogram numbers
29688         or strings.
29689         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
29690         string distribution identifiers assigned to a given subprogram.
29691         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
29692         (Add_RAS_Dereference_TSS): Add comments.
29693         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
29694         is not referenced yet because it will be used by the PolyORB DSA
29695         implementation.
29696         (Insert_Partition_Check): Remove fossile code.
29697         (First_RCI_Subprogram_Id): Document this constant.
29698         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
29699         RAS_Access TSS.
29700         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
29701         replaced with calls to Get_Library_Unit_Name_String. Previously there
29702         were several instances of the same code in different locations in the
29703         compiler; this checkin completes the replacement of all of these
29704         instances with calls to a common subprogram.
29705         Minor reformatting.
29706
29707         * sem_dist.adb: Remove comment noting that RPC receiver generation
29708         should be disabled for RACWs that implement RASs.
29709         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
29710
29711         * sem_util.ads, sem_util.adb (Has_Stream): New function
29712         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
29713         qualified name of a library unit into the name buffer.
29714         (Note_Possible_Modification): Generate a reference only
29715         if the context comes from source.
29716
29717         * snames.ads (PCS_Names): New subtype corresponding to names of
29718         supported implementations of the Partition Communication Subsystem
29719         (PCS) (i.e. the runtime library support modules for the distributed
29720         systems annex).
29721
29722 2004-11-18  Robert Dewar  <dewar@adacore.com>
29723             Ed Schonberg  <schonberg@adacore.com>
29724
29725         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
29726         (Has_Rep_Pragma): New function
29727         (Has_Attribute_Definition_Clause): New function
29728         (Record_Rep_Pragma): Moved here from sem_ch13.adb
29729         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
29730
29731         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
29732
29733         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
29734         (Expand_Pragma_Psect_Object): New procedure
29735         These procedures contain the revised and cleaned up processing for
29736         these two pragmas. This processing was formerly in Sem_Prag, but
29737         is more appropriately moved here. The cleanup involves making sure
29738         that the pragmas are properly attached to the tree, and that no
29739         nodes are improperly shared.
29740
29741         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
29742         pragmas to Exp_Prag, which is more appropriate.
29743         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
29744         check for duplicates Remove use of Is_Psected flag, no longer needed.
29745         Use new Make_String_Literal function with string.
29746
29747         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
29748         that are functions return universal values, that have to be converted
29749         to the context type.
29750         Use new Make_String_Literal function with string.
29751         (Get_Stream_Convert_Pragma): New function, replaces the use of
29752         Get_Rep_Pragma, which had to be kludged to work in this case.
29753
29754         * freeze.adb: Use new Has_Rep_Pragma function
29755
29756         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
29757         function with string.
29758         Use new Has_Rep_Pragma function.
29759
29760         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
29761         string argument.
29762
29763 2004-11-18  Robert Dewar  <dewar@adacore.com>
29764
29765         * errout.ads, errout.adb: (First_Sloc): New function
29766
29767         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
29768         check (-gnatyx) instead of being included as a redundant construct
29769         warning.
29770
29771         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
29772         Style_Check_Order_Subprograms.
29773
29774         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
29775         stylesw.adb: Add Style_Check_Xtra_Parens
29776
29777         * usage.adb: Add line for -gnatyx (check extra parens)
29778
29779         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
29780
29781 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
29782             Robert Dewar  <dewar@adacore.com>
29783
29784         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
29785         discriminant of a constrained subtype, analyze the copy of the
29786         corresponding constraint, because in some cases it may be only
29787         partially analyzed.
29788         Removes long-lived ??? comments.
29789
29790         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
29791         handled controlled or secondary-stack expressions within the
29792         iteration_scheme of a loop.
29793
29794         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
29795         bounds that may contain functions calls, to prevent memory leaks when
29796         the bound contains a call to a function that uses the secondary stack.
29797         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
29798         generate temporaries for loop bounds that might contain function calls
29799         that require secondary stack and/or finalization actions.
29800
29801         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
29802         selected component and the selector is overloadable (not just a
29803         function) treat as function call, Analyze_Call will disambiguate if
29804         necessary.
29805         (Analyze_Selected_Component): Do not generate an actual subtype for the
29806         selected component if expansion is disabled. The actual subtype is only
29807         needed for constraint checks.
29808         (Analyze_Allocator): If restriction No_Streams is set, then do
29809         not permit objects to be declared of a stream type, or of a
29810         composite type containing a stream.
29811
29812         * restrict.ads: Remove the a-stream entry from Unit_Array, since
29813         No_Streams no longer prohibits with'ing this package.
29814
29815         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
29816         discriminants, but the parent base has unknown discriminants, there is
29817         no discriminant constraint to inherit. Such a discrepancy can arise
29818         when the actual for a formal type with unknown discriminants is a
29819         similar private type whose full view has discriminants.
29820         (Analyze_Object_Declaration): If restriction No_Streams is set, then
29821         do not permit objects to be declared of a stream type, or of a
29822         composite type containing a stream.
29823
29824 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
29825
29826         * exp_dbug.ads: Update documentation to reflect simpler encoding for
29827         protected operations.
29828
29829         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
29830         generated name, it complicates decoding in gdb and hinders debugging
29831         of protected operations.
29832         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
29833         flag for the protected entry barrier function.
29834         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
29835         flag for the protected entry function.
29836
29837 2004-11-18  Nicolas Setton  <setton@adacore.com>
29838
29839         * expect.c: Define __unix__ when __APPLE__ is defined.
29840
29841         * Makefile.in: Inform the value of the variable GMEM_LIB in the
29842         Darwin-specific section.
29843
29844         * lang-specs.h: Change the placement of the %1 marker.
29845         Works around the fact that gcc adds -fPIC by default under Darwin.
29846
29847 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
29848
29849         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
29850         type of the object with the packed array type, set the Analyzed flag
29851         on the object if it is an entity or simple indexed component, to avoid
29852         spurious type errors.
29853
29854 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
29855
29856         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
29857         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
29858         separate line from the version message.
29859
29860 2004-11-18  Ed Falis  <falis@adacore.com>
29861
29862         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
29863         vthreads.
29864         (init_float): Eliminate initialization of floating point status for
29865         AE653. The instructions have no effect for vThreads.
29866
29867 2004-11-18  Vincent Celier  <celier@adacore.com>
29868
29869         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
29870         gnatbind is invoked with -shared.
29871
29872 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
29873
29874         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
29875         for Detect_Blocking which is redundant with the check done within the
29876         procedure Protected_Single_Entry_Call.
29877         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
29878         Detect_Blocking which is redundant with the check done within the
29879         procedure Protected_Single_Entry_Call.
29880
29881 2004-11-18  Vincent Celier  <celier@adacore.com>
29882
29883         * makegpr.adb (Compile): Put the compiling switches (in package
29884         Compiler and on the command line) immediately after "-c", instead of
29885         at the end of the command line invocation of the compiler, when
29886         compiling a non-Ada file.
29887         (Build_Global_Archive): When there is no need to rebuild the archive,
29888         set Global_Archive_Exists, so that the archive is passed to the linker
29889         if one is needed.
29890
29891 2004-11-18  Robert Dewar  <dewar@adacore.com>
29892             Sergey Rybin  <rybin@adacore.com>
29893
29894         * gnat_ugn.texi:
29895         Remove extra paren check from list of checks for redundant constructs
29896         Add documentation of new -gnatyx style check (check extra parens)
29897         Remove paragraph about gnatelim debug options.
29898
29899         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
29900         objects rather than forbidding dependencies on the package Ada.Streams.
29901
29902         * sinfo.ads: Add ??? note that we should document pragmas passed to
29903         back end.
29904
29905         * g-expect.ads: Fix a few typos in the comments.
29906
29907 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
29908
29909         * misc.c (gnat_handle_option): Use %< and %> for quoting in
29910         warning message.
29911
29912 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
29913
29914         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
29915
29916 2004-11-07  Andreas Schwab  <schwab@suse.de>
29917
29918         * Makefile.in (install-gnatlib): Remove spurious hyphen.
29919
29920 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
29921
29922         PR ada/18228
29923         * Makefile.in (darwin): Set soext to .dylib.
29924
29925 2004-10-26  Vincent Celier  <celier@gnat.com>
29926             Thomas Quinot   <quinot@act-europe.fr>
29927
29928         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
29929         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
29930         there is no use of GNAT.Sockets.Constants.
29931         Remove remaining pragma Import for C_Write
29932         Remove C_Read and C_Write from internal implementation unit
29933         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
29934         the read and write functions from the system runtime library is fine
29935         on UNIX but won't work under Windows).
29936
29937         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
29938         (Check_Selector): Use C_Recv instead of C_Read.
29939         Selectors are the GNAT.Sockets abstraction to perform a select()
29940         call on a set of descriptors. To allow abortion of an ongoing
29941         select operation, some data is written to a dedicated socket that
29942         is always monitored.
29943         Under Windows, the write and read library functions cannot operate
29944         on sockets, so we need to use send and recv instead, which is portable
29945         across all supported platforms.
29946
29947         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
29948         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
29949         (using the read and write functions from the system runtime library is
29950         fine on UNIX but won't work under Windows).
29951
29952 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
29953
29954         * mlib-tgt-darwin.adb: New file.
29955
29956         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
29957         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
29958         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
29959         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
29960         subprogram body.
29961
29962         * Makefile.in: Add support for building shared libraries under Darwin.
29963         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
29964         the low level EH init subprogram to be called from __gnat_initialize.
29965
29966         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
29967         indicates which options to pass to the archive indexer.
29968
29969         * mlib-utl.adb: Add support for calling ranlib with additional
29970         options. This is needed for instance under Mac OS X.
29971         (Ranlib_Options): New global variable, used to store the potential
29972         options to pass to ranlib.
29973         (Ar): Use Ranlib_Options when spawning ranlib.
29974         (Initialize): Set the value of ranlib option.
29975
29976 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
29977
29978         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
29979         instead of 8K, to reflect the real potential needs for stack-checking
29980         in the ZCX case.
29981
29982 2004-10-26  Pascal Obry  <obry@gnat.com>
29983
29984         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
29985
29986         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
29987         Windows only the initial thread stack size can be set so it is good to
29988         start we a low stack size.
29989         The OS will adjust the size as needed.
29990
29991 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
29992             Nicolas Setton  <setton@act-europe.fr>
29993
29994         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
29995         "__unix__" instead of "unix".
29996         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
29997         sections were just mistakenly ignored. The former is
29998         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
29999         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
30000         of hpux. This prevents an unwanted definition of the symbol
30001         convert_addresses in adaint.o.
30002
30003 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
30004
30005         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
30006         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
30007
30008 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
30009
30010         * a-filico.ads, a-filico.adb: fix incorrect header.
30011
30012 2004-10-26  Javier Miranda  <miranda@gnat.com>
30013
30014         * a-ststio.ads: Fix typo in identifier
30015
30016 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
30017
30018         * sem_ch4.adb: Minor reformatting.
30019
30020 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30021
30022         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
30023         enabled, check the result of unary and binary operations when the
30024         expression is the right-hand side of an assignment.
30025
30026 2004-10-26  Vincent Celier  <celier@gnat.com>
30027
30028         * clean.adb (Delete): Do not output warnings when in quiet output and
30029         not in verbose mode.
30030         (Force_Deletions): New Boolean flag, defaulted to False
30031         (Delete): Only delete a file if it is writable, and when
30032         Force_Deletions is True.
30033         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
30034         (Usage): Line for new switch -f
30035         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
30036         own.
30037
30038 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
30039
30040         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
30041         JM type only if its size matches that of the wrapper.  When a size is
30042         prescribed and the field is not aliased, remove the wrapper of a JM
30043         type only if the size is not greater than that of the packed array.
30044         (gnat_to_gnu_entity): Change the extension of packed array wrappers
30045         from LJM to JM.
30046
30047 2004-10-26  Geert Bosch  <bosch@gnat.com>
30048
30049         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
30050         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
30051         (Pred): Implement in terms of Succ.
30052
30053 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30054
30055         * exp_aggr.adb (Safe_Component): An aggregate component that is an
30056         unchecked conversion is safe for in-place use if the expression of the
30057         conversion is safe.
30058         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
30059         be expandable in place even if the aggregate does not come from source.
30060         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
30061         designated object of an allocator in place, rather than building it
30062         first on the stack. The previous scheme forces a full copy of the array,
30063         and may be altogether unsusable if the size of the array is too large
30064         for stack allocation.
30065
30066 2004-10-26  Robert Dewar  <dewar@gnat.com>
30067
30068         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
30069         compares if the component is atomic.
30070
30071         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
30072         array assignment if the component type is atomic.
30073
30074 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30075             Eric Botcazou  <ebotcazou@act-europe.fr>
30076
30077         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
30078         is aliased and is a by_reference type, do not pass by copy.
30079         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
30080         detect whether the call is in the right side of an assignment or
30081         the expression of an object declaration.  Recurse on component
30082         association within aggregates.
30083         Call it in the condition that determines whether the temporary is
30084         necessary for correct stack-checking.
30085
30086 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
30087
30088         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
30089         RACW_Type, used in the PolyORB version.
30090         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
30091         version and the GARLIC version.
30092
30093         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
30094         Rename RCI_Info to RCI_Locator for better consistency between the
30095         GARLIC and PolyORB versions of the distributed systems annex.
30096         (DSA_Implementation_Name): This enumeration lists the possible
30097         implementations of the Partition Communication Subsystem for the
30098         Distributed Systems Annex (DSA). The three available implementations
30099         are the dummy stub implementation (No_DSA), and two versions based on
30100         two different distribution runtime libraries: GARLIC and PolyORB. Both
30101         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
30102         technology.
30103         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
30104         that organization.
30105
30106         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
30107         between the GARLIC and PolyORB versions of the distributed systems
30108         annex.
30109         Remove RE_Unbounded_Reclaim_Pool since it is unused.
30110
30111 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
30112
30113         * gnat1drv.adb: Suppress calling the back end when
30114         Frontend_Layout_On_Target is true.
30115
30116 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
30117
30118         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
30119         Set_Read_Only): New subprograms.
30120         These new routines allow the user to set or unset the Owner execute
30121         and Owner write permission flags on a file.
30122
30123         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
30124         GNAT.OS_Lib.Set_Executable instead of rolling our own.
30125
30126 2004-10-26  Matthew Gingell  <gingell@gnat.com>
30127
30128         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
30129
30130 2004-10-26  Pascal Obry  <obry@gnat.com>
30131
30132         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
30133         memory before the faulting page we properly test the process read
30134         access for this address using appropriate Win32 routine.
30135         (HPUX sections): guard with "__hpux__" instead of "hpux".
30136
30137 2004-10-26  Robert Dewar  <dewar@gnat.com>
30138
30139         * lib-xref.adb (Generate_Reference): Don't complain about reference to
30140         entry parameter if pragma Unreferenced set, since we do not properly
30141         handle the case of multiple parameters.
30142
30143 2004-10-26  Vincent Celier  <celier@gnat.com>
30144
30145         * prj-env.adb: (Contains_ALI_Files): New Boolean function
30146         (Ada_Objects_Path.Add): For a library project, add to the object path
30147         the library directory only if there is no object directory or if the
30148         library directory contains ALI files.
30149         (Set_Ada_Paths.Add.Recursive_Add): Ditto
30150
30151 2004-10-26  Vincent Celier  <celier@gnat.com>
30152
30153         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
30154         extension of library projects.
30155
30156         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
30157         path defaults to ".:<prefix>/lib/gnat".
30158         (Parse): For an extending all project, allow direct import of a project
30159         that is virtually extended.
30160
30161         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
30162         the specified name is directly imported, return its ID. Otherwise, if
30163         an extension of this project is imported, return the ID of the
30164         extension.
30165
30166 2004-10-26  Robert Dewar  <dewar@gnat.com>
30167
30168         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
30169         (Sub3): New procedure, used by Scaled_Divide
30170         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
30171         correct more than one instance of failure to propagate carries
30172         correctly.
30173         (Double_Divide): Handle overflow case of largest negative number
30174         divided by minus one.
30175
30176         * s-arit64.ads (Double_Divide): Document that overflow can occur in
30177         the case of a quotient value out of range.
30178         Fix comments.
30179
30180 2004-10-26  Robert Dewar  <dewar@gnat.com>
30181
30182         * s-bitops.adb (Bit_Eq): Remove redundant check.
30183
30184         * s-bitops.ads: Minor comment updates
30185         Change some occurrences of Address to System.Address
30186
30187         * s-carsi8.ads: Fix minor cut-and-paste error in comments
30188
30189 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30190
30191         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
30192         accessibility check to prefix that is a protected operation.
30193
30194 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30195
30196         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
30197         empty, post message on stub.
30198
30199 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30200             Javier Miranda  <miranda@gnat.com>
30201
30202         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
30203         current instance appears within a unit that is directly in the context
30204         of the main unit.
30205         Used to determine whether the body of the instance should be analyzed
30206         immediately after its spec, to make its subprogram bodies available
30207         for front-end inlining.
30208         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
30209         constraint is not allowed on the component type (AARM 12.5.3(3))
30210
30211 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
30212
30213         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
30214         'Storage_Pool): enhance, document & limit detection of non-sharable
30215         internal pools.
30216
30217         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
30218
30219         * s-pooglo.ads: Add more documentation now that this pool is properly
30220         documented.
30221
30222 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30223
30224         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
30225         or protected type with discriminants, do not constrain the
30226         corresponding record type if the subtype declaration has no
30227         discriminant constraints. This can be the case in source code, or in
30228         the subtype declaration created to rename an actual type within an
30229         instantiation.
30230
30231 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30232
30233         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
30234         different kind of stub (possibly wrong name for file), do not check
30235         for conformance.
30236         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
30237         includes call to some function that returns an unconstrained type, do
30238         not inline.
30239
30240 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30241
30242         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
30243         appear in the code for the main unit. Dependencies among units in the
30244         context of the main unit are established when those other units are
30245         compiled. Otherwise spurious elaboration constraints can generate
30246         incorrect elaboration circularities.
30247
30248 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
30249             Ed Schonberg   <schonberg@gnat.com>
30250
30251         * sem_util.adb (Is_Aliased_View): Defend against the case where this
30252         subprogram is called with a parameter that is not an object name. This
30253         situation arises for some cases of illegal code, which is diagnosed
30254         later, and in this case it is wrong to call Is_Aliased, as that might
30255         cause a compiler crash.
30256         (Explain_Limited_Type): Refine previous fix to include
30257         inherited components of derived types, to provide complete information.
30258
30259         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
30260         is the prival for a protected object.
30261         It is necessary to mark this entity as a variable, in addition to
30262         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
30263         modified to avoid checking the Aliased flag on entities that are not
30264         objects. (Checking that flag for non-objects is erroneous and could
30265         lead to a compiler crash).
30266
30267 2004-10-26  Robert Dewar  <dewar@gnat.com>
30268
30269         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
30270         X_Frac = 0.5, then we know that the number X must be positive.
30271         (Succ): Remove the same redundant test, and also fix the primary test
30272         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
30273         Minor reformatting
30274         (Decompose): Add fuller comments to spec
30275
30276 2004-10-26  Pascal Obry  <obry@gnat.com>
30277
30278         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
30279         validity (process must have read access). Set to 0 in all other cases.
30280         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
30281         violation on Win32.
30282         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
30283         segmentation violation.
30284
30285 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
30286
30287         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
30288         whose type is a constructed subtype of an aliased object with an
30289         unconstrained nominal subtype, convert the actual to the constructed
30290         subtype before taking its address.
30291
30292 2004-10-26  Vincent Celier  <celier@gnat.com>
30293
30294         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
30295         (Is_Path_Name_Case_Sensitive): New function
30296
30297         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
30298         (Base_Name, Simple_Name, Current_Directory, Compose,
30299         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
30300         the result.
30301
30302 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
30303             Vasiliy Fofanov  <fofanov@act-europe.fr>
30304             Vincent Celier   <celier@gnat.com>
30305
30306         * gnat_ugn.texi: Generalize "finding memory problems" section into a
30307         "memory management issues" section and document some of the useful
30308         memory pools provided as part of the GNAT library.
30309         Remove "virtual" from declaration of A::method2 in
30310         the simple example of Ada/C++ mixed system.
30311         Library Projects may be virtually extended: their virtual extensions
30312         are not Library Projects.
30313         Added section on extending project hierarchies.
30314
30315 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
30316
30317         * adaint.c (__gnat_get_libraries_from_registry): Cast value
30318         to LPBYTE.
30319         (__gnat_portable_spawn): Remove const.
30320
30321         * mingw32.h (MAXPATHLEN): Check for previous definition.
30322
30323 2004-10-17  Matthias Klose  <doko@debian.org>
30324
30325         * gnatvsn.ads: Set gnat library version to 4.0.
30326
30327 2004-10-05  Vincent Celier  <celier@gnat.com>
30328
30329         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
30330
30331 2004-10-04  Laurent Guerby  <laurent@guerby.net>
30332
30333         PR ada/15156
30334         * Makefile.in: Define and use RANLIB_FLAGS.
30335
30336 2004-10-04  Pascal Obry  <obry@gnat.com>
30337
30338         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
30339         other x86 platforms).
30340
30341 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
30342
30343         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
30344         in general and triggers stack alignment adjustment for thread entry
30345         points on targets where this is necessary.
30346
30347 2004-10-04  Bernard Banner  <banner@gnat.com>
30348
30349         PR ada/13897
30350         * Makefile.in: Add section for powerpc linux
30351         Add variant i-vxwork-x86.ads
30352
30353         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
30354
30355 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
30356
30357         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
30358         table registration calls when need be. Ensures no reference to the crt
30359         ctors symbol are issued in the SJLJ case, which avoids possible
30360         undefined symbol errors in the case of modules to be statically linked
30361         with the kernel.
30362
30363 2004-10-04  Javier Miranda  <miranda@gnat.com>
30364
30365         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
30366         in-line the code corresponding to subprogram Analyze_Actuals. In
30367         addition, analyze the actuals only in case of subprogram call.
30368
30369 2004-10-04  Ed Falis  <falis@gnat.com>
30370
30371         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
30372
30373 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
30374
30375         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
30376         in the documentation.
30377
30378 2004-10-04  Robert Dewar  <dewar@gnat.com>
30379
30380         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
30381         IF and CASE.
30382         (Analyze_Block_Statement): Add circuitry to detect following dead code
30383         (Check_Unreachable_Code): Handle case of block exit
30384
30385 2004-10-04  Robert Dewar  <dewar@gnat.com>
30386
30387         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
30388         (XMatchD): Avoid warning for Logic_Error call
30389
30390 2004-10-04  Robert Dewar  <dewar@gnat.com>
30391
30392         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
30393         consider expressions buried within a procedure actual to be an actual.
30394         This caused some blowups with uses of packed slices within a procedure
30395         actual.
30396
30397 2004-10-04  Robert Dewar  <dewar@gnat.com>
30398
30399         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
30400         longer need to be initialized to zero.
30401         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
30402         initialized to zero.
30403
30404         * checks.adb (Expr_Known_Valid): Packed arrays are now always
30405         considered valid, even if the representation is modular. That's correct
30406         now that we no longer initialize packed modular arrays to zero.
30407
30408         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
30409         suffixes. These are now documented as the only cases in which the
30410         debugger ignores outer records.
30411         Previously, the spec allowed arbitrary suffixes for this purpose.
30412         Change name of LJM to JM for packed array pad records
30413         Create separate section on packed array handling, and add a whole new
30414         set of comments to this section describing the situation with packed
30415         modular types and justification requirements depending on endianness.
30416
30417 2004-10-04  Robert Dewar  <dewar@gnat.com>
30418
30419         * a-except.adb: Add a comment for last change
30420
30421         * einfo.ads: Minor spelling correction in comment
30422
30423         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
30424
30425         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
30426         messages.
30427
30428         * sem_util.ads: Minor comment update
30429
30430 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
30431
30432         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
30433         Inline_Always when in Configurable_Run_Time mode.
30434
30435         * sem_prag.adb (Process_Convention): If entity is an inherited
30436         subprogram, apply convention to parent subprogram if in same scope.
30437         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
30438         when in Configurable_Run_Time mode.
30439
30440 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
30441
30442         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
30443         class_wide type after component list has been inherited.
30444
30445 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
30446
30447         * sem_ch12.adb (Check_Generic_Actuals): New predicate
30448         Denotes_Previous_Actual, to handle properly the case of a private
30449         actual that is also the component type of a subsequent array actual.
30450         The visibility status of the first actual is not affected when the
30451         second is installed.
30452         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
30453         make fully recursive the treatment of formals of packages declared
30454         with a box.
30455         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
30456         the above on exit from an instantiation.
30457         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
30458         current instantiation which is now complete.
30459         (Analyze_Package_Instantiation): No instantiated body is needed if the
30460         main unit is generic. Efficient, and avoid anomalies when a instance
30461         appears in a package accessed through rtsfind.
30462
30463 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
30464
30465         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
30466         do not generate a declaration for a temporary if the call is part of a
30467         library-level instantiation.
30468
30469 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
30470
30471         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
30472         searching for a limited component to flag.
30473
30474         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
30475         expansion of Input, to account for the fact that the implicit call
30476         generated by the attribute reference must freeze the user-defined
30477         stream subprogram. This is only relevant to 'Input, because it can
30478         appear in an object declaration, prior to the body of the subprogram.
30479
30480         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
30481         expansion can proceed and further errors uncovered.
30482         (Minor clean up): Fix cases of using | instead of \ for continuation
30483         messages.
30484
30485 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30486
30487         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
30488
30489         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
30490         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
30491         Use gcc_assert and gcc_unreachable.
30492
30493         * decl.c (gnat_to_gnu_entity, case object): Check and process a
30494         specified alignment before validating size.
30495         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
30496         stripped-down declaration for the type of the inner field when making
30497         a JM type.
30498
30499         * utils.c (finish_record_type): Do not compute the size in units
30500         incrementally. Instead compute it once for the rep clause case.
30501         Use gcc_assert and gcc_unreachable.
30502
30503 2004-10-04  Vincent Celier  <celier@gnat.com>
30504
30505         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
30506         in file name.
30507         (Is_Valid_Path_Name): Take '/' as a directory separator.
30508
30509 2004-10-04  Vincent Celier  <celier@gnat.com>
30510
30511         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
30512         (Extended_Project) only if Extended_Project is defined, to avoid
30513         assertion error.
30514         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
30515         resolved path.
30516         (Parse_Single_Project): Ditto.
30517
30518         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
30519         Add_To_Project_Path for virtual projects.
30520
30521 2004-10-04  Vincent Celier  <celier@gnat.com>
30522
30523         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
30524         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
30525         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
30526         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
30527         parameter Options_2.
30528
30529         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
30530         Build_Dynamic_Library with an empty Options_2.
30531
30532         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
30533         default anymore.
30534
30535         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
30536         directory separator, if any.
30537         (Gprmake): Do not allow mains on the command line for library projects.
30538         Do not attempt to link when the project is a library project.
30539         (Library_Opts): New table to store Library_Options.
30540         (Build_Library): If Library_Options is specified, pass these options
30541         when building a shared library.
30542
30543 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
30544
30545         * s-tposen.adb (Service_Entry): The object must be always unlocked at
30546         the end of this procedure now that the unlock operation was inserted
30547         by the expander.
30548
30549 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
30550
30551         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
30552         corresponding to the Preallocated_Stacks flags in System.
30553         (Get_Target_Parameters): Including the processing for
30554         Preallocated_Stacks.
30555
30556         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
30557         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
30558         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
30559         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
30560         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
30561         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
30562         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
30563         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
30564         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
30565         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
30566         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
30567         used to signal whether the compiler creates the required stacks and
30568         descriptors for the different tasks (when True) or it is done by the
30569         underlying operating system at run time (when False).
30570         It is initially set to False in all targets.
30571
30572         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
30573         if it is supported by the target.
30574         (Make_Task_Create_Call): Pass the stack address if it has been
30575         previously created. Otherwise pass a Null_Address.
30576
30577         * snames.adb: Add _stack.
30578
30579         * snames.ads: Add Name_uStack. Required to allow the expander to
30580         statically allocated task stacks.
30581
30582         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
30583         Stack_Address argument.
30584         Check that its value is equal to Null_Address because this target does
30585         not support the static stack allocation.
30586
30587 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
30588
30589         * usage.adb: Change "pragma inline" to "pragma Inline" in information
30590         and error messages
30591
30592 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
30593
30594         * exp_dist.adb: Split declaration of asynchronous flag out of
30595         Add_RACW_Read_Attribute.
30596         Minor reformatting for better alignment with PolyORB version.
30597         Store the entity for the asynchronous flag of an RACW, rather than the
30598         expression, in the asynchronous flags table. This will allow this flag
30599         to be used in other subprograms beside Add_RACW_Read_Attribute.
30600
30601 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
30602
30603         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
30604         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
30605         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
30606         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
30607         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
30608         sockets constant MSG_NOSIGNAL (Linux-specific).
30609         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
30610         all Send operations.
30611         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
30612         from trigerring SIGPIPE.
30613         Rename components to avoid clash with Ada 2005 possible reserved
30614         word 'interface'.
30615         (Check_Selector): When the select system call returns with an error
30616         condition, propagate Socket_Error to the caller.
30617
30618 2004-10-01  Jan Hubicka  <jh@suse.cz>
30619
30620         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
30621
30622 2004-09-23  Robert Dewar  <dewar@gnat.com>
30623
30624         PR ada/17540
30625         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
30626         instead do this at freeze time (we won't do it if there is an address
30627         clause).
30628         Change "pragma inline" to "pragma Inline" in information and error
30629         messages.
30630         Minor reformatting.
30631
30632         * freeze.adb (Check_Address_Clause): Remove previous change, not the
30633         right way of doing things after all.
30634         (Freeze_Entity): For object, set Is_Public for imported entities
30635         unless there is an address clause present.
30636
30637 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
30638
30639         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
30640         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
30641         ensures proper handling of types with rep clauses, which might have
30642         their TYPE_SIZE set already.
30643
30644 2004-09-21  Robert Dewar  <dewar@gnat.com>
30645
30646         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
30647         packed array types in both little- and big-endian cases. This change
30648         ensures that we no longer count on the unused bits being initialized
30649         for such types (and in particular ensures that equality testing will
30650         only read the relevant bits).
30651         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
30652         These changes mean that we no longer need to initialize small packed
30653         arrays.
30654         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
30655         optimization to an LJM field as to its parent field.
30656
30657         * ada-tree.h, trans.c, utils.c, utils2.c:
30658         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
30659
30660 2004-09-20  Jan Hubicka  <jh@suse.cz>
30661
30662         * utils.c (gnat_finalize): Remove.
30663         (end_subprog_body): Directly call cgraph_finalize_function;
30664         do not lower the nested functions.
30665
30666 2004-09-20  Robert Dewar  <dewar@gnat.com>
30667
30668         PR ada/17540
30669         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
30670         if an address clause is present, since that means that the Import
30671         should be ignored.
30672
30673 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
30674
30675         * 5tsystem.ads: Removed, no longer used.
30676
30677 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
30678             Zack Weinberg  <zack@codesourcery.com>
30679
30680         * ada-tree.def: Use tree_code_class enumeration constants
30681         instead of code letters.
30682         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
30683         Update for new tree-class enumeration constants.
30684
30685 2004-09-17  Vincent Celier  <celier@gnat.com>
30686
30687         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
30688         capabilities of the general project manager.
30689
30690 2004-09-09  Vincent Celier  <celier@gnat.com>
30691
30692         * a-direct.ads: Add pragma Ada_05
30693         (Directory_Entry_Type): Give default value to component Kind to avoid
30694         not initialized warnings.
30695
30696         * a-direct.adb (Current_Directory): Remove directory separator at the
30697         end.
30698         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
30699         an existing directory.
30700         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
30701         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
30702         Convert the result to File_Size.
30703
30704         * prj.ads: (Project_Error): New exception
30705
30706         * prj-attr.adb: Except in procedure Initialize, Fail comes from
30707         Prj.Com, not from Osint.
30708         (Attrs, Package_Attributes): Tables moved to private part of spec
30709         (Add_Attribute, Add_Unknown_Package): Moved to new child package
30710         Prj.Attr.PM.
30711         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
30712         Prj.Project_Error after call to Fail.
30713         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
30714         Fail. Check that package name is not already in use.
30715
30716         * prj-attr.ads: Comment updates to indicate that all subprograms may be
30717         used by tools, not only by the project manager, and to indicate that
30718         exception Prj.Prj_Error may be raised in case of problem.
30719         (Add_Unknown_Package, Add_Attribute): Moved to new child package
30720         Prj.Attr.PM.
30721         (Attrs, Package_Attributes): Table instantiations moved from the body to
30722         the private part to be accessible from Prj.Attr.PM body.
30723
30724         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
30725         from new package Prj.Attr.PM.
30726         (Parse_Attribute_Declaration): Call Add_Attribute from new package
30727         Prj.Attr.PM.
30728
30729         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
30730
30731         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
30732         instead of Elaboration_Checks).
30733
30734         * a-calend.adb: Minor reformatting
30735
30736 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30737
30738         * gigi.h (maybe_pad_type): New declaration.
30739         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
30740
30741         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
30742
30743         * cuintp.c: Convert to use buildN.
30744
30745         * decl.c (maybe_pad_type): No longer static.
30746         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
30747         target pointer.
30748         Convert to use buildN.
30749
30750         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
30751         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
30752         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
30753         RHS.
30754         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
30755         (gnat_gimplify_expr, case ADDR_EXPR): New case.
30756         Convert to use buildN.
30757
30758         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
30759         TREE_READONLY for const.
30760         Convert to use buildN.
30761
30762         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
30763         (create_var_decl): Refine when TREE_STATIC is set.
30764         Convert to use buildN.
30765
30766 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
30767
30768         * gnat_ugn.texi: Delete text relating to checking of ali and object
30769         consistency.
30770
30771         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
30772         routines.
30773
30774 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
30775
30776         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
30777         pragmas recognized by GNAT.
30778
30779         * gnat_rm.texi: Document pragma Detect_Blocking.
30780
30781         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
30782         raise Program_Error if called from a protected operation.
30783
30784         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
30785         the protected action nesting level.
30786         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
30787         protected action nesting level.
30788         (Unlock): When pragma Detect_Blocking is active decrease the protected
30789         action nesting level.
30790
30791         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
30792         Protected_Action_Nesting.
30793
30794         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
30795         Common_ATCB record. It contains the dynamic level of protected action
30796         nesting for each task. It is needed for checking whether potentially
30797         blocking operations are called from protected operations.
30798         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
30799         Detect_Blocking is active or not in the partition.
30800
30801         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
30802         raise Program_Error if called from a protected operation.
30803         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
30804         Program_Error if called from a protected operation.
30805         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
30806         Program_Error if called from a protected operation.
30807
30808         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
30809         raise Program_Error if called from a protected operation.
30810
30811         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
30812         raise Program_Error if called from a protected operation, and increase
30813         the protected action nesting level.
30814         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
30815         Program_Error if called from a protected operation, and increase the
30816         protected action nesting level.
30817         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
30818         protected action nesting level.
30819
30820         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
30821         raise Program_Error if called from a protected operation, and increase
30822         the protected action nesting level.
30823         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
30824         Program_Error if called from a protected operation, and increase the
30825         protected action nesting level.
30826         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
30827         raise Program_Error if called from a protected operation.
30828         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
30829         active, raise Program_Error if called from a protected operation.
30830         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
30831         protected action nesting level.
30832
30833         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
30834         insertion of the statement raising Program_Error. The run time
30835         contains the required machinery for handling that.
30836
30837         * sem_util.ads: Change comment associated to procedure
30838         Check_Potentially_Blocking_Operation.
30839         This procedure does not insert a call for raising the exception because
30840         that is currently done by the run time.
30841
30842         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
30843
30844         * init.c: Add the global variable __gl_detect_blocking that indicates
30845         whether pragma Detect_Blocking is active (1) or not (0). Needed for
30846         making the pragma available at run time.
30847         (__gnat_set_globals): Pass and update the detect_blocking parameter.
30848
30849         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
30850         pragma Detect_Blocking is active.
30851
30852         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
30853
30854         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
30855         DB is found in the ali file. Any unit compiled with pragma
30856         Detect_Blocking active forces its effect in the whole partition.
30857
30858         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
30859         Detect_Blocking is active and delay is called from a protected
30860         operation.
30861
30862         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
30863         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
30864         Detect_Blocking is active (0 otherwise).
30865         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
30866         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
30867         otherwise).
30868
30869 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
30870
30871         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
30872         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
30873         package.
30874
30875         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
30876         (Register_Receiving_Stub): Add Subp_Info formal parameter.
30877         Update API in placeholder implemetation of s-parint to reflect changes
30878         in distribution runtime library.
30879
30880         * sem_ch3.adb (Expand_Derived_Record): Rename to
30881         Expand_Record_Extension.
30882
30883         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
30884         primitive operations of potentially distributed object types that have
30885         non-controlling anonymous access formals.
30886
30887         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
30888         subprogram.
30889         New implementation of expansion for remote access-to-subprogram types,
30890         based on the RACW infrastructure.
30891         This version of sem_dist is compatible with PolyORB/DSA as well as
30892         GLADE.
30893
30894         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
30895         Asynchrronous that applies to a remote access-to-subprogram type, mark
30896         the underlying RACW type as asynchronous.
30897
30898         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
30899          __gnat_using_gnu_linker to 1.
30900
30901         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
30902         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
30903         GNAT.Perfect_Hash_Generators, and remove the empty
30904         GNAT.Perfect_Hash package.
30905
30906         * atree.adb: Minor reformatting
30907
30908         * exp_ch3.adb (Expand_Derived_Record): Rename to
30909         Expand_Record_Extension.
30910         (Build_Record_Init_Proc.Build_Assignment): The default expression in
30911         a component declaration must remain attached at that point in the
30912         tree so New_Copy_Tree copies it if the enclosing record type is derived.
30913         It is therefore necessary to take a copy of the expression when building
30914         the corresponding assignment statement in the init proc.
30915         As a side effect, in the case of a derived record type, we now see the
30916         original expression, without any rewriting that could have occurred
30917         during expansion of the ancestor type's init proc, and we do not need
30918         to go back to Original_Node.
30919
30920         * exp_ch3.ads (Expand_Derived_Record): Rename to
30921         Expand_Record_Extension.
30922
30923         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
30924         Returns the RACW type used to implement a remote access-to-subprogram
30925         type.
30926         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
30927         New subprograms. Used to create a proxy tagged object for a remote
30928         subprogram. The proxy object is used as the designated object
30929         for RAS values on the same partition (unless All_Calls_Remote applies).
30930         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
30931         System.Partition_Interface.Get_Unique_Remote_Pointer.
30932         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
30933         Renamed from Add_RAS_*_Attribute.
30934         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
30935         subprograms.
30936         New implementation of expansion for remote access-to-subprogram types,
30937         based on the RACW infrastructure.
30938
30939         * exp_dist.ads (Copy_Specification): Update comment to note that this
30940         function can copy the specification from either a subprogram
30941         specification or an access-to-subprogram type definition.
30942
30943 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
30944
30945         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
30946         in an instance, between an explicit subprogram an one inherited from a
30947         type derived from an actual.
30948
30949         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
30950         add a polling call if the subprogram is to be inlined by the back-end,
30951         to avoid repeated calls with multiple inlinings.
30952
30953         * checks.adb (Apply_Alignment_Check): If the expression in the address
30954         clause is a call whose name is not a static entity (e.g. a dispatching
30955         call), treat as dynamic.
30956
30957 2004-09-09  Robert Dewar  <dewar@gnat.com>
30958
30959         * g-trasym.ads: Minor reformatting
30960
30961         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
30962         packed arrays, since unused bits are expected to be zero for a
30963         comparison.
30964
30965 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
30966
30967         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
30968         comment.
30969
30970 2004-09-09  Pascal Obry  <obry@gnat.com>
30971
30972         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
30973         enable map file generation. Add the right option to generate the map
30974         file if Map_File is set to True.
30975
30976         * gnatdll.adb (Gen_Map_File): New variable.
30977         (Syntax): Add info about new -m (Map_File) option.
30978         (Parse_Command_Line): Add support for -m option.
30979         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
30980         Minor reformatting.
30981
30982 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
30983
30984         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
30985         new gnatdist implementation.
30986         Define a subpackage isolating the output routines specific to this
30987         verbose mode.
30988
30989 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
30990
30991         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
30992
30993         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
30994
30995 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
30996
30997         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
30998         internal unit.
30999
31000         * opt.ads: Add Ada_Version_Runtime constant used to decide which
31001         version of the language is used to compile the run time.
31002
31003 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
31004
31005         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
31006         of variable length temporaries for function return now that the
31007         back-end and gigi support it.
31008
31009 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31010
31011         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
31012
31013         * trans.c (struct stmt_group): Delete field GLOBAL.
31014         (gnat_init_stmt_group): Do not initialize it.
31015         (call_to_gnu): Use save_expr, not protect_multiple_eval.
31016         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
31017         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
31018         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
31019         (start_stmt_group): Likewise.
31020         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
31021
31022         * utils2.c (ggc.h): Include.
31023         (build_call_raise): Call build_int_cst, not build_int_2.
31024
31025         * utils.c (gnat_init_decl_processing): Fix arg to
31026         build_common_tree_nodes.
31027         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
31028         (gnat_define_builtin): Set built_in_decls.
31029         (init_gigi_decls): Call build_int_cst, not build_int_2.
31030
31031         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
31032         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
31033         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
31034         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
31035         SET_TYPE_MODULE): Use them.
31036         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
31037         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
31038         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
31039         SET_TYPE_ADA_SIZE): Likewise.
31040         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
31041         (DECL_CONST_CORRESPONDING_VAR,
31042         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
31043         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
31044         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
31045         (TYPE_RM_SIZE_NUM): New macro.
31046         (TYPE_RM_SIZE): Modified to use above.
31047
31048         * cuintp.c: (build_cst_from_int): New function.
31049         (UI_To_gnu): Use it.
31050
31051         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
31052         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
31053         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
31054         MIN_EXPR for the size, copy it into new.
31055
31056 2004-09-01  Robert Dewar  <dewar@gnat.com>
31057
31058         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
31059         packed indexed component where array is an IN OUT formal. This
31060         generated garbage code previously.
31061
31062         * gnat_ugn.texi: Document -fverbose-asm
31063
31064         * gnat-style.texi: Minor updates (note that boolean constants and
31065         variables are joined with AND/OR rather than short circuit forms).
31066
31067 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
31068
31069         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
31070         it is an upward conversion of an untagged type with no representation
31071         change.
31072
31073 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
31074
31075         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
31076         System.Partition_Interface.
31077
31078         * checks.adb (Apply_Access_Checks): Do not generate checks when
31079         expander is not active (but check for unset reference to prefix of
31080         dereference).
31081
31082         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
31083         pragma Debug as an if statement with a constant condition, for
31084         consistent treatment of entity references contained within the
31085         enclosed procedure call.
31086
31087 2004-09-01  Vincent Celier  <celier@gnat.com>
31088
31089         * bindgen.adb: (Set_EA_Last): New procedure
31090         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
31091         Set_EA_Last.
31092         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
31093         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
31094         linked without errors.
31095         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
31096         ST and EA.
31097         (Gen_Exception_Table_C): Correct same bugs
31098
31099         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
31100
31101         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
31102         on Windows, make sure that the drive letter is in upper case.
31103
31104         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
31105         Windows, when the drive letter is added and Case_Sensitive is True, the
31106         drive letter is forced to upper case.
31107
31108         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
31109         to Options_2 for the call to MLib.Utl.Gcc.
31110
31111         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
31112         directory separator when defining BASE_DIR.
31113
31114 2004-09-01  Pascal Obry  <obry@gnat.com>
31115
31116         * gprcmd.adb (Extend): Do not output trailing directory separator. This
31117         is not needed and it confuses Windows GNU/make which does not report
31118         directory terminated by a slash as a directory.
31119         (gprcmd): Idem for "pwd" internal command.
31120
31121         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
31122         target names rewrite to fix regressions with recent version of
31123         GNU/make. Starting with GNU/make 3.80 the pipe character was not
31124         handled properly anymore.
31125
31126 2004-09-01  Andreas Schwab  <schwab@suse.de>
31127
31128         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
31129         * raise.c [!IN_RTS]: Undef abort.
31130
31131 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
31132
31133         * utils2.c (build_allocator): Use ssize_int.
31134
31135         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
31136
31137 2004-08-27  Andreas Schwab  <schwab@suse.de>
31138
31139         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
31140
31141 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
31142             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31143
31144         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
31145
31146 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
31147
31148         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
31149         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
31150         * utils.c (init_gigi_decls): Likewise.
31151         * utils2.c (build_call_raise, build_allocator): Likewise.
31152
31153 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
31154
31155         * utils.c (gnat_init_decl_processing): Adjust
31156         build_common_tree_nodes call.
31157
31158 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
31159
31160         * utils2.c (build_allocator): Use build_int_cst for negative
31161         size types.
31162
31163 2004-08-18  Richard Henderson  <rth@redhat.com>
31164
31165         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
31166
31167 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
31168
31169         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
31170         call.s
31171         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
31172         (gnat_to_gnu): Likewise.
31173
31174 2004-08-16  Pascal Obry  <obry@gnat.com>
31175
31176         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
31177         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
31178         option and not mdll anymore. Update comment.
31179
31180 2004-08-16  Pascal Obry  <obry@gnat.com>
31181
31182         * bld.adb (Put_Include_Project): Properly handle directory separators
31183         on Windows.
31184
31185 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
31186
31187         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
31188         decreasing the number of allocated junk nodes while searching for the
31189         appropriate subprogram.
31190
31191 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
31192
31193         * cuintp.c (UI_To_gnu): Use build_int_cst..
31194         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
31195         * utils.c (init_gigi_decls): Likewise.
31196         * utils2.c (build_call_raise): Likewise.
31197
31198 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
31199
31200         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
31201         for a global aliased object with a variable size and an unconstrained
31202         nominal subtype, pretend there is no initializer if the one we have is
31203         incomplete, and avoid referencing an inexistant component in there. The
31204         part we have will be rebuilt anyway and the reference may confuse
31205         further operations.
31206
31207 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
31208
31209         * einfo.ads: Minor reformatting
31210
31211         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
31212         restrictions in the ALI if we only want to warn about violations.
31213
31214 2004-08-13  Vincent Celier  <celier@gnat.com>
31215
31216         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
31217         when creating a new Unit_Record in table Units.
31218
31219         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
31220         that are violated, if any.
31221
31222         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
31223         add directory separator if path already ends with a directory separator.
31224
31225 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
31226
31227         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
31228         unit, this is an attempt to inline a construct that is not available in
31229         the current restricted mode, so abort rather than trying to continue.
31230
31231         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
31232         discriminants that rename those of the parent, recover names of
31233         original discriminants for the constraint on the full view of the
31234         parent.
31235         (Complete_Private_Subtype): Do not create a subtype declaration if the
31236         subtype is an itype.
31237
31238         * gnat_rm.texi: Added section on implementation of discriminated
31239         records with default values for discriminants.
31240
31241 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
31242
31243         PR ada/15601
31244         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
31245         the second operand is overloaded.
31246
31247 2004-08-10  Richard Henderson  <rth@redhat.com>
31248
31249         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
31250         add __builtin_alloca.
31251
31252 2004-08-10  Richard Henderson  <rth@redhat.com>
31253
31254         * config-lang.in (boot_language): Yes.
31255
31256 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
31257
31258         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
31259         from complaining on potential uninitialized reference.
31260         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
31261         new specification and test explicitly for non-zero return value.
31262
31263         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
31264         returning C.int, to avoid using a derived boolean type.
31265
31266         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
31267         Duplicate_Subexpr_No_Checks in preference to direct use of
31268         Remove_Side_Effects and New_Copy_Tree.
31269         Clear Comes_From_Source on prefix of 'Size attribute reference.
31270
31271         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
31272         g-socthi-vxworks.adb: Change calls to
31273         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
31274         and test explicitly for non-zero return value.
31275
31276         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
31277         (Is_Socket_In_Set): Declare imported function as returning C.int, to
31278         avoid using a derived boolean type.
31279
31280 2004-08-09  Albert Lee  <lee@gnat.com>
31281
31282         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
31283
31284 2004-08-09  Pascal Obry  <obry@gnat.com>
31285
31286         * gnat_ugn.texi: Document new way to build DLLs on Windows using
31287         GCC's -shared option.
31288
31289         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
31290         Options_2 parameter (options put after object files).
31291
31292 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
31293
31294         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
31295         ignore overflows on low and high bounds of an index to also account for
31296         differences in signedness between sizetype and gnu_index_subtype.
31297         These are as legitimate as the ones caused by a lower TYPE_PRECISION
31298         on sizetype.
31299
31300 2004-08-09  Robert Dewar  <dewar@gnat.com>
31301
31302         * s-solita.ads, s-solita.adb: Minor reformatting
31303
31304         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
31305         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
31306         obsolescent section
31307         Add note that No_Implicit_Conditionals does not suppress
31308         run time constraint checks.
31309
31310         * vms_conv.ads: Minor reformatting
31311
31312         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
31313         and necessary for following change).
31314         (Mark): Return new format Mark_Id containing sec stack address
31315         (Release): Use sec stack address from Mark_Id avoiding Self call
31316
31317         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
31318         pointer (cleanup and necessary for following change).
31319         Define Mark_Id as record containing address of secondary stack, that way
31320         Release does not need to find the stack again, decreasing the number of
31321         calls to Self and improving efficiency.
31322
31323         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
31324
31325         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
31326         case variable into the individual case branches when possible.
31327
31328         * sem_ch11.adb: Minor reformatting
31329
31330         * prj.ads: Correct spelling of suffixs
31331
31332         * prj-nmsc.adb: Minor reformatting
31333         Correct spelling suffixs throughout (also in identifiers)
31334
31335         * freeze.adb: Minor spelling correction
31336
31337         * exp_ch2.adb: Cleanups to handling of Current_Value
31338         (no functional effect).
31339
31340         * bld.adb: Correct spelling of suffixs
31341
31342         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
31343
31344 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
31345
31346         PR ada/15408
31347         * sem_ch7.adb (Install_Private_Declarations): In the body of the
31348         package or of a child, private entities are both immediately_visible
31349         and not hidden.
31350
31351 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
31352
31353         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
31354         there are no range checks on the value of the literal.
31355
31356         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
31357         wrapped is the triggering alternative of an asynchronous select, action
31358         statements mustbe inserted before the select itself.
31359
31360         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
31361         case where the prefix is a protected function call.
31362         (Resolve_Attribute, case 'Access): The attribute reference on a
31363         subprogram is legal in a generic body if the subprogram is declared
31364         elsewhere.
31365
31366 2004-08-09  Vincent Celier  <celier@gnat.com>
31367
31368         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
31369         languages, otherwise building the library may fail with unresolved
31370         symbols.
31371         (Compile_Sources): Do not build libraries if -c switch is used
31372
31373         * gnatlink.adb (Process_Args): New switches -M and -Mmap
31374         (Write_Usage): If map file creation is supported, output new switches
31375         -M and -Mmap.
31376         (Gnatlink): When -M is specified, add the necessary switch(es) to the
31377         gcc call, when supported.
31378
31379         * Makefile.in: Added indepsw.o to the object list for gnatlink
31380         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
31381
31382         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
31383         indepsw.adb, indepsw.ads: New files.
31384
31385 2004-08-09  Bernard Banner  <banner@gnat.com>
31386
31387         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
31388
31389         * Makefile.in: add section for vxworks x86
31390
31391 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
31392
31393         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
31394         per-object constrained components where the discriminant is of an
31395         Access type.
31396         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
31397         the parent initialization procedure for derived Unchecked_Unions.
31398         Instead, derived Unchecked_Unions build their own initialization
31399         procedure.
31400         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
31401         Check the body of the subprogram for details.
31402         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
31403         functions for derived Unchecked_Union types by introducing a condition.
31404         Allow the creation of TSS equality functions for Unchecked_Unions.
31405         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
31406         Add formal parameter Discr to function signature. Discr is used to
31407         control the generated case statement for Unchecked_Union types.
31408         (Make_Eq_If): Rename formal parameter Node to E in function signature.
31409
31410         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
31411         Unchecked_Unions.
31412         Check the body of the subprogram for details.
31413         (Expand_Composite_Equality): Augment composite type equality to include
31414         correct handling of Unchecked_Union components.
31415         (Expand_N_In): Add condition to detect illegal membership tests when the
31416         subtype mark is a constrained Unchecked_Union and the expression lacks
31417         inferable discriminants, and build a Raise_Program_Error node.
31418         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
31419         to detect types that contain components of unconstrained Unchecked_Union
31420         subtype. Add condition to detect equality between types that have an
31421         unconstrained Unchecked_Union component, and build a Raise_Program_Error
31422         node. Add condition to detect equality between Unchecked_Union types
31423         that lack inferable discriminants, and build a Raise_Program_Error node.
31424         Otherwise build a TSS equality function call.
31425         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
31426         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
31427         with the operand lacking inferable discriminants, and build a Raise_
31428         Program_Error node.
31429         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
31430         composite equality.
31431         (Has_Inferable_Discriminants): Implement new predicate for objects and
31432         expressions of Unchecked_Union type. Check the body of subprogram for
31433         details.
31434         (Has_Unconstrained_UU_Components): Add function
31435         Component_Is_Unconstrained_UU. It is used to detect whether a single
31436         component is of an unconstrained Unchecked_Union subtype. Add function
31437         Variant_Is_Unconstrained_UU. It is used to detect whether a single
31438         component inside a variant is of an unconstrained Unchecked_Union type.
31439
31440         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
31441         inferred discriminant values. Add condition to generate a case
31442         statement with an inferred discriminant as the switch.
31443         (Make_Component_List_Assign): Introduce a Boolean flag that determines
31444         the behaviour of the subprogram in the presence of an Unchecked_Union.
31445         Add condition to trigger the usage of the inferred discriminant value
31446         as the generated case statement switch.
31447         (Make_Field_Assign): Introduce a Boolean flag that determines the
31448         behaviour of the subprogram in the presence of an Unchecked_Union. Add
31449         condition to trigger the usage of the inferred discriminant value as
31450         the right-hand side of the generated assignment.
31451
31452         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
31453         parameter generation when dealing with Unchecked_Unions.
31454
31455         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
31456         checks for Unchecked_Unions.
31457
31458         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
31459
31460         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
31461         Raise_Program_Error nodes for the execution of Read and Write
31462         attributes of Unchecked_Union types and the execution of Input and
31463         Output attributes of Unchecked_Union types that lack default
31464         discriminant values.
31465
31466         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
31467         Unchecked_Union. Add procedure Check_Component. It is used to inspect
31468         per-object constrained components of Unchecked_Unions for being
31469         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
31470         check individual components withing a variant.
31471
31472         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
31473         comparison of Unchecked_Unions.
31474         (Resolve_Equality_OP): Remove guard that prevents equality between
31475         Unchecked_Unions.
31476
31477         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
31478         of component subtypes for Unchecked_Union components.
31479         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
31480         since it is the actual subtype.
31481
31482         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
31483         pass of Unchecked_Union subtypes as generic actuals to formal types
31484         that lack known_discriminant_parts or that are derived Unchecked_Union
31485         types, and do nothing. In any other case, produce an error message.
31486
31487         * sem_ch3.adb (Analyze_Component_Declaration): Add function
31488         Contains_POC. It determines whether a constraint uses the discriminant
31489         of an enclosing record type.
31490         Add condition to detect per-object constrained component and set the
31491         appropriate flag.
31492         (Derived_Type_Declaration): Remove guard that prevents derivation from
31493         Unchecked_Union types.
31494         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
31495         Union subtypes.
31496
31497         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
31498         references to Unchecked_Union discriminants.
31499
31500         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
31501         formal generation when dealing with Unchecked_Unions.
31502         (Set_Actual_Subtypes): Add condition to prevent generation of actual
31503         subtypes for Unchecked_Unions.
31504
31505         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
31506         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
31507         completions of discriminated partial views by Unchecked_Unions and
31508         produce an error message.
31509
31510 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31511
31512         * trans.c (struct stmt_group): New field, GLOBAL.
31513         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
31514         (struct elab_info): New struct.
31515         (elab_info_list, gnu_elab_proc_stack): New variables.
31516         (Compilation_Unit_to_gnu): New procedure.
31517         (gigi): Call it and also handle elaboration procs we've saved.
31518         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
31519         global field from parent.
31520         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
31521         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
31522         (start_stmt_group): Initialize global field from parent.
31523         (add_decl_expr): Set to global for current statement group.
31524         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
31525         post.
31526
31527         * utils.c (global_bindings_p): True when no current_function_decl; no
31528         longer check current_binding_level.
31529
31530 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
31531
31532         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
31533         choice.
31534
31535         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
31536
31537 2004-08-06  Andreas Schwab  <schwab@suse.de>
31538
31539         * utils.c (gnat_define_builtin): Remove second parameter of
31540         make_decl_rtl.
31541         (begin_subprog_body): Likewise.
31542
31543 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
31544
31545         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
31546         optimization, not supported by the tree-ssa back-end.
31547
31548 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
31549
31550         * s-mastop-irix.adb: Update comments.
31551
31552         * a-except.adb (Exception_Information): Raise Constraint_Error if
31553         exception Id is Null_Id.
31554         This is required behavior, which is more reliably and clearly checked
31555         at the top level interface level.
31556
31557 2004-07-26  Javier Miranda  <miranda@gnat.com>
31558
31559         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
31560         call if a component has no default_expression and the box is used.
31561
31562         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
31563         default_expression and you use box, it behaves as if you had declared a
31564         stand-alone object.
31565         (Resolve_Record_Aggregate): If a component has no default_expression and
31566         you use box, it behaves as if you had declared a stand-alone object.
31567
31568         * sem_ch10.adb (Install_Siblings): Do not make visible the private
31569         entities of private-with siblings.
31570
31571 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
31572
31573         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
31574         for a component of an itype, set the parent pointer for analysis,
31575         there is no list in which to insert it.
31576
31577         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
31578         bona-fide renamings, not for inherited operations.
31579
31580         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
31581         actual for a formal that is an access parameter, create local
31582         finalization list even if the expression is not an aggregate.
31583
31584 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
31585
31586         PR ada/16213
31587         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
31588         Diagnose properly illegal subprogram renamings that are library units.
31589
31590 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
31591
31592         PR ada/15588
31593         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
31594         conversion rewritten as an unchecked conversion, check that original
31595         expression is a variable.
31596
31597         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
31598         unchecked_conversion, create new node rather than rewriting in place,
31599         to preserve original construct.
31600
31601 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31602
31603         * gigi.h (gnat_expand_body): Deleted.
31604
31605         * Make-lang.in: (trans.o): Depends on function.h.
31606
31607         * misc.c: (gnat_expand_body): Moved to here.
31608
31609         * trans.c (gnat_expand_body_1): Deleted.
31610         (gnat_expand_body): Moved from here.
31611         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
31612         (add_stmt): Check for marked visited with global_bindings_p.
31613         (gnat_gimplify_expr, case COMPONENT_REF): New case.
31614         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
31615
31616         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
31617         VIEW_CONVERT_EXPR if not operation type.
31618
31619         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
31620         fat pointer.
31621
31622         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
31623         changes: reformatting of negation operators, removing unneeded
31624         inequality comparison with zero, converting equality comparisons with
31625         zero to negations, changing int/0/1 to bool/false/true, replace calls
31626         to gigi_abort with abort, and various other similar changes.
31627
31628 2004-07-26  Vincent Celier  <celier@gnat.com>
31629
31630         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
31631         "setup".
31632
31633         * make.adb (Gnatmake): Fail when a library is not present and there is
31634         no object directory.
31635
31636         * mlib-prj.adb (Check_Library): No need to check if the library needs
31637         to be rebuilt if there is no object directory, hence no object files
31638         to build the library.
31639
31640         * opt.ads (Setup_Projects): New Boolean flag.
31641
31642         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
31643         Location.
31644         Create directory when Kind /= "" and in "gnat setup". Report error if
31645         directory cannot be created.
31646         (Ada_Check): Create library interface copy dir if it does not exist
31647         and we are in "gnat setup".
31648         (Find_Sources): No error if in "gnat setup" and no Ada sources were
31649         found.
31650         (Language_Independent_Check): Create object directory, exec directory
31651         and/or library directory if they do not exist and we are in
31652         "gnat setup".
31653
31654         * vms_conv.ads: (Command_Type): New command Setup.
31655
31656         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
31657
31658         * vms_data.ads: Add qualifiers/switches for new built-in command
31659         "setup".
31660
31661 2004-07-25  Richard Henderson  <rth@redhat.com>
31662
31663         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
31664         DECL_IGNORED_P on RESULT_DECL.
31665
31666 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
31667
31668         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
31669         allocation and potentially overflowing update with
31670         Tailored_Exception_Information. Use the sec-stack free procedural
31671         interface to output Exception_Information instead.
31672
31673         * a-except.adb (To_Stderr): New subprogram for character, and string
31674         version moved from a-exextr to be visible from other separate units.
31675         (Tailored_Exception_Information): Remove the procedural version,
31676         previously used by the default Last_Chance_Handler and not any more.
31677         Adjust various comments.
31678
31679         * a-exexda.adb: Generalize the exception information procedural
31680         interface, to minimize the use of secondary stack and the need for
31681         local buffers when the info is to be output to stderr:
31682         (Address_Image): Removed.
31683         (Append_Info_Character): New subprogram, checking for overflows and
31684         outputing to stderr if buffer to fill is of length 0.
31685         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
31686         (Append_Info_Address, Append_Info_Exception_Name,
31687         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
31688         Append_Info_Basic_Exception_Traceback,
31689         Append_Info_Exception_Information): New subprograms.
31690         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
31691         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
31692         Exception_Info_Maxlength, Exception_Name_Length,
31693         Exception_Message_Length): New subprograms.
31694         (Exception_Information): Use Append_Info_Exception_Information.
31695         (Tailored_Exception_Information): Use
31696         Append_Info_Basic_Exception_Information.
31697         Export services for the default Last_Chance_Handler.
31698
31699         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
31700         other separate units.
31701
31702 2004-07-20  Vincent Celier  <celier@gnat.com>
31703
31704         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
31705
31706 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
31707
31708         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
31709         emit itype references for the designated types of component types that
31710         are declared outside of the full record declaration, and that may
31711         denote a partial view of that record type.
31712
31713 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
31714
31715         PR ada/15607
31716         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
31717         which is the designated type in an access component declaration, to the
31718         list of incomplete dependents of the parent type, to avoid elaboration
31719         issues with out-of-scope subtypes.
31720         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
31721         full view of the parent.
31722
31723 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
31724
31725         PR ada/15610
31726         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
31727         entities that are hidden, such as references to generic actuals
31728         outside an instance.
31729
31730 2004-07-20  Javier Miranda  <miranda@gnat.com>
31731
31732         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
31733         support to the new notation.
31734         (Analyze_Selected_Component): Add call to Try_Object_Operation.
31735
31736 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
31737
31738         * s-taprob.adb: Adding the elaboration code required for initializing
31739         the tasking soft links that are common to the full and the restricted
31740         run times.
31741
31742         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
31743         restricted run time has been moved to the package
31744         System.Soft_Links.Tasking.
31745
31746         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
31747         restricted run time has been moved to the package
31748         System.Soft_Links.Tasking.
31749
31750         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
31751
31752         * s-solita.ads, s-solita.adb: New files.
31753
31754 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31755
31756         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
31757         Case_Statement_to_gnu): Split off from gnat_to_gnu.
31758         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
31759         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
31760         Exception_Handler_to_gnu_zcx): Likewise.
31761
31762 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
31763
31764         * gigi.h (builtin_function): Declare.
31765
31766 2004-07-15  Robert Dewar  <dewar@gnat.com>
31767
31768         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
31769         reformatting
31770
31771         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
31772         access values as an example of a warning.
31773
31774         * gnat_rm.texi: Document new attribute Has_Access_Values
31775
31776         * gnat-style.texi: Document that box comments belong on nested
31777         subprograms
31778
31779         * sem_util.ads (Has_Access_Values): Improved documentation
31780
31781         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
31782
31783         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
31784         (Process_Interface_Name): Call to this new procedure
31785         (Set_Extended_Import_Export_External_Name): Call to this new procedure
31786
31787         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
31788
31789         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
31790
31791         * einfo.ads: Minor comment typo fixed
31792
31793 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
31794
31795         * snames.adb: Add _atcb.
31796
31797         * snames.ads: Add Name_uATCB.
31798
31799         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
31800         (in the expanded code) when using the restricted run time.
31801
31802         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
31803         a in parameter in order to allow ATCBs to be preallocated (in the
31804         expanded code).
31805
31806         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
31807         order to allow ATCBs to be preallocated. In case of error, the ATCB is
31808         deallocated in System.Tasking.Stages.
31809
31810         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
31811         order to allow ATCBs to be preallocated.
31812
31813         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
31814         here. It was previously done in Initialize_ATCB.
31815
31816         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
31817
31818         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
31819         Restricted run time.
31820
31821         * exp_ch3.adb: When using the Restricted run time, pass the
31822         preallocated Ada_Task_Control_Block when creating a task.
31823
31824 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
31825
31826         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
31827         function call that is itself an actual in an enclosing call, diagnose
31828         problem here rather than assuming that resolution will catch it.
31829
31830         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
31831         the local copy of a generic unit for a formal package, and the generic
31832         is a child unit, install private part of ancestors before compiling
31833         private part of spec.
31834
31835         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
31836         use scope entities rather than tree structures, to handle properly
31837         parent units that are instances rewritten as bodies for inlining
31838         purposes.
31839
31840         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
31841         Remove_Parents): Handle properly a parent unit that is an
31842         instantiation, when the unit has been rewritten as a body for inlining
31843         purposes.
31844
31845         * par.adb (Goto_List): Global variable to collect goto statements in a
31846         given unit, for use in detecting natural loops.
31847
31848         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
31849         use in detecting natural loops.
31850
31851         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
31852         backwards goto's, and rewrite as a infinite loop, to improve locality
31853         of temporaries.
31854
31855         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
31856         subcomponent that includes an indexed reference, to prevent the
31857         generation of copies that would miscompile the desired assignment
31858         statement.
31859         (Build_Task_Image_Decls): Add a numeric suffix to
31860         generated name for string variable, to avoid spurious conflicts with
31861         the name of the type of a single protected object.
31862
31863         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
31864         loop with an explicit exit statement, to avoid generating an
31865         out-of-range value with 'Succ leading to spurious constraint_errors
31866         when compiling with -gnatVo.
31867
31868 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
31869
31870         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
31871         might not be analyzed yet, even if its Etype is already set (case of an
31872         unchecked conversion built using Unchecked_Convert_To, for example).
31873         If the prefix has already been analyzed, this will be a nop anyway.
31874
31875         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
31876         controller type, or an assignment of a record type with controlled
31877         components, copy only user data, and leave the finalization chain
31878         pointers untouched.
31879
31880 2004-07-15  Vincent Celier  <celier@gnat.com>
31881
31882         * make.adb (Collect_Arguments): Improve error message when attempting
31883         to compile a source not part of any project, when -x is not used.
31884
31885         * prj.ads: (Defined_Variable_Kind): New subtype
31886
31887         * prj-attr.adb (Register_New_Package): Two new procedures to register
31888         a package with or without its attributes.
31889         (Register_New_Attribute): Mew procedure to register a new attribute in a
31890         package.
31891         New attribute oriented subprograms: Attribute_Node_Id_Of,
31892         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
31893         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
31894         Next_Attribute.
31895         New package oriented subprograms: Package_Node_Id_Of,
31896         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
31897
31898         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
31899         type.
31900         (Package_Node_Id): Now a private, self initialized type
31901         (Register_New_Package): New procedure to register a package with its
31902         attributes.
31903         New attribute oriented subprograms: Attribute_Node_Id_Of,
31904         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
31905         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
31906         Next_Attribute.
31907         New package oriented subprograms: Package_Node_Id_Of,
31908         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
31909
31910         * prj-dect.adb (Parse_Attribute_Declaration,
31911         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
31912
31913         * prj-makr.adb (Make): Parse existing project file before creating
31914         other files. Fail if there was an error during parsing.
31915
31916         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
31917         new spec of Prj.Attr.
31918
31919         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
31920         to new spec of Prj.Attr.
31921
31922 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31923
31924         * utils2.c: Fix typo in comment.
31925
31926 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31927
31928         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
31929         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
31930
31931 2004-07-14  Andreas Schwab  <schwab@suse.de>
31932
31933         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
31934
31935 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31936
31937         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
31938         object type.
31939         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
31940         TYPE_STUB_DECL.
31941
31942         * misc.c (gnat_types_compatible_p): New function.
31943         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
31944         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
31945
31946         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
31947         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
31948         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
31949         (mark_visited): Don't mark dummy type.
31950         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
31951         parameter, we must remove any LJM building from GNU_NAME.
31952         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
31953         (pos_to_constructor): Use int_const_binop.
31954         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
31955         PARM_DECL.
31956
31957         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
31958         (gnat_pushlevel): Set TREE_USE on BLOCK node.
31959         (gnat_install_builtins): Add __builtin_memset.
31960
31961 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
31962
31963         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
31964         for a renaming, stabilize the initialization expression if we are at a
31965         local level.  At the local level, uses of the renaming may be performed
31966         by a direct dereference of the initializing expression, and we don't
31967         want possible variables there to be evaluated for every use.
31968
31969         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
31970         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
31971         them on the way.  Account for the fact that we may introduce side
31972         effects in the process.
31973
31974 2004-07-13  Richard Henderson  <rth@redhat.com>
31975
31976         * misc.c (default_pass_by_ref): Use pass_by_reference.
31977
31978 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
31979
31980         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
31981         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
31982
31983 2004-07-08  Richard Henderson  <rth@redhat.com>
31984
31985         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
31986         commentary.
31987
31988 2004-07-06  Vincent Celier  <celier@gnat.com>
31989
31990         * vms_conv.ads: Minor reformatting.
31991         Alphabetical order for enumerated values of type Command_Type, to have
31992         the command in alphabetical order for the usage.
31993
31994         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
31995         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
31996
31997         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
31998
31999         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
32000         (Add_Archive_Path): Only add the global archive if there is one.
32001         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
32002         or not any object file to put in the global archive, and don't build
32003         a global archive if there is none.
32004         (X_Switches): New table
32005         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
32006         in the X_Switches table, if any.
32007         (Initialize): Make sure the X_Switches table is empty
32008         (Scan_Arg): Record -X switches in table X_Switches
32009
32010         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
32011
32012         * make.adb: Minor comment fix
32013
32014         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
32015         invoked with directory information, add the directory in front of the
32016         path.
32017
32018         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
32019         invoked with directory information, add the directory in front of the
32020         path.
32021
32022         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
32023         when Keep_Temporary_Files is False.
32024         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
32025         directory information, add the directory in front of the path.
32026         When not on VMS, handle new switch -dn before the command to set
32027         Keep_Temporary_Files to True.
32028         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
32029         everywhere.
32030
32031         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
32032         invoked with directory information, add the directory in front of the
32033         path.
32034
32035 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
32036
32037         * snames.ads, snames.adb (Name_Stub): New name for the distributed
32038         systems annex.
32039
32040         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
32041         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
32042
32043         * g-socket.adb (To_Timeval): Fix incorrect conversion of
32044         Selector_Duration to Timeval for the case of 0.0.
32045
32046         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
32047         documentation from Evolve_And_Then.
32048
32049 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
32050
32051         * s-taprop-tru64.adb, s-taprop-os2.adb,
32052         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
32053
32054 2004-07-06  Robert Dewar  <dewar@gnat.com>
32055
32056         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
32057         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
32058         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
32059         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
32060         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
32061         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
32062         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
32063         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
32064         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
32065         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
32066         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
32067         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
32068         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
32069         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
32070         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
32071         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
32072         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
32073         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
32074         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
32075         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
32076         vms_data.ads: Minor reformatting,
32077         Fix bad box comment format.
32078
32079         * gnat_rm.texi: Fix minor grammatical error
32080
32081         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
32082
32083         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
32084         more cases of discriminated records to be recognized as not needing a
32085         secondary stack.
32086         (Has_Access_Values): New function.
32087
32088         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
32089
32090         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
32091         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
32092         with LRM terminology).
32093         Change terminology in comments primitive type => elementary type.
32094
32095 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
32096
32097         PR ada/15602
32098         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
32099         parameters do not impose any requirements on the presence of a body.
32100
32101 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
32102
32103         PR ada/15593
32104         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
32105         compilation unit and is in an open scope at the point of instantiation,
32106         assume that a body may be present later.
32107
32108 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
32109
32110         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
32111         Improve error message when specified size is not supported.
32112
32113         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
32114         is never a primitive operation.
32115
32116 2004-07-05  Andreas Schwab  <schwab@suse.de>
32117
32118         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
32119         RECORD_OR_UNION_CHECK.
32120         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
32121
32122 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
32123
32124         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
32125         dependency on xgnatugn, instead build it via a submake.
32126         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
32127
32128 2004-07-04  Richard Henderson  <rth@redhat.com>
32129
32130         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
32131
32132 2004-07-01  Richard Henderson  <rth@redhat.com>
32133
32134         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
32135         * utils.c (max_size): Likewise.
32136
32137 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32138
32139         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
32140         and rest_of_type_compilation; add arg to create_*_decl.
32141         (annotate_decl_with_node): Deleted.
32142         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
32143         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
32144         (get_current_block_context, gnat_pushdecl): New declarations.
32145         (gnat_init_stmt_group): Likewise.
32146         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
32147         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
32148         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
32149         (gnat_init): Call gnat_init_stmt_group.
32150         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
32151         (gnu_pending_elaboration_list): Deleted.
32152         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
32153         (gigi): Rearrange initialization calls and move some to last above.
32154         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
32155         Delete calls to add_decl_expr; add arg to create_*_decl.
32156         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
32157         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
32158         begin_subprog_body and call it.
32159         Don't push and pop ggc context.
32160         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
32161         (add_stmt): Remove handling of DECL_EXPR from here.
32162         If not in function, mark visited.
32163         (add_decl_expr): Put global at top level.
32164         Check for cases of DECL_INITIAL we have to handle here.
32165         (process_type): Add extra arg to create_type_decl.
32166         (build_unit_elab): Rework to just gimplify.
32167         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
32168         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
32169         (get_pending_elaborations, pending_elaborations_p): Likewise.
32170         (push_pending_elaborations, pop_pending_elaborations): Likewise.
32171         (get_elaboration_location, insert_elaboration_list): Likewise.
32172         (gnat_binding_level): Renamed from ada_binding_level.
32173         (init_gnat_to_gnu): Don't clear pending_elaborations.
32174         (global_bindings_p): Treat as global if no current_binding_level.
32175         (set_current_block_context): New function.
32176         (gnat_pushdecl): Renamed from pushdecl; major rework.
32177         All callers changed.
32178         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
32179         (finish_record_type): Call call pushdecl for stub decl.
32180         (function_nesting_depth): Deleted.
32181         (begin_subprog_body): Delete obsolete code.
32182         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
32183
32184 2004-06-28  Robert Dewar  <dewar@gnat.com>
32185
32186         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
32187         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
32188         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
32189         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
32190         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
32191
32192         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
32193         deal with problem of inefficient slices on machines with strict
32194         alignment, when the slice is a component of a composite.
32195
32196         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
32197         machines, we need the check there as well.
32198
32199 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
32200
32201         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
32202         determine safe copying direction for overlapping slice assignments
32203         when component is controlled.
32204
32205         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
32206         formal derived type in the actual for a formal package are visible in
32207         the enclosing instance.
32208
32209 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
32210
32211         PR ada/15600
32212         * sem_util.adb (Trace_Components): Diagnose properly an illegal
32213         circularity involving a private type whose completion includes a
32214         self-referential component.
32215         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
32216         renaming or an instantiation from an implicit derived operation.
32217
32218 2004-06-28  Pascal Obry  <obry@gnat.com>
32219
32220         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
32221         DLL.
32222         (Library_File_Name_For): Idem.
32223
32224 2004-06-28  Matthew Gingell  <gingell@gnat.com>
32225
32226         * g-traceb.ads: Add explanatory note on the format of addresses
32227         expected by addr2line.
32228
32229 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
32230
32231         * Makefile.in: Force debugging information on s-tasdeb.adb,
32232         a-except.adb and s-assert.adb needed by the debugger.
32233
32234 2004-06-28  Vincent Celier  <celier@gnat.com>
32235
32236         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
32237         Need_To_Build_Lib.
32238         (Gnatmake): Ditto.
32239
32240         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
32241
32242         * prj.adb: Minor reformatting
32243         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
32244
32245         * prj.ads: Comment updates
32246         Minor reformatting
32247         (Project_Data): Change Flag1 to Need_To_Build_Lib.
32248         Remove Flag2: not used.
32249
32250         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
32251         declaration.
32252
32253         * gnat_ugn.texi: Put a "null;" declaration in one project file example
32254
32255         * gnat_rm.texi: Document Empty declarations "null;".
32256
32257         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
32258         front of the linker options.
32259         (Link_Foreign): Put the global archives and the libraries in front of
32260         the linker options.
32261
32262 2004-06-28  Javier Miranda  <miranda@gnat.com>
32263
32264         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
32265         (RTU_Loaded): Code cleanup
32266         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
32267         withed predefined units.
32268
32269         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
32270         explicitly withed predefined units.
32271         Fix typo in comment
32272
32273         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
32274         explicitly withed predefined units.
32275
32276 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32277
32278         * ada-tree.def (DECL_STMT): Deleted.
32279         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
32280         (DECL_STMT_VAR): Deleted.
32281         * decl.c: add_decl_stmt now add_decl_expr.
32282         * gigi.h: Likewise.
32283         * trans.c: Likewise.
32284         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
32285         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
32286         (add_stmt): Only handle padded type here.
32287         (add_stmt_with_node): Allow gnat_node to not be present.
32288         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
32289         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
32290         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
32291         make a SAVE_EXPR for the entire fat pointer.
32292         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
32293         (create_index_type): Make a DECL_EXPR.
32294         (end_subprog_body): Don't call allocate_struct_function here but
32295         do clear cfun.
32296
32297 2004-06-25  Pascal Obry  <obry@gnat.com>
32298
32299         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
32300         Relocatable from Build_Dynamic_Library call.
32301
32302         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
32303         Relocatable are now synonym.
32304
32305         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
32306
32307         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
32308         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
32309         call.
32310
32311         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
32312         Lib_Address and Relocatable.
32313         (Default_DLL_Address): Removed.
32314
32315         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
32316         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
32317         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
32318         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
32319         (Default_DLL_Address): Removed.
32320
32321         * mlib-tgt-mingw.adb: Ditto.
32322         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
32323
32324         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
32325         the initial thread stack size.
32326
32327         * a-strmap.ads: Move package L to private part as it is not used in
32328         the spec. Found while reading code.
32329
32330 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
32331
32332         * tracebak.c: Introduce support for a GCC infrastructure based
32333         implementation of __gnat_backtrace.
32334
32335         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
32336         any more. Use accessors instead. This eases maintenance and relaxes
32337         some alignment constraints.
32338         (_GNAT_Exception structure): Remove the Ada specific fields
32339         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
32340         a-exexpr.adb.
32341         (is_handled_by, __gnat_eh_personality): Replace component references to
32342         exception structure by use of the new accessors.
32343
32344         * init.c (__gnat_initialize): Adjust comments to match the just
32345         reverted meaning of the -static link-time option.
32346
32347         * adaint.c (convert_addresses): Arrange not to define a stub for
32348         mips-irix any more, as we now want to rely on a real version from a
32349         recent libaddr2line.
32350
32351         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
32352         the personality routine can use them and not have to rely on a C
32353         counterpart of the record anymore. This simplifies maintenance and
32354         relaxes the constraint of having Standard'Maximum_Alignment match
32355         BIGGEST_ALIGNMENT.
32356         Update comments, and add a section on the common header alignment issue.
32357
32358 2004-06-25  Geert Bosch  <bosch@gnat.com>
32359
32360         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
32361         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
32362
32363 2004-06-25  Robert Dewar  <dewar@gnat.com>
32364
32365         * gnat_rm.texi: Fix section on component clauses to indicate that the
32366         restriction on byte boundary placement still applies for bit packed
32367         arrays.
32368         Add comment on stack usage from Initialize_Scalars
32369
32370         * gnat_ugn.texi: Add documentation for -gnatyLnnn
32371
32372         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
32373         limiting nesting level.
32374
32375         * usage.adb: Add line for -gnatyLnnn switch
32376
32377         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
32378         sem_ch13.adb, exp_aggr.adb: Minor reformatting
32379
32380         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
32381         type as well as on the subtype. This corrects a problem in freeze in
32382         setting alignments of atomic types.
32383
32384         * sem_eval.ads: Minor comment typo fixed
32385
32386         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
32387         level.  Minor reformatting.
32388
32389         * fname.adb (Is_Predefined_File_Name): Require a letter after the
32390         minus sign. This means that file names like a--b.adb will not be
32391         considered predefined.
32392
32393         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
32394         record Test new flag and give diagnostic for bad component clause.
32395         (Freeze_Entity): Set alignment of array from component alignment in
32396         cases where this is safe to do.
32397
32398         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
32399         arrays.
32400
32401         * cstand.adb: (Create_Standard): Set alignment of String to 1
32402
32403         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
32404
32405         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
32406         code in the common constrained array cases.
32407
32408         * a-storio.adb: Change implementation to avoid possible alignment
32409         problems on machines requiring strict alignment (data should be moved
32410         as type Buffer, not type Elmt).
32411
32412         * checks.adb (Apply_Array_Size_Check): Improve these checks by
32413         killing the overflow checks which we really do not need (64-bits is
32414         enough).
32415
32416 2004-06-25  Vincent Celier  <celier@gnat.com>
32417
32418         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
32419         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
32420         inconditionally for the main project.
32421         (Recursive_Add_Archives.Add_Archive_Path): New procedure
32422         (Link_Executables.Check_Time_Stamps): New procedure
32423         (Link_Executables.Link_Foreign): New procedure
32424         Changes made to reduce nesting level of this package
32425         (Check): New procedure
32426         (Add_Switches): When not in quiet output, check that a switch is not
32427         the concatenation of several valid switches. If it is, issue a warning.
32428         (Build_Global_Archive): If the global archive is rebuilt, linking need
32429         to be done.
32430         (Compile_Sources): Rebuilding a library archive does not imply
32431         rebuilding the global archive.
32432         (Build_Global_Archive): New procedure
32433         (Build_Library): New name for Build_Archive, now only for library
32434         project
32435         (Check_Archive_Builder): New procedure
32436         (Create_Global_Archive_Dependency_File): New procedure
32437         (Gprmake): Call Build_Global_Archive before linking
32438         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
32439         throughout.
32440         (Scan_Arg): Display the Copyright notice when -v is used
32441
32442         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
32443         for gnatls.
32444
32445         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
32446         COMPILE.
32447         Add new GNAT LIST qualifier /FILES=
32448         Added qualifier /DIRECTORY= to GNAT METRIC
32449         Added qualifier /FILES= to GNAT METRIC
32450         Added qualifier /FILES to GNAT PRETTY
32451
32452         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
32453         to take into account both versions of the switch.
32454
32455         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
32456         always be the last switch to the gcc driver. Disable switch storing so
32457         that switches automatically added by the gcc driver are not put in the
32458         ALI file.
32459
32460         * prj.adb (Project_Empty): Take into account changes in components of
32461         Project_Data.
32462
32463         * prj.ads (Languages_Processed): New enumaration value All_Languages.
32464
32465         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
32466         used. Split Boolean component Ada_Sources_Present in two Boolean
32467         components Ada_Sources_Present and Other_Sources_Present.
32468         Minor reformatting
32469
32470         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
32471         instead of Sources_Present.
32472         (Set_Ada_Paths.Add.Recursive_Add): Ditto
32473
32474         * prj-nmsc.adb: Minor reformatting
32475         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
32476         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
32477         Check_Ada_Naming_Scheme.
32478         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
32479         throughout.
32480
32481         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
32482         In_Limited.
32483         Make sure that all cycles where there is at least one "limited with"
32484         are detected.
32485         (Parse_Single_Project): New Boolean parameter In_Limited
32486
32487         * prj-proc.adb (Recursive_Check): When Process_Languages is
32488         All_Languages, call first Prj.Nmsc.Ada_Check, then
32489         Prj.Nmsc.Other_Languages_Check.
32490
32491         * prj-proc.adb (Process): Use Ada_Sources_Present or
32492         Other_Sources_Present (instead of Sources_Present) depending on
32493         Process_Languages.
32494
32495         * lang-specs.h: Keep -g and -m switches in the same order, and as the
32496         last switches.
32497
32498         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
32499         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
32500         False.
32501         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
32502         False.
32503
32504         * lib.ads (Disable_Switch_Storing): New procedure.
32505
32506         * make.adb: Modifications to reduce nesting level of this package.
32507         (Check_Standard_Library): New procedure
32508         (Gnatmake.Check_Mains): New procedure
32509         (Gnatmake.Create_Binder_Mapping_File): New procedure
32510         (Compile_Sources.Compile): Add switch -gnatez as the last option
32511         (Display): Never display -gnatez
32512
32513         * Makefile.generic:
32514         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
32515
32516         * gnatcmd.adb (Check_Project): New function
32517         (Process_Link): New procedure to reduce nesting depth
32518         (Check_Files): New procedure to reduce the nesting depth.
32519         For GNAT METRIC, include the inherited sources in extending projects.
32520         (GNATCmd): When GNAT LS is invoked with a project file and no files,
32521         add the list of files from the sources of the project file. If this list
32522         is too long, put it in a temp text files and use switch -files=
32523         (Delete_Temp_Config_Files): Delete the temp text file that contains
32524         a list of source for gnatpp or gnatmetric, if one has been created.
32525         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
32526         in the project file is too large, create a temporary text file that
32527         list them and pass it to the tool with "-files=<temp text file>".
32528         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
32529
32530         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
32531         generated file is in not in Ada.
32532
32533         * gnatls.adb: Remove all parameters And_Save that are no longer used.
32534         (Scan_Ls_Arg): Add processing for -files=
32535         (Usage): Add line for -files=
32536
32537         * g-os_lib.adb (On_Windows): New global constant Boolean flag
32538         (Normalize_Pathname): When on Windows and the path starts with a
32539         directory separator, make sure that the resulting path will start with
32540         a drive letter.
32541
32542         * clean.adb (Clean_Archive): New procedure
32543         (Clean_Project): When there is non-Ada code, delete the global archive,
32544         the archive dependency files, the object files and their dependency
32545         files, if they exist.
32546         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
32547
32548 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
32549
32550         * sinfo.ads: Fix typo in comment.
32551
32552         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
32553         the TSS for remote access-to-subprogram types, since these TSS are
32554         always present once the type has been analyzed.
32555         (RAS_E_Dereference): Same.
32556
32557         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
32558         reference raises Bad_Attribute, mark the reference as analyzed so the
32559         node (and any children resulting from rewrites that could have occurred
32560         during the analysis that ultimately failed) is not analyzed again.
32561
32562         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
32563
32564         * exp_dist.adb: Minor comment fix.
32565
32566         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
32567         type is an anonymous access type, no unchecked deallocation of the
32568         allocated object can occur. If the object is controlled, attach it with
32569         a count of 1. This allows attachment to the Global_Final_List, if
32570         no other relevant list is available.
32571         (Get_Allocator_Final_List): For an anonymous access type that is
32572         the type of a discriminant or record component, the corresponding
32573         finalisation list is the one of the scope of the type.
32574
32575 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
32576
32577         * sem_ch3.adb (Replace_Type): When computing the signature of an
32578         inherited subprogram, use the first subtype if the derived type
32579         declaration has no constraint.
32580
32581         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
32582         before applying previous optimization. Minor code cleanup.
32583
32584         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
32585         placed at the beginning of an unpacked record without explicit
32586         alignment, a slice of it will be aligned and does not need a copy when
32587         used as an actual.
32588
32589 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
32590
32591         PR ada/15591
32592         PR ada/15592
32593         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
32594         reference is written with expressions mimicking parameters.
32595
32596 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
32597
32598         PR ada/15589
32599         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
32600         STEP 2a. The constraints of a full type declaration of a derived record
32601         type are checked for conformance with those declared in the
32602         corresponding private extension declaration. The message
32603         "not conformant with previous declaration" is emitted if an error is
32604         detected.
32605
32606 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
32607
32608         * g-traceb.ads: Document the need for -E binder switch in the spec.
32609
32610         * g-trasym.ads: Document the need for -E binder switch in the spec.
32611
32612 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
32613
32614         * sem_prag.adb: Add handling of pragma Detect_Blocking.
32615
32616         * snames.h, snames.ads, snames.adb: Add entry for pragma
32617         Detect_Blocking.
32618
32619         * s-rident.ads: Change reference to pragma Detect_Blocking.
32620
32621         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
32622         system.ads.
32623
32624         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
32625         to indicate whether pragma Detect_Blocking is active.
32626
32627         * par-prag.adb: Add entry for pragma Detect_Blocking.
32628
32629         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
32630         of not handling WITH.
32631         Note that this replaces the previous update which was incorrect.
32632
32633 2004-06-25  Javier Miranda  <miranda@gnat.com>
32634
32635         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
32636         use-clauses to have a clean environment.
32637
32638         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
32639         the installation of the use-clauses to stablish a clean environment in
32640         case of compilation of a separate unit; otherwise the call to
32641         use_one_package is protected by the barrier Applicable_Use.
32642
32643         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
32644         the installation of the use-clauses to stablish a clean environment in
32645         case of compilation of a separate unit.
32646         (End_Use_Clauses): Minor comment cleanup.
32647
32648 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
32649
32650         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
32651
32652 2004-06-23  Richard Henderson  <rth@redhat.com>
32653
32654         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
32655
32656 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32657
32658         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
32659         now bool instead of int.
32660         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
32661         * trans.c (gnu_switch_label_stack): New function.
32662         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
32663         elaboration of renamed entity returns.
32664         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
32665         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
32666         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
32667         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
32668         DECL_SIZE_UNIT and simplify variable-sized case.
32669         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
32670         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
32671         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
32672         (build_unit_elab): Disable for now.
32673         * utils.c (mark_visited): New function.
32674         (pushdecl): Walk tree to call it for global decl.
32675         (update_pointer_to): Update all variants of pointer and ref types.
32676         Add arg to COMPONENT_REF.
32677         (convert): Likewise.
32678         Move check for converting between variants lower down.
32679         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
32680         (build_allocator): Don't force type of MODIFY_EXPR.
32681         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
32682         put_var_into_stack.
32683
32684 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32685
32686         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
32687         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
32688         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
32689         subprograms.
32690         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
32691         all callers changed.
32692         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
32693         the way that EXIT_STMT finds the loop label.
32694         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
32695         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
32696         (add_stmt): Use annotate_with_locus insted of setting directly.
32697         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
32698         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
32699         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
32700         (build_vms_descriptor): Add extra args to ARRAY_REF.
32701         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
32702         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
32703         New cases.
32704         (build_binary_op): Don't make explicit CONVERT_EXPR.
32705         Add extra rgs to ARRAY_REF.
32706
32707 2004-06-14  Pascal Obry  <obry@gnat.com>
32708
32709         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
32710         Windows.  Fix minor typo.
32711
32712         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
32713         which is now supported on Windows. With this implementation using the
32714         Library Project feature is no different on Windows than on UNIX.
32715
32716 2004-06-14  Vincent Celier  <celier@gnat.com>
32717
32718         * makegpr.adb (Compile_Sources): Nothing to do when there are no
32719         non-Ada sources.
32720
32721         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
32722
32723         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
32724         found, show the project name and the path of the previously parsed
32725         project file.
32726
32727 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
32728
32729         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
32730         array, avoid copying the actual before the call.
32731
32732 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
32733
32734         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
32735         Instead, allocate memory on worst-case alignment assumptions, and then
32736         return an aligned address within the allocated zone.
32737
32738 2004-06-14  Robert Dewar  <dewar@gnat.com>
32739
32740         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
32741         elab entities in predefined units in No_Run_Time_Mode.
32742         (Gen_Adainit_C): Same fix
32743         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
32744         units in No_Run_Time_Mode
32745         (Gen_Elab_Calls_C): Same fix
32746
32747         * symbols-vms-alpha.adb: Minor reformatting
32748
32749         * g-debpoo.ads: Minor reformatting
32750
32751         * lib.adb (In_Same_Extended_Unit): Version working on node id's
32752
32753         * lib.ads (In_Same_Extended_Unit): Version working on node id's
32754
32755         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
32756         working on nodes.
32757
32758         * make.adb: Minor reformatting
32759
32760         * par-ch12.adb: Minor reformatting
32761
32762         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
32763
32764         * prj-strt.adb: Minor reformatting
32765
32766         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
32767         be more general.
32768
32769         * sem_attr.adb: Minor reformatting
32770
32771         * sem_ch7.adb: Minor reformatting
32772
32773         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
32774         for type in the same unit as the object declaration.
32775
32776         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
32777         static string expressions and not just string literals.
32778         Minor reformatting
32779         (Set_Warning): Reset restriction warning flag for restriction pragma
32780         Implement pragma Profile_Warnings
32781         Implement pragma Profile (Restricted)
32782         Give obolescent messages for old restrictions and pragmas
32783
32784         * snames.h, snames.ads, snames.adb: Add new entry for pragma
32785         Profile_Warnings.
32786
32787         * s-rident.ads: Add declarations for restrictions required by profile
32788         Restricted and profile Ravenscar.
32789
32790         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
32791
32792         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
32793         configuration pragmas.
32794
32795 2004-06-11  Vincent Celier  <celier@gnat.com>
32796
32797         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
32798         gnatsym, when symbol policy is Restricted.
32799
32800         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
32801         gnatsym, when symbol policy is Restricted.
32802
32803         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
32804         read the symbol file.
32805         (Finalize): Fail in symbol policy Restricted if a symbol in the original
32806         symbol file is not in the object files. Do not create a new symbol file
32807         when symbol policy is Restricted.
32808
32809         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
32810         in Scng.
32811
32812         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
32813         Restricted.
32814         (Usage): Line for new switch -R
32815
32816         * make.adb (Initialize): When the platform is not VMS, add the
32817         directory where gnatmake is invoked in the front of the path, if
32818         gnatmake is invoked with directory information.  Change the Scan_Args
32819         while loop to a for loop.
32820         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
32821         if Depth is equal or greater than the proposed depth, there is nothing
32822         to do.
32823         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
32824         instead of 0.
32825
32826         * prj.ads: Add new symbol policy Restricted.
32827
32828         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
32829         with the new parameters Check_All_Labels and Case_Location.
32830
32831         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
32832         (Library_Symbol_File needs to be defined).
32833
32834         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
32835         and Case_Location If Check_All_Labels is True, check that all values of
32836         the string type are used, and output warning(s) if they are not.
32837
32838         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
32839         and Case_Location.
32840
32841         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
32842
32843         * gnat_ugn.texi: Update documentation about the library directory in
32844         Library Projects.
32845
32846         * makegpr.adb (Display_Command): In verbose mode, also display the
32847         value of the CPATH env var, when the compiler is gcc.
32848         (Initialize): Change the Scan_Args while loop to a for loop
32849         (Compile_Individual_Sources): Change directory to object directory
32850         before compilations.
32851
32852         * symbols.ads: New symbol policy Restricted.
32853
32854 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
32855
32856         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
32857         is now taken care of internally in the Exception_Propagation package
32858         and does not require clients assistance any more.
32859
32860         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
32861         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
32862         functions. Helpers to maintain a predicate required in the handling of
32863         occurrence transfer between tasks.
32864         This is now handled internally and does not require clients assistance
32865         for the setup/propagate separation anymore.
32866         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
32867         allocation strategy, handle the Setup_And_Not_Propagated predicate and
32868         document.
32869
32870         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
32871         raise_after_setup, now that everything is handled internally within the
32872         setup/propagation engine.
32873
32874 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
32875
32876         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
32877         Add additional conditions for the case of an actual being a simple
32878         name or literal. Improve inlining by preventing the generation
32879         of temporaries with a short lifetime (one use).
32880
32881 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
32882
32883         PR ada/15587
32884         * einfo.ads: Minor comment updates for Has_Completion and
32885         E_Constant list of flags.
32886
32887         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
32888         and constant redeclarations now set the Has_Completion flag of their
32889         defining identifiers.
32890
32891         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
32892         Inspect_Deferred_Constant_Completion.
32893         Used to detect private deferred constants that have not been completed
32894         either by a constant redeclaration or pragma Import. Emits error message
32895         "constant declaration requires initialization expression".
32896
32897         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
32898         completes a deferred constant.
32899
32900 2004-06-11  Geert Bosch  <bosch@gnat.com>
32901
32902         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
32903
32904         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
32905         calculating exponent for scaling denormal numbers.
32906         (Leading_Part): Properly raise Constraint_Error for zero or negative
32907         Adjustment.
32908         (Remainder): Properly raise Constraint_Error for zero divisor.
32909
32910 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
32911
32912         * sem_util.adb: Minor reformatting.
32913
32914         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
32915         dereference when accessing the entry parameter record.
32916         (Check_Array_Type): Always check for possible implicit dereference.
32917         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
32918         Abort if a pointer is still present (denoting that an implicit
32919         dereference was left in the tree by the front-end).
32920
32921         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
32922         dereference when accessing the entry parameter record.
32923         (Check_Array_Type): Always check for possible implicit dereference.
32924         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
32925         Abort if a pointer is still present (denoting that an implicit
32926         dereference was left in the tree by the front-end).
32927
32928 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
32929
32930         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
32931         message, like the compiler itself does. Easier to parse the output.
32932
32933         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
32934
32935         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
32936         be base names, and not includes directories.
32937
32938 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
32939
32940         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
32941         so that dependencies are properly taken into account by make.
32942
32943 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
32944
32945         PR ada/15622
32946         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
32947         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
32948
32949 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
32950
32951         * Makefile.in (install-gnatlib): install target-specific run-time files.
32952
32953         * Make-lang.in: Remove obsolete targets.
32954
32955 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
32956
32957         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
32958         specification, to catch misuses of program unit names.
32959
32960         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
32961         superfluous conversions in an instance.
32962
32963 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
32964
32965         PR ada/15403
32966         * sem_ch12.adb (Save_References): If operator node has been folded to
32967         enumeration literal, associated_node must be discarded.
32968
32969 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
32970
32971         * s-stchop-vxworks.adb: Add required pragma Convention to
32972         Task_Descriptor because it is updated by a C function.
32973
32974 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
32975
32976         PR ada/15568
32977         * Makefile.in: Remove target specific SO_OPT on IRIX
32978
32979 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32980
32981         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
32982         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
32983         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
32984         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
32985         (STMT_STMT, USE_STMT): New statement codes.
32986         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
32987         * ada-tree.h: Reflect above changes.
32988         (struct tree_loop_id): Deleted.
32989         (union lang_tree_node, struct lang_decl, struct lang_type):
32990         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
32991         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
32992         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
32993         (IS_ADA_STMT): New macro.
32994         * decl.c (annotate_decl_with_node): New function.
32995         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
32996         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
32997         Call add_stmt_with_node to do needed assignments.
32998         Add call to update setjmp buffer directly, not via EXPR_STMT.
32999         (maybe_variable): Argment GNAT_NODE deleted.
33000         * gigi.h (maybe_variable): Likewise.
33001         (make_transform, add_stmt_with_node, set_block_for_group): New.
33002         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
33003         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
33004         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
33005         (set_lineno, set_lineno_from_sloc): Likewise.
33006         (record_code_position, insert_code_for): Likewise.
33007         (gnat_poplevel): Now returns void.
33008         (end_subprog_body): Now takes argument.
33009         * misc.c (cgraph.h, tree-inline.h): New includes.
33010         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
33011         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
33012         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
33013         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
33014         (gnat_parse_file): Don't set immediate_size_expand.
33015         Call cgraph functions.
33016         (gnat_expand_expr): Remove most cases.
33017         (record_code_position, insert_code_for): Remove from here.
33018         * trans.c (toplev.h, tree-gimple.h): Now included.
33019         (discard_file_names): Deleted.
33020         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
33021         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
33022         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
33023         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
33024         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
33025         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
33026         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
33027         (set_block_for_group, add_stmt_list): Likewise.
33028         (start_stmt_group): Renamed from start_block_stmt.
33029         (end_stmt_group): Likewise, from end_block_stmt.
33030         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
33031         (gigi): Don't set discard_file_names or call set_lineno.
33032         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
33033         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
33034         Numerous changes throughout to reflect new names and complete
33035         function-at-a-time implementation.
33036         (gnat_expand_stmt): Delete or comment out all cases.
33037         (process_inlined_subprograms): Use add_stmt.
33038         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
33039         call set_lineno; also remove unneeded block handling.
33040         (process_type): Remove unneeded block handling.
33041         (build_unit_elab): Remove calls to deleted functions.
33042         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
33043         (tree-dump.h): Likewise.
33044         (struct ada_binding_level): Add field jmpbuf_decl.
33045         (gnat_define_builtin, gnat_install_builtins): New.
33046         (gnat_gimplify_function, gnat_finalize): Likewise.
33047         (gnat_poplevel): No longer return BLOCK, set it instead.
33048         Remove code dealing with nested functions.
33049         (gnat_init_decl_processing): Also set size_type_node.
33050         Call gnat_install_builtins.
33051         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
33052         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
33053         Remove special-case for "main".
33054         (end_subprog_body): Add arg and rework for tree-ssa.
33055         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
33056         Add case for BOOLEAN_TYPE.
33057         * utils2.c (rtl.h): Now include.
33058         (build_call_raise): Test Debug_Flag_NN directly.
33059         (build_call_alloc_dealloc): Don't use local stack allocation for now.
33060         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
33061         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
33062
33063 2004-06-07  Robert Dewar  <dewar@gnat.com>
33064
33065         * a-direct.ads, einfo.ads: Minor comment updates
33066
33067         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
33068         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
33069         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
33070         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
33071         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
33072
33073         * s-interr-sigaction.adb: Remove unreferenced variable
33074         (Attached_Interrupts).  Minor reformatting.
33075         Avoid use of variable I (replace by J).
33076
33077         * par-ch10.adb: Fix text of one error message
33078
33079         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
33080         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
33081         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
33082         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
33083         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
33084         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
33085         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
33086         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
33087         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
33088         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
33089         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
33090         2005 support.
33091
33092 2004-06-07  Doug Rupp  <rupp@gnat.com>
33093
33094         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
33095
33096         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
33097
33098         * mlib-tgt-vms-ia64.adb: New file.
33099
33100         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
33101         Add mlib-tgt-vms-ia64.adb
33102         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
33103         Move to alpha specific ifeq section.
33104         Add VMS specific versions of symbols.adb
33105         Renaming of 5q vms files.
33106
33107         * 5qsystem.ads renamed to system-vms_64.ads.
33108
33109 2004-06-07  Vincent Celier  <celier@gnat.com>
33110
33111         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
33112         explain that when a time of day corresponding to the non existing hour
33113         on the day switching to DST is specified, Split may return a different
33114         value for Seconds.
33115
33116         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
33117         to GNAT PRETTY.
33118
33119         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
33120         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
33121
33122         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
33123         to False.
33124         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
33125         the linking options.
33126         (Build_Library.Check_Libs): On VMS, if there is a dependency on
33127         g-trasym.ads, set Gtrasymobj_Needed to True.
33128
33129         * prj-attr.adb: Add new package Metrics for gnatmetric
33130
33131         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
33132         canonical case to take into account files with upper case characters on
33133         Windows.
33134         (Ada_Check): Load the reference symbol file name in the name buffer to
33135         check it, not the symbol file name.
33136
33137         * snames.ads, snames.adb: Add standard name Metrics (name of project
33138         file package for gnatmetric).
33139
33140         * vms_conv.ads: Add Metric to Comment_Type
33141
33142         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
33143
33144         * vms_data.ads: Add qualifiers for GNAT METRIC
33145
33146         * makegpr.adb (Link_Executables): Take into account the switches
33147         specified in package Linker of the main project.
33148
33149 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
33150
33151         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
33152         the index of the last element is Units.Last, not Units.Table'Last
33153         (which is usually not a valid index within the actually allocated
33154         storage for the table).
33155
33156         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
33157         determines whether to generate a call to a checked storage pool
33158         Dereference action.
33159         Generate such a call only for a dereference that either comes from
33160         source, or is the result of rewriting a dereference that comes from
33161         source.
33162
33163 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
33164
33165         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
33166
33167 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
33168
33169         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
33170         file level, elaborate the stride for inner dimensions in alignment
33171         units, not bytes.
33172
33173         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
33174         in a comment.
33175
33176 2004-06-07  Javier Miranda  <miranda@gnat.com>
33177
33178         * exp_ch6.adb: Correct wrong modification in previous patch
33179
33180 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
33181
33182         * g-trasym.ads: Corrected comment to properly reflect level of support
33183         on VMS.
33184
33185 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
33186
33187         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
33188         includes case of a variable referenced on the left hand side of an
33189         assignment, therefore remove redundant code. Variables and prefixes of
33190         indexed or selected components are now marked as referenced on left
33191         hand side. Warnings are now properly emitted when variables or prefixes
33192         are assigned but not read.
33193
33194         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
33195         left hand side referenced variables. Private access types do not
33196         produce the warning "variable ... is assigned but never read".
33197         Add also additional checks to left hand side referenced variables.
33198         Aliased, renamed objects and access types do not produce the warning
33199         "variable ... is assigned but never read" since other entities may read
33200         the memory location.
33201
33202 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
33203
33204         * Makefile.in: In the powerpc/vxworks-specific section, restore
33205         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
33206         by mistake).
33207
33208 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
33209
33210         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
33211         predefined operators.
33212         Removes spurious type errors from g-trasym-vms.adb.
33213
33214         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
33215         distinct from the operator appearing in the source, call appropriate
33216         routine to insert conversions when needed, and complete resolution of
33217         node.
33218         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
33219         interpretations for rewritten right operand.
33220         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
33221         the other operand is overloaded and the context is a type conversion.
33222
33223 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33224
33225         * ada-tree.def (BLOCK_STMT): Now has two operands.
33226         (BREAK_STMT): New.
33227
33228         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
33229
33230         * gigi.h: (gnat_poplevel): Now returns a tree.
33231
33232         * trans.c (end_block_stmt): Add arg; all callers changed.
33233         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
33234         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
33235         (add_stmt): Set TREE_TYPE.
33236         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
33237         (gnat_expand_stmt, case BREAK_STMT): New case.
33238
33239         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
33240
33241 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
33242
33243         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
33244         procedure Set_Stack_Size that is not needed.
33245
33246 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
33247
33248         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
33249         used for gnatpp input file and for the files upon which it depends
33250
33251 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
33252
33253         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
33254
33255 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
33256
33257         * gnatvsn.ads: Bump version numbers appropriately.
33258         Add new build type.
33259
33260 2004-06-07  Pascal Obry  <obry@gnat.com>
33261
33262         * gnat_ugn.texi: Improve comments about imported names and link names
33263         on Windows. Add a note about the requirement to use -k gnatdll's option
33264         when working with a DLL which has stripped stdcall symbols (no @nn
33265         suffix).
33266
33267 2004-05-27  Vincent Celier  <celier@gnat.com>
33268
33269         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
33270         COMMENTS_LAYOUT=UNTOUCHED
33271
33272         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
33273         symbols-vms-alpha.adb
33274
33275 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
33276
33277         * sem.ads: Clarify documentation on checks suppression.
33278
33279         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
33280
33281 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
33282
33283         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
33284         the case of multiple derivations.
33285         (Is_Object_Reference): For a selected component, verify that the prefix
33286         is itself an object and not a value.
33287
33288         * sem_ch12.adb (Same_Instantiated_Constant): New name for
33289         Same_Instantiated_Entity.
33290         (Same_Instantiated_Variable): Subsidiary to
33291         Check_Formal_Package_Instance, to recognize actuals for in-out generic
33292         formals that are obtained from a previous formal package.
33293         (Instantiate_Subprogram_Body): Emit proper error when
33294         generating code and the proper body of a stub is missing.
33295
33296         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
33297         has a universal interpretation, do the disambiguation here.
33298
33299         * exp_ch4.adb (Expand_N_Type_Conversion,
33300         Expand_N_Unchecked_Type_Conversion): Special handling when target type
33301         is Address, to avoid typing anomalies when Address is a visible integer
33302         type.
33303
33304         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
33305         to determine whether a subprogram should not be marked Pure, even when
33306         declared in a pure package.
33307
33308 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
33309
33310         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
33311
33312         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
33313         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
33314         Update the documentation about the Ravenscar profile, following the
33315         definition found in AI-249.
33316
33317         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
33318         setting the Profile (Ravenscar). This must be done in addition to
33319         setting the required restrictions.
33320
33321         * rtsfind.ads: Add the set of operations defined in package
33322         Ada.Interrupts.
33323
33324         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
33325         restriction.
33326
33327 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
33328
33329         lang-specs.h: Always require -c or -S and always redirect to /dev/null
33330         if -gnatc or -gnats is passed.
33331
33332 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
33333
33334         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
33335         a significant reference. Warnings are now properly emitted when a
33336         discriminated type is not referenced.
33337
33338         * lib-xref.adb (Generate_Reference): A deferred constant completion,
33339         record representation clause or record type discriminant does not
33340         produce a reference to its corresponding entity. Warnings are now
33341         properly emitted when deferred constants and record types are not
33342         referenced.
33343
33344 2004-05-27  Geert Bosch  <bosch@gnat.com>
33345
33346         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
33347         Fixes ACATS Annex G tests.
33348
33349 2004-05-27  Robert Dewar  <dewar@gnat.com>
33350
33351         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
33352         handling WITH
33353
33354 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
33355
33356         * s-interr.adb (Server_Task): Take into account case of early return
33357         from sigwait under e.g. linux.
33358
33359 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
33360
33361         * gnat_ugn.texi: Add description for the new gnatpp options:
33362          -rnb - replace the original source without creating its backup copy
33363          -c0 - do not format comments
33364
33365 2004-05-24  Geert Bosch  <bosch@gnat.com>
33366
33367         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
33368         with 192 bits of precision, sufficient to reduce a double-extended
33369         arguments X with a maximum relative error of T'Machine_Epsilon, for X
33370         in -2.0**32 .. 2.0**32.
33371         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
33372         reduction by the processor, which only uses a 68-bit approximation of
33373         Pi.
33374         (Tan): Always reduce arguments and compute function either using
33375         the processor's fptan instruction, or by dividing sin and cos as needed.
33376
33377 2004-05-24  Doug Rupp  <rupp@gnat.com>
33378
33379         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
33380         gcc error on 32/64 bit VMS.
33381
33382 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
33383
33384         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
33385         since this is what we get for stack overflows although not documented
33386         as such.
33387         Document the issues which may require adjustments to our signal
33388         handlers.
33389
33390 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
33391
33392         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
33393         enclosing dynamic scope if the instantiation is within a generic unit.
33394
33395 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
33396
33397         * exp_dbug.ads: Fix typo.
33398
33399         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
33400         Rename it to its proper name: system-linux-ia64.ads
33401         (stamp-gnatlib1): Remove extra target specific run time files when
33402         setting up the rts directory.
33403
33404 2004-05-24  Javier Miranda  <miranda@gnat.com>
33405
33406         * einfo.ads, einfo.adb (Limited_Views): Removed.
33407         (Limited_View): New attribute that replaces the previous one. It is
33408         now a bona fide package with the limited-view list through the
33409         first_entity and first_private attributes.
33410
33411         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
33412         limited-private-with clause.
33413         (Install_Limited_Withed_Unit): Install the private declarations of a
33414         limited-private-withed package. Update the installation of the shadow
33415         entities according to the new structure (see Build_Limited_Views)
33416         (Build_Limited_Views): Replace the previous implementation of the
33417         limited view by a package entity that references the first shadow
33418         entity plus the first shadow private entity (required for limited-
33419         private-with clause)
33420         (New_Internal_Shadow_Entity): Code cleanup.
33421         (Remove_Limited_With_Clause): Update the implementation to undo the
33422         new work carried out by Build_Limited_Views.
33423         (Build_Chain): Complete documentation.
33424         Replace Ada0Y by Ada 0Y in comments
33425         Minor reformating
33426
33427         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
33428         types the level of accessibility depends on the enclosing type
33429         declaration.
33430
33431         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
33432         entities. Complete documentation of previous change.
33433
33434 2004-05-24  Robert Dewar  <dewar@gnat.com>
33435
33436         * namet.adb: Minor reformatting
33437         Avoid use of name I (replace by J)
33438         Minor code restructuring
33439
33440         * sem_ch6.adb: Minor reformatting
33441
33442         * lib-writ.adb: Do not set restriction as active if this is a
33443         Restriction_Warning case.
33444
33445         * sem_prag.adb: Reset restriction warning flag if real pragma
33446         restriction encountered.
33447
33448         * s-htable.adb: Minor reformatting
33449         Change rotate count to 3 in Hash (improves hash for small strings)
33450
33451         * 5qsystem.ads: Add comments for type Address (no literals allowed).
33452
33453         * gnat_ugn.texi: Add new section of documentation "Code Generation
33454         Control", which describes the use of -m switches.
33455
33456 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
33457
33458         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
33459         through the DECL_INITIAL for renamed variables.
33460
33461 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
33462
33463         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
33464
33465 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
33466
33467         * exp_dbug.ads: Correct comments concerning handling of overloading,
33468         since we no longer use $ anymore.
33469
33470 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
33471
33472         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
33473         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
33474         with illegal subunits.
33475
33476 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
33477
33478         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
33479         body with front-end inlining enabled, check whether an inline pragma
33480         appears immediately after the body and applies to it.
33481
33482         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
33483         enabled and the pragma appears after the body of the subprogram.
33484
33485 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33486
33487         Part of function-at-a-time conversion
33488
33489         * misc.c (adjust_decl_rtl): Deleted.
33490         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
33491         Define.
33492
33493         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
33494         (add_decl_stmt, add_stmt, block_has_vars): New functions.
33495         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
33496
33497         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
33498         when making a decl.
33499         (gnat_to_gnu_entity): Likewise.
33500         Use add_stmt to update setjmp buffer.
33501         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
33502         flush_addressof.
33503         No longer call adjust_decl_rtl.
33504         (DECL_INIT_BY_ASSIGN_P): New macro.
33505         (DECL_STMT_VAR): Likewise.
33506
33507         * trans.c (gigi): Call start_block_stmt to make the outermost
33508         BLOCK_STMT.
33509         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
33510         Call start_block_stmt and end_block_stmt temporarily.
33511         Use gnat_expand_stmt instead of expand_expr_stmt.
33512         (add_decl_stmt): New function.
33513         (tree_transform): Call it.
33514         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
33515         (end_block_stmt): Set type and NULL_STMT.
33516         (gnat_expand_stmt): Make recursize call instead of calling
33517         expand_expr_stmt.
33518         (gnat_expand_stmt, case DECL_STMT): New case.
33519         (set_lineno_from_sloc): Do nothing if global.
33520         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
33521         (start_block_stmt, add_stmt, end_block_stmt): New functions.
33522         (build_block_stmt): Call them.
33523         (gnat_to_code): Don't expand NULL_STMT.
33524         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
33525         args.
33526         (tree_transform): Likewise.
33527         (tree_transform, case N_Null_Statement): Return NULL_STMT.
33528         (gnat_expand_stmt, case NULL_STMT): New case.
33529         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
33530         IF_STMT_TRUE.
33531
33532         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
33533         TREE_ADDRESSABLE.
33534
33535         * utils.c (create_var_decl): Do not call expand_decl or
33536         expand_decl_init.
33537         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
33538         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
33539         here.
33540         (struct e_stack): Add chain_next to GTY.
33541         (struct binding_level): Deleted.
33542         (struct ada_binding_level): New struct.
33543         (free_block_chain): New.
33544         (global_binding_level, clear_binding_level): Deleted.
33545         (global_bindings_p): Rework to see if no chain.
33546         (kept_level_p, set_block): Deleted.
33547         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
33548         new data structure and work directly on BLOCK node.
33549         (gnat_poplevel): Similarly.
33550         (get_decls): Look at BLOCK_VARS.
33551         (insert_block): Work directly on BLOCK node.
33552         (block_has_var): New function.
33553         (pushdecl): Rework for new binding structures.
33554         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
33555         poplevel.
33556         (build_subprog_body): Likewise.
33557         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
33558
33559         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
33560
33561         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
33562         (DECL_STMT_VAR): Likewise.
33563
33564 2004-05-17  Robert Dewar  <dewar@gnat.com>
33565
33566         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
33567         procedure
33568
33569         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
33570         of restriction synonyums by using
33571         Restrict.Process_Restriction_Synonyms.
33572
33573         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
33574
33575         * s-restri.ads (Tasking_Allowed): Correct missing comment
33576
33577         * s-rident.ads: Add entries for restriction synonyms
33578
33579         * ali.adb: Fix some problems with badly formatted ALI files that can
33580         result in infinite loops.
33581
33582         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
33583         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
33584         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
33585         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
33586         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
33587         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
33588         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
33589         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
33590         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
33591         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
33592         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
33593         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
33594         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
33595         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
33596         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
33597         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
33598         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
33599         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
33600         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
33601         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
33602         to Task_Id (minor cleanup).
33603
33604 2004-05-17  Vincent Celier  <celier@gnat.com>
33605
33606         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
33607         directory separator.
33608
33609         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
33610         project being extended, if Languages is not declared in extending
33611         project.
33612
33613 2004-05-17  Javier Miranda  <miranda@gnat.com>
33614
33615         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
33616         limited view of a visible sibling.
33617
33618 2004-05-14  Robert Dewar  <dewar@gnat.com>
33619
33620         * gnat_ugn.texi: Minor change to -gnatS documentation
33621
33622         * sprint.adb: Remove some instances of Assert (False) and for this
33623         purpose replace them by output of a ??? string.
33624
33625         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
33626         Assert (False).
33627
33628         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
33629         flag processing. This was suppressing required dependencies in
33630         No_Run_Time mode and is not needed since the binder does not generate
33631         references for things in libgnat anyway.
33632
33633         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
33634         warning.
33635
33636 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
33637
33638         * gnat_ugn.texi: Document AIX-specific issue with initialization of
33639         resolver library.
33640
33641         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
33642         action for the case of an actual parameter in an init proc call.
33643
33644 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
33645
33646         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
33647         subtype, check visible entities in base type.
33648
33649         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
33650         actions if the object is a renaming.
33651
33652         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
33653         Check_Formal_Package_Instance, to determine more precisely when the
33654         formal and the actual denote the same entity.
33655
33656 2004-05-14  Javier Miranda  <miranda@gnat.com>
33657
33658         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
33659
33660         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
33661         corresponding to a private_with must be removed from visibility; it
33662         will be made visible later, just before we analyze the private part of
33663         the package.
33664         (Check_Private_Child_Unit): Allow private_with clauses in public
33665         siblings.
33666         (Install_Siblings): Make visible the private entities of private-withed
33667         siblings.
33668         (Install_Withed_Unit): Do not install the private withed unit if we
33669         are compiling a package declaration and the Private_With_OK flag was
33670         not set by the caller. These declarations will be installed later,
33671         just before we analyze the private part of the package.
33672
33673         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
33674         during the evaluation of the expression that initializes the object,
33675         decorate it with the expected type to avoid cascade errors.
33676         Code cleanup.
33677
33678         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
33679         subprogram we have to install the private_with clauses after its
33680         specification has been analyzed (as documented in AI-262.TXT).
33681
33682         * sem_ch8.adb (Has_Private_With): New function. Determines if the
33683         current compilation unit has a private with on a given entity.
33684         (Find_Direct_Name): Detect the Beaujolais problem described in
33685         AI-262.TXT
33686
33687         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
33688         provides the functionality of the function Is_Ancestor that was
33689         previously available in sem_ch10. It has been renamed to avoid
33690         overloading.
33691
33692         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
33693
33694 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33695
33696         * utils.c (build_vms_descriptor): Use SImode pointers.
33697
33698 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
33699
33700         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
33701
33702 2004-05-14  GNAT Script  <nobody@gnat.com>
33703
33704         * Make-lang.in: Makefile automatically updated
33705
33706 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
33707
33708         Renaming of target specific files for clarity
33709
33710         * Makefile.in: Rename GNAT target specific files.
33711
33712         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
33713         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
33714         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
33715         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
33716         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
33717         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
33718         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
33719         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
33720         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
33721         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
33722         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
33723         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
33724         51osinte.adb, 51osinte.ads, 51system.ads,
33725         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
33726         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
33727         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
33728         56tpopsp.adb, 57system.ads, 58system.ads,
33729         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
33730         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
33731         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
33732         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
33733         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
33734         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
33735         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
33736         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
33737         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
33738         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
33739         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
33740         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
33741         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
33742         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
33743         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
33744         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
33745         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
33746         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
33747         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
33748         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
33749         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
33750         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
33751         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
33752         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
33753         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
33754         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
33755         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
33756         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
33757         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
33758         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
33759         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
33760         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
33761         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
33762         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
33763         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
33764         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
33765         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
33766         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
33767         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
33768         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
33769
33770         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
33771         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
33772         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
33773         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
33774         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
33775         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
33776         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
33777         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
33778         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
33779         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
33780         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
33781         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
33782         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
33783         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
33784         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
33785         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
33786         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
33787         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
33788         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
33789         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
33790         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
33791         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
33792         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
33793         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
33794         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
33795         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
33796         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
33797         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
33798         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
33799         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
33800         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
33801         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
33802         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
33803         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
33804         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
33805         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
33806         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
33807         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
33808         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
33809         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
33810         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
33811         s-osinte-vms.ads, s-osinte-vxworks.adb,
33812         s-osinte-vxworks.ads, s-osprim-mingw.adb,
33813         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
33814         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
33815         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
33816         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
33817         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
33818         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
33819         s-stchop-vxworks.adb, s-taprop-dummy.adb,
33820         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
33821         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
33822         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
33823         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
33824         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
33825         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
33826         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
33827         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
33828         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
33829         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
33830         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
33831         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
33832         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
33833         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
33834         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
33835         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
33836         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
33837         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
33838         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
33839         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
33840         system-irix-o32.ads, system-linux-x86_64.ads,
33841         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
33842         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
33843         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
33844         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
33845         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
33846         system-vxworks-mips.ads, system-vxworks-ppc.ads,
33847         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
33848         above.
33849
33850 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
33851
33852         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
33853
33854 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
33855
33856         Merge from tree-ssa-20020619-branch.
33857
33858         * config-lang.in (boot_language, build_by_default): Set
33859         to no.
33860         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
33861         (max_size): Add static chain op for call_expr.
33862
33863 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
33864
33865         PR target/15331
33866         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
33867
33868 2004-05-11  Roger Sayle  <roger@eyesopen.com>
33869
33870         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
33871         COND_EXPR.
33872
33873 2004-05-10  Doug Rupp  <rupp@gnat.com>
33874
33875         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
33876         system.aux_dec.
33877
33878         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
33879
33880         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
33881
33882         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
33883         Fixes undefined symbols in IA64 gnatlib.
33884
33885         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
33886
33887         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
33888         Short_Address). This will be moved to system.auxdec.
33889
33890 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
33891
33892         * sem_util.adb: Replace test for presence of a node that is always
33893         present with a call to Discard_Node.
33894
33895         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
33896         Analyze on the library unit node after generation of distribution stub
33897         constructs.  The call was a no-op because Unit_Node has already been
33898         Analyzed, and the tree fragments for the distribution stubs are
33899         analyzed as they are inserted in Exp_Dist.
33900         Update comment regarding to distribution stubs to reflect that we
33901         do not generate stub in separate files anymore.
33902
33903         * einfo.ads: Clarify the fact that a tagged private type has the
33904         E_Record_Type_With_Private Ekind.
33905
33906         * erroutc.adb: Minor reformatting
33907
33908         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
33909         values if line length is increased using -gnatyM (noticed during code
33910         reading).
33911
33912         * eval_fat.adb: Minor reformatting
33913         Put spaces around exponentiation operator
33914
33915 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
33916
33917         PR ada/15005
33918         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
33919         has been rewritten as an explicit dereference, retrieve type of
33920         original node to check for possibly unconstrained record type.
33921
33922 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
33923
33924         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
33925         overriding, use the operation of the parent unconditionally.
33926
33927         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
33928         operation when either operand is a literal, to avoid further
33929         ambiguities.
33930
33931         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
33932         overridden by a previous explicit declaration, mark the previous entity
33933         as overriding.
33934
33935         * sem_disp.adb (Check_Dispatching_Operation): New predicate
33936         Is_Visibly_Controlled, to determine whether a declaration of a
33937         primitive control operation for a derived type overrides an inherited
33938         one. Add warning if the explicit declaration does not override.
33939
33940 2004-05-10  Vincent Celier  <celier@gnat.com>
33941
33942         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
33943         some cases when the sources are no longer present.
33944
33945         * make.adb (Collect_Arguments): Fail if an external source, not part
33946         of any project need to be compiled, when switch -x has not been
33947         specified.
33948
33949         * makeusg.adb: Document new switch -x
33950
33951         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
33952         defaulted to False.
33953
33954         * switch-m.adb (Scan_Make_Switches): New switch -x
33955
33956         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
33957         gnatmake switch -x.
33958
33959         * gnat_ugn.texi: Document new gnatmake switch -x
33960
33961 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
33962
33963         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
33964
33965         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
33966         (process_attributes): Likewise.
33967
33968 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
33969
33970         * s-inmaop.ads: Fix spelling mistake in one of the comments.
33971
33972 2004-05-10  Robert Dewar  <dewar@gnat.com>
33973
33974         * gnat_ugn.texi: Document that for config pragma files, the maximum
33975         line length is always 32767.
33976
33977         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
33978         literals is now allowed.
33979
33980         * gnat-style.texi: Remove statement about splitting long lines before
33981         an operator rather than after, since we do not follow this rule at all.
33982         Clarify rule (really lack of rule) for spaces around exponentiation
33983
33984         * sem_elim.adb: Allow concatenation of string literals as well as a
33985         single string literal for pragma arguments.
33986
33987         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
33988
33989         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
33990         written for append case.
33991
33992         * frontend.adb: Changes to avoid checking max line length in config
33993         pragma files.
33994
33995         * g-os_lib.ads: Minor reformatting
33996
33997         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
33998         wrong in any case. Instead use standard value. Noticed during code
33999         reading.
34000
34001         * opt.ads (Max_Line_Length): New field, used to implement removal of
34002         limitation on length of lines when scanning config pragma files.
34003
34004         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
34005         makeutl.ads, makeutl.adb: Minor reformatting
34006
34007         * scn.adb: Do not check line length while scanning config pragma files
34008         Do not check line length while scanning out license information
34009
34010         * scng.adb: Changes to avoid line length checks while parsing config
34011         pragma files.
34012
34013 2004-05-10  GNAT Script  <nobody@gnat.com>
34014
34015         * Make-lang.in: Makefile automatically updated
34016
34017 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
34018
34019         * osint.adb (Find_Program_Name): Fix handling of VMS version
34020         number.
34021
34022 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
34023
34024         * g-os_lib.ads (Invalid_Time): New constant
34025
34026         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
34027         return OS_Time instead of time_t to match what is imported by Ada.
34028         Now return -1 if the file doesn't exist, instead of a random value
34029
34030 2004-05-05  Robert Dewar  <dewar@gnat.com>
34031
34032         * usage.adb: Add line for -gnatR?s switch
34033
34034         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
34035
34036         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
34037         and for Match (Data_First, Data_last)
34038
34039         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
34040         written when we are dealing with multi-unit files.
34041
34042 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
34043
34044         * Makefile.in: Remove unused targets and variables.
34045
34046 2004-05-05  Vincent Celier  <celier@gnat.com>
34047
34048         * switch-m.adb: New gnatmake switch -eI
34049
34050         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
34051         of new gnatmake switch -eInnn.
34052
34053         * makegpr.adb: Take into account new parameters Index and Src_Index in
34054         Prj.Util.
34055
34056         * clean.adb: Implement support for multi-unit sources, including new
34057         switch -i.
34058
34059         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
34060         Src_Index.
34061
34062         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
34063         (Extract_From_Q): New out parameter Index
34064         (Mark, Is_Marked): Subprograms moved to Makeutl
34065         (Switches_Of): New parameter Source_Index
34066         (Add_Switch): New parameter Index
34067         (Check): New parameter Source_Index
34068         (Collect_Arguments): New parameter Source_Index
34069         (Collect_Arguments_And_Compile): New parameter Source_Index
34070         (Compile): New parameter Source_Index
34071         Put subprograms in alphabetical order
34072         Add support for multi-source sources, including in project files.
34073
34074         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
34075         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
34076         Make.
34077
34078         * makeusg.adb: New gnatmake switch -eInnn
34079
34080         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
34081         Prj.Util.Value_Of.
34082
34083         * opt.ads (Main_Index): New variable, defaulted to 0.
34084
34085         * osint.ads, osinte.adb (Add_File): New parameter Index
34086         (Current_Source_Index): New function
34087
34088         * prj.adb: Take into account new components Index and Src_Index
34089
34090         * prj.ads (String_Element): New component Index
34091         (Variable_Value): New component Index
34092         (Array_Element): New component Src_Index
34093
34094         * prj-attr.adb: Indicate that optional index may be specified for
34095         attributes Main, Executable, Spec, Body and some of Switches.
34096
34097         * prj-attr.ads (Attribute_Kind): New values for optional indexes
34098         (Attribute_Record): New component Optional_Index
34099
34100         * prj-com.ads (File_Name_Data): New component Index
34101
34102         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
34103
34104         * prj-env.adb (Put): Output optional index
34105
34106         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
34107         attributes Spec and Body.
34108
34109         * prj-nmsc.adb: Process optional indexes
34110
34111         * prj-pp.adb: Ouput "at" for optional indexes
34112
34113         * prj-proc.adb: Take into account optional indexes
34114
34115         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
34116         Optional_Index. For string literal,
34117         process optional index when Optional_Index is True.
34118         (Parse_Expresion): New Boolean parameter Optional_Index
34119
34120         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
34121         (Set_Source_Index_Of): New procedure
34122
34123         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
34124         index.
34125
34126         * prj-util.ads (Executable_Of): New parameter Index
34127         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
34128         New parameter Src_Index, defaulted to 0.
34129
34130 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
34131
34132         PR ada/15257
34133         * sem_ch3.adb (Access_Definition): If this is an access parameter
34134         whose designated type is imported through a limited_with clause, do
34135         not add the enclosing subprogram to the list of private dependents of
34136         the type.
34137
34138 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
34139
34140         PR ada/15258
34141         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
34142         a limited_with clause, and the other is its non-limited view.
34143
34144 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
34145
34146         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
34147
34148         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
34149         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
34150         Stand.Boolean_Literals to produce references to entities
34151         Standard_False and Standard_True from compile-time computed boolean
34152         values.
34153
34154         * stand.ads (Boolean_Literals): New variable, provides the entity
34155         values for False and True, for use by the expander.
34156
34157 2004-05-05  Doug Rupp  <rupp@gnat.com>
34158
34159         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
34160         5vinmaop.adb: Unchecked convert Short_Address vice Address
34161
34162         * adaint.c, raise.c: Caste CRTL function return value
34163         to avoid gcc error on 32/64 bit IVMS.
34164
34165         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
34166         target = IA64/VMS.
34167
34168         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
34169
34170         * 5qsystem.ads (Address): Declare as Long_Integer
34171         (Short_Address): Declare as 32 bit subtype of Address
34172         Declare  abstract address operations to avoid gratuitous ambiguities.
34173
34174 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
34175
34176         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
34177         instead of the old Boolean_Entry_Barriers.
34178         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
34179
34180 2004-05-05  GNAT Script  <nobody@gnat.com>
34181
34182         * Make-lang.in: Makefile automatically updated
34183
34184 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
34185
34186         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
34187
34188 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
34189
34190         PR ada/15152
34191         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
34192         alone. Replacing object references by literals is inappropriate in a
34193         so low level context.
34194
34195 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
34196
34197         * a-exexpr.adb: Add comments
34198
34199 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
34200
34201         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
34202         declare the Ancestor_Tags array in Type_Specific_Data with a small size
34203         without risking a bounds check error when accessing one of its
34204         components.
34205         (Type_Specific_Data): Define Ancestor_Tags as a small array.
34206         This prevents us from hitting a limitation during the debug info
34207         generation when using stabs.
34208
34209         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
34210         small array.
34211         This prevents us from hitting a limitation during the debug info
34212         generation when using stabs.
34213
34214 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
34215
34216         lang-specs.h: Remove -gnatz* from specs.
34217
34218 2004-05-03  Vincent Celier  <celier@gnat.com>
34219
34220         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
34221
34222         * Make-lang.in, Makefile.in: Add gprmake
34223
34224 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
34225
34226         * sem_aggr.adb: Fix typo in comment.
34227
34228 2004-05-03  Robert Dewar  <dewar@gnat.com>
34229
34230         * make.adb: Minor reformatting
34231
34232         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
34233
34234         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
34235         so that it works when address is not a private type.
34236
34237         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
34238         properly with rewritten unchecked conversions. This prevents
34239         order-of-elaboration issues that can otherwise arise.
34240         (Minimum_Size): Don't check size of access types under VMS
34241
34242         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
34243         interpretations of integer literals as type System.Address.
34244
34245         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
34246         (Is_Descendent_Of): New function
34247
34248 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
34249
34250         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
34251         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
34252         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
34253
34254         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
34255         of the old Max_Entry_Queue_Depth.
34256
34257         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
34258         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
34259         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
34260
34261         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
34262         New entry for proper handling of Max_Entry_Queue_Depth.
34263         New entry for proper handling of No_Dynamic_Interrupts.
34264
34265         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
34266         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
34267         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
34268         the GNAT specific restriction Max_Entry_Queue_Depth.
34269         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
34270         the GNAT specific restriction No_Dynamic_Interrupts.
34271
34272         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
34273         instead of the old Boolean_Entry_Barriers.
34274         Use the new restriction No_Dynamic_Attachment instead of the old
34275         No_Dynamic_Interrupts.
34276
34277         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
34278         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
34279
34280         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
34281         of the old Max_Entry_Queue_Depth.
34282
34283 2004-05-03  GNAT Script  <nobody@gnat.com>
34284
34285         * Make-lang.in: Makefile automatically updated
34286
34287 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
34288
34289         * checks.adb (Enable_Range_Check): If the prefix of an index component
34290         is an access to an unconstrained array, perform check unconditionally.
34291
34292 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34293
34294         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
34295         Component_Clause.
34296
34297 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
34298
34299         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
34300         alternate stack setting. There was no support for the tasking cases
34301         and the changes eventually caused a number of side-effect failures in
34302         the non-tasking case too.
34303
34304 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
34305
34306         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
34307         -gnats is passed.
34308
34309 2004-04-29  Vincent Celier  <celier@gnat.com>
34310
34311         * make.adb (Gnatmake): Increase max size of argument array for
34312         gnatbind for the potential addition of -F.
34313         If there are Stand-Alone Library projects, invoke gnatbind with -F to
34314         be sure that elaboration flags will be checked.
34315
34316         * switch-c.adb: Correct call to Scan_Pos for -gnateI
34317
34318 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
34319
34320         * sem_warn.adb (Check_References): Move '<access-variable> may be
34321         null' warning out of under Warn_On_No_Value_Assigned.
34322
34323 2004-04-29  Ed Falis  <falis@gnat.com>
34324
34325         * gnat_ugn.texi: Fixed texi error
34326
34327 2004-04-29  Robert Dewar  <dewar@gnat.com>
34328
34329         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
34330         abstract operations if they come from predefined files.
34331
34332         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
34333         Dynamic, not RM).
34334
34335         * s-addope.adb: Correct obvious error in mod function
34336
34337 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
34338
34339         * Makefile.in: Add target pairs for powerpc darwin*
34340         tasking support.
34341
34342         * a-intnam-darwin.ads, s-osinte-darwin.adb,
34343         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
34344
34345 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
34346
34347         * Makefile.in: Add target macro definitions for s390*-linux*.
34348         * system-linux-s390.ads: New file.
34349         * system-linux-s390x.ads: New file.
34350
34351 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
34352
34353         * gnat_ugn.texi: Correct argument to @setfilename.
34354
34355 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
34356
34357         * a-exexpr.adb (Unwind_Word): New data type.
34358         (Unwind_Exception): Use it as type of Private1 and Private2.
34359
34360         * raise.c (db_action_for): Fix debug printf.
34361
34362 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
34363
34364         * a-wtmoio.ads: Formal type must be a modular type, not a signed
34365         integer type.
34366
34367 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34368
34369         * decl.c (gnat_to_gnu_entity, case object): Call
34370         __builtin_update_setjmp_buf.
34371
34372         * gigi.h (update_setjmp_buf): Deleted.
34373         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
34374
34375         * misc.c: (update_setjmp_buf): Deleted.
34376
34377         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
34378         around block of RTL.
34379
34380         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
34381
34382 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
34383
34384         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
34385         subprogram for which no pragma All_Calls_Remote applies, store the
34386         address of the real subprogram in the underlying record type, so local
34387         dereferences do not go through the PCS.
34388
34389 2004-04-26  Robert Dewar  <dewar@gnat.com>
34390
34391         * i-c.ads: Add some type qualifications to avoid ambiguities when
34392         compiling with s-auxdec.ads and a non-private address type.
34393
34394 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
34395
34396         * Makefile.rtl: Fix error in previous check-in:
34397         Add s-addope.o to non tasking object list (rather than tasking object
34398         list).
34399
34400 2004-04-26  Javier Miranda  <miranda@gnat.com>
34401
34402         * sem_aggr.adb: Fix typo in comments
34403         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
34404         Required to check the null-exclusion attribute.
34405
34406         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
34407         case of anonymous access types in record and array components. For a
34408         component definition the level is the same of the enclosing composite
34409         type.
34410
34411         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
34412         that are anonymous access types the level of accessibility depends on
34413         the enclosing type declaration. In order to have this information, set
34414         the scope of the anonymous access type to the enclosing record type
34415         declaration.
34416         (Array_Type_Declaration): In case of components that are anonymous
34417         access types the level of accessibility depends on the enclosing type
34418         declaration. In order to have this information, set the scope of the
34419         anonymous access type to the enclosing array type declaration.
34420
34421         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
34422         access type.
34423
34424         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
34425         renaming of anonymous access-to-constant types allowed if and only if
34426         the renamed object is access-to-constant.
34427
34428         * sem_util.adb (Type_Access_Level): In case of anonymous access types
34429         that are component_definition or discriminants of a nonlimited type,
34430         the level is the same as that of the enclosing component type.
34431
34432 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
34433
34434         * sem_elim.adb: Some minor code reorganization from code reading. Fix
34435         misprint in the function name (File_Name_Match).
34436
34437 2004-04-23  Laurent Guerby  <laurent@guerby.net>
34438
34439         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
34440         install.
34441
34442 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34443
34444         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
34445
34446 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
34447
34448         * adaint.c (__gnat_try_lock): No longer requires that the parent
34449         directory be writable, the directory itself is enough.
34450         (gnat_is_absolute_path): Change profile, so that the call from
34451         GNAT.OS_Lib can be made more efficient.
34452
34453         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
34454         from GNAT.OS_Lib can be made more efficient.
34455
34456         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
34457         one copy of the file name. Found by code reading.
34458
34459 2004-04-23  Vincent Celier  <celier@gnat.com>
34460
34461         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
34462         Correct documentation on gnatmake switches transmitted to the compiler
34463
34464         * ali.ads: Minor comment fix
34465
34466 2004-04-23  Javier Miranda  <miranda@gnat.com>
34467
34468         * sem_ch6.adb: (Confirming Types): Code cleanup
34469
34470         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
34471         subprogram types: E_Anonymous_Access_Subprogram_Type and
34472         E_Anonymous_Access_Protected_Subprogram_Type.
34473
34474 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
34475
34476         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
34477         whether a pragma All_Calls_Remote applies to the subprogram on which
34478         'Access is taken.
34479         No functional change is introduced by this revision; the new parameter
34480         will be used to allow calls to local RCI subprograms to be optimized
34481         to not use the PCS in the case where no pragma All_Calls_Remote applies,
34482         as is already done in the PolyORB implementation of the DSA.
34483
34484         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
34485         whether a pragma All_Calls_Remote applies to the subprogram on which
34486         'Access is taken.
34487         No functional change is introduced by this revision; the new parameter
34488         will be used to allow calls to local RCI subprograms to be optimized
34489         to not use the PCS in the case where no pragma All_Calls_Remote applies,
34490         as is already done in the PolyORB implementation of the DSA.
34491
34492 2004-04-23  Robert Dewar  <dewar@gnat.com>
34493
34494         * Makefile.rtl: Add entry for s-addope.o in run time library list
34495         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
34496         * s-addope.ads, s-addope.adb: New files.
34497
34498         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
34499         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
34500         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
34501         System.Address to be non-private and signed.
34502
34503         * sem_elim.adb: Minor reformatting (fairly extensive)
34504         Some minor code reorganization from code reading
34505         Add a couple of ??? comments
34506
34507 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34508
34509         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
34510         (tree_transform, case N_If_Statement): Remove non-determinism.
34511
34512         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
34513
34514 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
34515
34516         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
34517         Eliminate' section.
34518
34519         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
34520         no longer used as a parameter name for Eliminate pragma).
34521
34522 2004-04-22  Laurent Guerby  <laurent@guerby.net>
34523
34524         PR optimization/14984
34525         PR optimization/14985
34526         * trans.c (gigi): Fix non determinism leading to bootstrap
34527         comparison failures.
34528
34529 2004-04-21  Pascal Obry  <obry@gnat.com>
34530
34531         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
34532         passed to spawnvp() to properly handle program pathname with spaces on
34533         Win32.
34534
34535 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
34536
34537         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
34538         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
34539         unlocked in case of exceptions.
34540
34541 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
34542
34543         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
34544         This function does not exist anymore.
34545
34546 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
34547
34548         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
34549
34550         * link.c: Move variables to the __gnat name space.
34551
34552         * Makefile.in: list link.o explicitly when needed.
34553
34554         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
34555
34556 2004-04-21  Javier Miranda  <miranda@gnat.com>
34557
34558         * einfo.adb (Original_Access_Type): New subprogram
34559         (Set_Original_Access_Type): New subprogram
34560         (Write_Field21_Name): Write the name of the new field
34561
34562         * einfo.ads (Original_Access_Type): New field present in access to
34563         subprogram types.
34564         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
34565         E_Anonymous_Access_Protected_Subprogram_Type.
34566
34567         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
34568         subprogram types.
34569
34570         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
34571         to anonymous access to subprogram types.
34572
34573         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
34574         to subprogram types.
34575
34576         * sem_ch3.adb (Access_Definition): Complete decoration of entities
34577         corresponding to anonymous access to subprogram types.
34578         (Analyze_Component_Declaration): Add new actual to the call to
34579         subprogram replace_anonymous_access_to_protected_subprogram.
34580         (Array_Type_Declaration): Add new actual to the call to subprogram
34581         replace_anonymous_access_to_protected_subprogram.
34582         (Process_Discriminants): Add new actual to the call to subprogram
34583         replace_anonymous_access_to_protected_subprogram.
34584         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
34585
34586         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
34587         formal.
34588
34589         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
34590         access to subprogram types.
34591
34592         * sem_util.adb (Has_Declarations): Addition of package_specification
34593         nodes.
34594
34595 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
34596
34597         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
34598         inlined flags to renamed entity only if in current unit.
34599
34600 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
34601
34602         * s-parint.ads: Add DSA implementation marker.
34603
34604         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
34605         value of System.Partition_Interface.DSA_Implementation to determine
34606         what version of the distributed systems annex is available (no
34607         implementation, GLADE, or PolyORB).
34608
34609 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
34610
34611         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
34612
34613 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34614
34615         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
34616         with new type if alias sets differ.
34617         Fixes ACATS c41103b.
34618
34619 2004-04-21  Vincent Celier  <celier@gnat.com>
34620
34621         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
34622         Add array Lang_Args for the language specific compiling argument
34623         switches.
34624
34625         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
34626
34627 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
34628
34629         * gnat_rm.texi: Update the descripton of the Eliminate pragma
34630         according to the recent changes in the format of the parameters of the
34631         pragma (replacing Homonym_Number with Source_Location).
34632
34633 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
34634
34635         * 5isystem.ads: Removed, unused.
34636
34637         * gnat_rm.texi: Redo 1.13 change.
34638
34639 2004-04-19  Robert Dewar  <dewar@gnat.com>
34640
34641         * s-stoele.ads: Clean up definition of Storage_Offset (the new
34642         definition is cleaner, avoids the kludge of explicit Standard operator
34643         references, and also is consistent with a visible System.Address with
34644         no visible operations.
34645
34646         * s-geveop.adb: Add declarations to avoid assumption of visible
34647         operations on type System.Address (since these might not be available
34648         if Address is a non-private type for which the operations
34649         are made abstract).
34650
34651         * sem_eval.adb: Minor reformatting
34652
34653         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
34654         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
34655         reformatting (new function spec format).
34656
34657         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
34658         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
34659         s-caun64.adb: Add declarations to avoid assumption of visible
34660         operations on type System.Address (since these might not be available
34661         if Address is a non-private type for which the operations are made
34662         abstract).
34663
34664         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
34665
34666         * exp_intr.adb: Minor comment update
34667
34668         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
34669
34670         * 5omastop.adb: Add declarations to avoid assumption of visible
34671         operations on type System.Address (since these might not be available
34672         if Address is a non-private type for which the operations
34673         are made abstract).
34674
34675 2004-04-19  Vincent Celier  <celier@gnat.com>
34676
34677         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
34678
34679         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
34680         defaulted to Ada.
34681
34682         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
34683         defaulted to Ada.
34684         Call Check with Process_Languages.
34685         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
34686         with Process_Languages.
34687         (Recursive_Check): New Boolean parameter Process_Languages. Call
34688         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
34689         Process_Languages.
34690
34691         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
34692
34693         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
34694         parameter Ada_Main, defaulted to True.
34695         Check for Ada specific characteristics only when Ada_Main is True.
34696
34697         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
34698
34699         * prj.adb: (Project_Empty): Add new Project_Data components.
34700
34701         * prj.ads: New types and tables for non Ada languages.
34702         (Project_Data): New components Languages, Impl_Suffixes,
34703         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
34704         Include_Path, Include_Data_Set.
34705
34706         * prj-env.ads, prj-env.adb: Minor reformatting
34707
34708         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
34709         Put subprograms in alphabetical order
34710
34711         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
34712         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
34713         Opt.Follow_Links.
34714
34715         * mlib-prj.adb: Back out modification in last version, as they are
34716         incorrect.
34717         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
34718
34719         * make.adb: (Mains): Moved to package Makeutl
34720         (Linker_Opts): Moved to package Makeutl
34721         (Is_External_Assignment): Moved to package Makeutl
34722         (Test_If_Relative_Path): Moved to package Makeutl
34723         (Gnatmake): Move sorting of linker options to function
34724         Makeutl.Linker_Options_Switches.
34725
34726         * makeutl.ads, makeutl.adb: New files.
34727
34728         * Makefile.in: Add makeutl.o to the object files for gnatmake
34729
34730         * makeusg.adb: Add line for new switch -eL.
34731
34732         * gnatls.adb (Image): New function.
34733         (Output_Unit): If in verbose mode, output the list of restrictions
34734         specified by pragmas Restrictions.
34735
34736         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
34737         Text_IO.
34738
34739         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
34740         needed, to put it in the range 1970 (included) - 2026 (excluded).
34741         (Time_Of): Do not shift Unix_Min_Year (1970).
34742         Shift the date by multiple of 56 years, if needed, to put it in the
34743         range 1970 (included) - 2026 (excluded).
34744
34745         * adaint.h, adaint.c (__gnat_set_executable): New function.
34746
34747 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34748
34749         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
34750         and pop GC context.
34751         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
34752         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
34753         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
34754         (tree_transform, case N_Code_Statement): Likewise.
34755         (gnat_expand_stmt, case LABEL_STMT): Don't look at
34756         LABEL_STMT_FIRST_IN_EH.
34757         (gnat_expand_stmt, case ASM_STMT): New case.
34758
34759         * utils2.c (build_unary_op): Properly set TREE_READONLY of
34760         UNCONSTRAINED_ARRAY_REF.
34761
34762         * utils.c (poplevel): Temporarily push/pop GC context around inline
34763         function expansion.
34764
34765         * decl.c (maybe_variable): Properly set TREE_READONLY of
34766         UNCONSTRAINED_ARRAY_REF.
34767         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
34768
34769         * ada-tree.def: (ASM_STMT): New.
34770
34771         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
34772         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
34773         ASM_STMT_INPUT): New.
34774         (ASM_STMT_CLOBBER): Likewise.
34775
34776 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
34777
34778         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
34779         general rcheck mechanism to raise Program_Error for E.4(18), instead
34780         of a custom raiser in System.Partition_Interface.
34781         Part of general cleanup work before PolyORB integration.
34782
34783         * snames.ads, snames.adb: Add new runtime library entities and names
34784         for PolyORB DSA.
34785
34786         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
34787         exp_dist.
34788         (Build_Subprogram_Id): New subprogram provided by exp_dist
34789         Code reorganisation in preparation for PolyORB integration.
34790
34791         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
34792         exp_dist.
34793         (Build_Subprogram_Id): New subprogram provided by exp_dist
34794
34795         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
34796         actual parameter types for call to dereference of an
34797         access-to-subprogram type.
34798
34799         * rtsfind.ads: Add new runtime library entities and names for PolyORB
34800         DSA.
34801
34802         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
34803         instead, which has the same behaviour here since we never pass it a
34804         NULL pointer.
34805
34806         * link.c (run_path_option, Solaris case): Use -Wl, as for other
34807         platforms.
34808
34809         * Makefile.in: adjust object file lists for gnatlink and gnatmake
34810         to account for new dependency upon Interfaces.C.Strings + link.o
34811         For x86 FreeBSD, use 86numaux.
34812
34813         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
34814         from Mlib.Tgt to Mlib.
34815
34816         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
34817         target-independent.
34818
34819         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
34820         target-specific versions of this subprogram, now implemented as a
34821         target-independent function in Mlib.
34822
34823         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
34824         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
34825         (Linker_Library_Path_Option): Remove target-specific versions of this
34826         subprogram, now implemented as a target-independent function in Mlib.
34827
34828         * atree.adb: (Allocate_Initialize_Node): New subprogram.
34829         Factors out node table slots allocation.
34830         (Fix_Parents): New subprogram.
34831         Encapsulate the pattern of fixing up parent pointers for syntactic
34832         children of a rewritten node.
34833         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
34834         (Rewrite): Use New_Copy when creating saved copy of original node.
34835         (Replace): Use Copy_Node to copy nodes.
34836
34837 2004-04-19  Javier Miranda  <miranda@gnat.com>
34838
34839         * sprint.adb (Sprint_Node_Actual): Give support to the new
34840         Access_To_Subprogram node available in Access_Definition nodes. In
34841         addition, give support to the AI-231 node fields: null-exclusion,
34842         all-present, constant-present.
34843
34844         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
34845
34846         * sinfo.ads, sinfo.adb:
34847         New field Access_To_Subprogram_Definition in Access_Definition nodes
34848
34849         * sem_ch6.adb (Process_Formals): Move here the code that creates and
34850         decorates internal subtype declaration corresponding to the
34851         null-excluding formal. This code was previously in Set_Actual_Subtypes.
34852         In addition, carry out some code cleanup on this code. In case of
34853         access to protected subprogram call
34854         Replace_Anonymous_Access_To_Protected_Subprogram.
34855         (Set_Actual_Subtypes): Code cleanup.
34856
34857         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
34858         Find_Type in case of anonymous access renamings. Add warning in case of
34859         null-excluding attribute used in anonymous access renaming.
34860
34861         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
34862         subprogram
34863
34864         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
34865         subprogram.
34866         (Access_Definition): In case of anonymous access to subprograms call
34867         the corresponding semantic routine to decorate the node.
34868         (Access_Subprogram_Declaration): Addition of some comments indicating
34869         some code that probably should be added here. Detected by comparison
34870         with the access_definition subprogram.
34871         (Analyze_Component_Declaration): In case of access to protected
34872         subprogram call Replace_Anonymous_Access_To_Protected.
34873         (Array_Type_Declaration): In case of access to protected subprogram call
34874         Replace_Anonymous_Access_To_Protected_Subprogram.
34875         (Process_Discriminants): In case of access to protected subprogram call
34876         Replace_Anonymous_Access_To_Protected_Subprogram.
34877
34878         * par.adb (P_Access_Definition): New formal that indicates if the
34879         null-exclusion part was present.
34880         (P_Access_Type_Definition): New formal that indicates if the caller has
34881         already parsed the null-excluding part.
34882
34883         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
34884         (P_Identifier_Declarations): Code cleanup and give support to renamings
34885         of anonymous access to subprogram types.
34886         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
34887         (P_Array_Type_Definition): Give support to AI-254.
34888         (P_Component_Items): Give support to AI-254.
34889         (P_Access_Definition): New formal that indicates if the header was
34890         already parsed by the caller.
34891         (P_Access_Type_Definition): New formal that indicates if the caller has
34892         already parsed the null-excluding part.
34893
34894         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
34895         call to P_Access_Definition.
34896
34897 2004-04-19  Geert Bosch  <bosch@gnat.com>
34898
34899         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
34900         the delicate semantics of floating-point to integer conversion.
34901         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
34902
34903         * eval_fat.adb (Machine_Mantissa): Moved to spec.
34904         (Machine_Radix): New function.
34905
34906         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
34907         conversion checks.
34908         (Machine_Radix): New function also for use in conversion checks.
34909
34910 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
34911
34912         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
34913
34914         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
34915         to decorate the access-to-protected subprogram and the equivalent type.
34916
34917         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
34918         to anonymous access to subprogram types.
34919
34920         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
34921         constant-folding, for legality checks in contexts that require an RM
34922         static expression.
34923
34924         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
34925         temporary but stack checking is not enabled, increment serial number
34926         to so that symbol generation is consistent with and without stack
34927         checking.
34928
34929         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
34930         independent on whether stack checking is enabled, caller must check
34931         the corresponding flag.
34932
34933         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
34934         range checks.
34935         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
34936         parent if it has discriminants.
34937         (Build_Derived_Private_Type): Constructed full view does
34938         not come from source.
34939         (Process_Discriminants): Default discriminants on a tagged type are
34940         legal if this is the internal completion of a private untagged
34941         derivation.
34942
34943         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
34944         no constraint checks, because it corresponds to an existing object.
34945
34946         * sem_prag.adb (Process_Convention): Pragma applies
34947         only to subprograms in the same declarative part, i.e. the same unit,
34948         not the same scope.
34949
34950         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
34951         ignore type mismatch on a numeric conversion if expression comes from
34952         expansion.
34953
34954 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
34955
34956         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
34957         Homonym_Number parameter, add processing for Source_Location parameter
34958         corresponding.
34959         (Check_Eliminated): Remove the check for homonym numbers, add the check
34960         for source location traces.
34961
34962         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
34963         with Arg_Source_Location corresponding to the changes in the format of
34964         the pragma.
34965
34966         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
34967         Eliminate pragma corresponding to the changes in the format of the
34968         pragma: Homonym_Number is replaced with Source_Location, two ways of
34969         distinguishing homonyms are mutially-exclusive.
34970
34971 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
34972
34973         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
34974
34975         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
34976         No_Dollar_In_Label, no longer necessary, as it is always True.
34977         (Strip_Suffixes): Likewise.
34978
34979 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
34980
34981         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
34982         modulus for compatibility with size clause on targets with 16-bit
34983         Integer.
34984
34985         * layout.adb (Discrimify): In the case of private types, set Vtyp to
34986         full type to fix type mismatches on calls to size functions for
34987         discriminant-dependent array components.
34988
34989 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
34990
34991         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
34992         lib.
34993
34994 2004-04-19  Pascal Obry  <obry@gnat.com>
34995
34996         * mdll-utl.adb (Locate): New version is idempotent.
34997
34998 2004-04-17  Laurent Guerby  <laurent@guerby.net>
34999
35000         PR ada/14988 (partial)
35001         * impunit.adb: Fix typo.
35002
35003 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
35004
35005         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
35006         and install-rts-cert targets.  Remove all gnatlib and gnattools
35007         targets and all other rts-* targets (moved to libada).  Remove (now)
35008         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
35009         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
35010
35011 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35012
35013         * trans.c (tree_transform): Shortcut returning error_mark_node for
35014         statements in annotate_only_mode.
35015         (tree_transform, case N_Label, case N_Return_Statement,
35016         N_Goto_Statement): Make statement tree instead of generating code.
35017         (tree_transform, case N_Assignment_Statement): No longer check
35018         type_annotate_only.
35019         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
35020         RETURN_STMT): New.
35021         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
35022         New fcns.
35023         (gnat_to_gnu): Collect any RTL generated and deal with it.
35024         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
35025         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
35026         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
35027
35028         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
35029
35030         * ada-tree.def (EXPR_STMT): Fix typo in name.
35031         (BLOCK_STMT, IF_STMT): New nodes.
35032
35033         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
35034         LABEL_STMT_FIRST_IN_EH): New macros.
35035         (RETURN_STMT_EXPR): Likewise.
35036
35037         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
35038         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
35039
35040 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
35041
35042         * atree.ads: Correct documentation on extended nodes.
35043
35044         * link.c: Set run_path_option for FreeBSD.
35045
35046 2004-04-08  Vincent Celier  <celier@gnat.com>
35047
35048         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
35049         one of the ALI file, do not link with DEC lib.
35050
35051         * par.adb Remove the last two characters ("%s" or "%b") when checking
35052         if a language defined unit may be recompiled.
35053
35054 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
35055
35056         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
35057         removal of abstract operation leaves no possible interpretation for
35058         expression.
35059
35060         * sem_eval.adb (Eval_Qualified_Expression): Use
35061         Set_Raises_Constraint_Error on node when needed, so that it does not
35062         get optimized away by subsequent optimizations.
35063
35064         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
35065         operands even when they are not wrapped in a type conversion.
35066
35067 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
35068
35069         * sem_prag.adb (Set_Exported): Warn about making static as result of
35070         export only when the export is coming from source. This may be not
35071         be true e.g. on VMS where we expand export pragmas for exception codes
35072         together with imported or exported exceptions, and we don't want the
35073         user to be warned about something he didn't write.
35074
35075 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
35076
35077         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
35078         duplication between normal entities and those declared as renamings.
35079         No functional change.
35080
35081         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
35082         inline functions returning an unconstrained result.
35083
35084 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
35085
35086         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
35087         conform to what other front-ends do.
35088
35089 2004-04-08  Doug Rupp  <rupp@gnat.com>
35090
35091         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
35092         libraries.
35093
35094 2004-04-06  Pascal Obry  <obry@gnat.com>
35095
35096         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
35097
35098         * osint.adb (Program_Name): Do not look past a directory separator.
35099
35100 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
35101
35102         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
35103
35104         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
35105         requirement for preserving a copy of the original assignment node.
35106
35107         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
35108
35109 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
35110
35111         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
35112         when supported.
35113
35114 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
35115
35116         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
35117         operator calls in functional notation, and apply
35118         Universal_Interpretation to operands, not to their type.
35119
35120 2004-04-06  Robert Dewar  <dewar@gnat.com>
35121
35122         * 5wdirval.adb: Minor reformatting
35123
35124 2004-04-06  Ed Falis  <falis@gnat.com>
35125
35126         * gnat_rm.texi: Improve a reference to the GCC manual
35127
35128 2004-04-05  Vincent Celier  <celier@gnat.com>
35129
35130         * adaint.h, adaint.c: Add function __gnat_named_file_length
35131
35132         * impunit.adb: Add Ada.Directories to the list
35133
35134         * Makefile.in: Add VMS and Windows versions of
35135         Ada.Directories.Validity package body.
35136
35137         * Makefile.rtl: Add a-direct and a-dirval
35138
35139         * mlib-tgt.ads: Minor comment update.
35140
35141         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
35142         a-direct.ads, a-direct.adb: New files.
35143
35144 2004-04-05  Vincent Celier  <celier@gnat.com>
35145
35146         PR ada/13620
35147         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
35148         just to the compiler.
35149
35150 2004-04-05  Robert Dewar  <dewar@gnat.com>
35151
35152         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
35153         returned string is 1.
35154
35155         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
35156
35157         * eval_fat.ads: Minor reformatting
35158
35159         * g-curexc.ads: Document that lower bound of returned string values
35160         is always one.
35161
35162         * gnatlink.adb: Add ??? comment for previous change
35163         (need to document why this is VMS specific)
35164
35165         * s-stoele.ads: Minor reformatting
35166
35167         * tbuild.ads: Minor reformatting throughout (new function specs)
35168
35169         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
35170         after WITH.
35171
35172         * scng.adb: Minor reformatting
35173
35174 2004-04-05  Geert Bosch  <bosch@gnat.com>
35175
35176         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
35177         (Leading_Part): Still perform truncation to machine number if the
35178         specified radix_digits is greater or equal to machine_mantissa.
35179
35180 2004-04-05  Javier Miranda  <miranda@gnat.com>
35181
35182         * par-ch3.adb: Complete documentation of previous change
35183         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
35184         (aliased must appear before constant).
35185
35186         * par-ch4.adb: Complete documentation of previous change.
35187
35188         * par-ch6.adb: Complete documentation of previous change.
35189
35190         * sinfo.ads: Fix typo in commment.
35191
35192 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
35193
35194         * sem_ch3.adb (Inherit_Components): If derived type is private and has
35195         stored discriminants, use its discriminants to constrain parent type,
35196         as is done for non-private derived record types.
35197
35198         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
35199         Ada 2005 AI-310: an abstract non-dispatching operation is not a
35200         candidate interpretation in an overloaded call.
35201
35202         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
35203         expression is Null and target type is not an access type (e.g. a
35204         non-private address type).
35205
35206 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
35207
35208         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
35209         statement whose right-hand side is an inlined call, save a copy of the
35210         original assignment subtree to preserve enough consistency for
35211         Analyze_Assignment to proceed.
35212
35213         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
35214         complete assignment subtree which is now unnecessary, as the expansion
35215         of inlined call has been improved to preserve a consistent assignment
35216         tree.  Note_Possible_Modification must be called only
35217         after checks have been applied, or else unnecessary checks will
35218         be generated.
35219
35220         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
35221         of explicit dereferences that do not Come_From_Source:
35222          - be selective on cases where we must go back to the dereferenced
35223            pointer (an assignment to an implicit dereference must not be
35224            recorded as modifying the pointer);
35225          - do not rely on Original_Node being present (Analyze_Assignment
35226            calls Note_Possible_Modification on a copied tree).
35227
35228         * sem_warn.adb (Check_References): When an unset reference to a pointer
35229         that is never assigned is encountered, prefer '<pointer> may be null'
35230         warning over '<pointer> is never assigned a value'.
35231
35232 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
35233
35234         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
35235         the ABI.
35236
35237 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
35238
35239         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
35240         libexc. We currently don't reference anything in this library and
35241         linking it in triggers linker warnings we don't want to see.
35242
35243         * init.c: Update comments.
35244
35245 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35246
35247         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
35248         * utils.c (create_field_decl): Likewise.
35249         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
35250
35251 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
35252
35253         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
35254         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
35255         Add info directory entry and category.
35256
35257 2004-04-02  Jan Hubicka  <jh@suse.cz>
35258
35259         * utils.c: Include function.h
35260         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
35261
35262 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
35263
35264         PR ada/14150
35265         * Make-lang.in: Clean up generation of documentation
35266
35267         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
35268
35269         * xgnatug.adb: Removed, replaced by xgnatugn.adb
35270
35271         * xgnatugn.adb: Replaces xgnatug.adb
35272
35273         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
35274
35275         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
35276
35277         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
35278         gnat_ug_wnt.texi: Removed.
35279
35280 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
35281
35282         * utils2.c: Update copyright notice.
35283
35284 2004-04-01  Robert Dewar  <dewar@gnat.com>
35285
35286         * checks.adb: Minor reformatting throughout
35287         Note that prev checkin added RM reference to alignment warning
35288
35289 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
35290
35291         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
35292         non-static when building aggregate for bit-packed array.
35293
35294         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
35295         function call that is itself the actual in a procedure call, build
35296         temporary for it.
35297
35298         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
35299         a string literal, create a temporary for it, constant folding only
35300         handles scalars here.
35301
35302 2004-04-01  Vincent Celier  <celier@gnat.com>
35303
35304         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
35305         Error_Msg_SP): New empty procedures to instantiate the Scanner.
35306         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
35307         tokens.
35308         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
35309         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
35310         and get the checksum.
35311
35312         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
35313         already in the Q.
35314         Increase the Marking_Label at the end of the Multiple_Main_Loop,
35315         instead of at the beginning.
35316
35317         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
35318         directly.
35319         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
35320         on VMS.
35321
35322         * osint.ads (Multi_Unit_Index_Character): New Character global variable
35323
35324         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
35325         not '~' directly.
35326
35327         * par.adb: Remove test on file name to detect language defined units.
35328         Add test on unit name, after parsing, to detect language defined units
35329         that are not compiled with -gnatg (except System.RPC and its children)
35330
35331         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
35332         following units without style checking.
35333
35334         * switch-c.adb: Change -gnatC to -gnateI
35335
35336         * usage.adb: Document new switch -gnateInnn
35337
35338         * scng.adb (Accumulate_Token_Checksum): New procedure
35339         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
35340         word or literal number.
35341         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
35342         numbers.
35343
35344 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
35345
35346         * a-tasatt.adb,
35347         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
35348         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
35349         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
35350         5vtpopde.adb: Add missing 'constant' keywords.
35351
35352 2004-04-01  Javier Miranda  <miranda@gnat.com>
35353
35354         * par-ch4.adb: (P_Allocator): Code cleanup
35355
35356         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
35357         attribute.
35358
35359         * sinfo.ads: Complete documentation of previous change
35360
35361 2004-04-01  Pascal Obry  <obry@gnat.com>
35362
35363         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
35364         only on VMS.  This special handling was done because an old GNU/ld bug
35365         on Windows which has been fixed.
35366
35367 2004-04-01  GNAT Script  <nobody@gnat.com>
35368
35369         * Make-lang.in: Makefile automatically updated
35370
35371 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35372
35373         * decl.c (gnat_to_gnu_entity, make_type_from_size):
35374         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
35375         * trans.c (tree_transform, convert_with_check): Likewise.
35376         * utils.c (gnat_signed_or_unsigned_type): Likewise.
35377         (build_vms_descriptor, unchecked_convert): Likewise.
35378         * utils2.c (nonbinary_modular_operation): Likewise.
35379
35380 2004-03-29  Javier Miranda  <miranda@gnat.com>
35381
35382         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
35383         (Install_Null_Excluding_Check): Local subprogram that determines whether
35384         an access node requires a runtime access check and if so inserts the
35385         appropriate run-time check.
35386         (Apply_Access_Check): Call Install_Null_Excluding check if required
35387         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
35388
35389         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
35390
35391         * einfo.ads: Fix typo in comment
35392
35393         * exp_ch3.adb (Build_Assignment): Generate conversion to the
35394         null-excluding type to force the corresponding run-time check.
35395         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
35396         type to force the corresponding run-time check.
35397
35398         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
35399         the null-excluding type to force the corresponding run-time check.
35400
35401         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
35402         case of access types unless they have the null-excluding attribute.
35403
35404         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
35405         part.
35406
35407         * exp_util.ads: Fix typo in comment
35408
35409         * par.adb (P_Null_Exclusion): New subprogram
35410         (P_Subtype_Indication): New formal that indicates if the null-excluding
35411         part has been scanned-out and it was present
35412
35413         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
35414
35415         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
35416         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
35417         type to force the corresponding run-time check
35418         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
35419         components
35420         (Resolve_Array_Aggregate): Carry out some static checks
35421         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
35422
35423         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
35424         attribute must be set only if specified by means of the null-excluding
35425         part. In addition, we must also propagate the access-constant attribute
35426         if present.
35427         (Access_Subprogram_Declaration, Access_Type_Declaration,
35428         Analyze_Component_Declaration, Analyze_Object_Declaration,
35429         Array_Type_Declaration, Process_Discriminants,
35430         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
35431         and carry out some static checks.
35432         (Build_Derived_Access_Type): Set the null-excluding attribute
35433         (Derived_Type_Declaration, Process_Subtype): Carry out some static
35434         checks.
35435
35436         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
35437
35438         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
35439
35440         * sem_ch6.adb (Process_Formals): Carry out some static checks.
35441         (Set_Actual_Subtypes): Generate null-excluding subtype if the
35442         null-excluding part was present; it is not required to be done here in
35443         case of anonymous access types.
35444         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
35445         value.
35446
35447         * sem_res.adb (Resolve_Actuals): Carry out some static check
35448         (Resolve_Null): Allow null in anonymous access
35449
35450         * sinfo.adb: New subprogram Null_Exclusion_Present
35451         All_Present and Constant_Present available on access_definition nodes
35452
35453         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
35454         object_declaration, derived_type_definition, component_definition,
35455         discriminant_specification, access_to_object_definition,
35456         access_function_definition, allocator, access_procedure_definition,
35457         access_definition, parameter_specification, All_Present and
35458         Constant_Present flags available on access_definition nodes.
35459
35460 2004-03-29  Robert Dewar  <dewar@gnat.com>
35461
35462         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
35463         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
35464         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
35465         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
35466         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
35467         sem_prag.adb: Updates to handle multiple units/file
35468
35469         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
35470
35471         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
35472         sem_util.adb: Minor reformatting
35473
35474         * sem_ch12.adb: Add comment for previous change
35475
35476 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
35477
35478         * osint.adb (Executable_Prefix): Set Exec_Name to the current
35479         executable name when not initialized. Otherwise, use its current value.
35480
35481         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
35482         initialize it to another executable name than the current one. This
35483         allows to configure paths for an executable name (gnatmake) different
35484         from the current one (gnatdist).
35485
35486 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
35487
35488         * exp_ch6.adb (Expand_Call): A call to a function declared in the
35489         current unit cannot be inlined if it appears in the body of a withed
35490         unit, to avoid order of elaboration problems in gigi.
35491
35492         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
35493         information for protected (wrapper) operation as well, to simplify gdb
35494         use.
35495
35496         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
35497         protected body, indicate that the entity for the generated spec comes
35498         from source, to ensure that references are properly generated for it.
35499         (Build_Body_To_Inline): Do not inline a function that returns a
35500         controlled type.
35501
35502         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
35503         apply convention to homonyms that are declared explicitly.
35504
35505         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
35506         that renames an equality operator and the operands are overloaded,
35507         resolve them with the declared formal types, before rewriting as an
35508         operator.
35509
35510 2004-03-29  GNAT Script  <nobody@gnat.com>
35511
35512         * Make-lang.in: Makefile automatically updated
35513
35514 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
35515
35516         * memtrack.adb: Log realloc calls, which are treated as free followed
35517         by alloc.
35518
35519 2004-03-25  Vincent Celier  <celier@gnat.com>
35520
35521         * prj-makr.adb (Process_Directories): Detect when a file contains
35522         several units. Do not include such files in the config pragmas or
35523         in the naming scheme.
35524
35525         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
35526         Resolve links only when not in Trusted_Mode.
35527         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
35528         Do not resolve links for the display names.
35529
35530         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
35531         resolve links when computing the display names.
35532
35533 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
35534
35535         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
35536         attribute reference does not denote a subtype, it can be any
35537         expression that has a classwide type, potentially after an implicit
35538         dereference.  In particular, the prefix can be a view conversion for
35539         a classwide type (for which Is_Object_Reference holds), but it can
35540         also be a value conversion for an access-to-classwide type. In the
35541         latter case, there is an implicit dereference, and the original node
35542         for the prefix does not verify Is_Object_Reference.
35543
35544         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
35545         conversion of a discriminant-dependent component of a mutable object
35546         is one itself.
35547
35548 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
35549
35550         * freeze.adb (Freeze_Entity): When an inherited subprogram is
35551         inherited, has convention C, and has unconstrained array parameters,
35552         place the corresponding warning on the derived type declaration rather
35553         than the original subprogram.
35554
35555         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
35556         indication on renaming declaration, if formal has a box and actual
35557         is absent.
35558
35559         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
35560         determine whether to generate an implicit or explicit reference to
35561         the renamed entity.
35562
35563         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
35564         subprogram renaming comes from a defaulted formal subprogram in an
35565         instance.
35566
35567 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
35568
35569         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
35570         value expressions to ensure that calls within a component definition
35571         will be checked (since those are evaluated during the record type's
35572         elaboration).
35573
35574 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
35575
35576         * s-tpobop.adb: Code clean up:
35577         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
35578         code.
35579         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
35580
35581 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
35582
35583         * Makefile.in: Clean up in the ravenscar run time.
35584
35585 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35586
35587         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
35588         of No_Strict_Aliasing to build_pointer_type_for_mode.
35589         * utils.c (update_pointer_to): Walk pointer and ref chains.
35590
35591 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
35592
35593         * ali.ads: Fix Comment about Dynamic_Elab.
35594
35595         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
35596         Has_RACW, Is_Generic, etc.)
35597         (Output_Object, Gnatls): Take into account ALI files not attached to
35598         an object.
35599
35600 2004-03-22  Vincent Celier  <celier@gnat.com>
35601
35602         * gprep.adb: Change all String_Access to Name_Id
35603         (Is_ASCII_Letter): new function
35604         (Double_File_Name_Buffer): New procedure
35605         (Preprocess_Infile_Name): New procedure
35606         (Process_Files): New procedure
35607         (Gnatprep): Check if output and input are existing directories.
35608         Call Process_Files to do the real job.
35609
35610 2004-03-22  Robert Dewar  <dewar@gnat.com>
35611
35612         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
35613         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
35614
35615 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
35616
35617         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
35618         case when the source contains only comments.
35619
35620 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
35621
35622         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
35623         declaration for a child subprogram body that acts as a spec, indicate
35624         that the entity in the declaration needs debugging information.
35625
35626         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
35627         full view if the subtype is created for a constrained record component;
35628         gigi has enough information to construct the record, and there is no
35629         place in the tree for the declaration.
35630
35631         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
35632         serial number for the dummy body that is built for analysis, to avoid
35633         inconsistencies in the generation of internal names when compiling
35634         with -gnatN.
35635
35636 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
35637
35638         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
35639         object.
35640
35641 2004-03-22  GNAT Script  <nobody@gnat.com>
35642
35643         * Make-lang.in: Makefile automatically updated
35644
35645 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35646
35647         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
35648         * trans.c (tree_transform, emit_index_check): Likewise.
35649         * utils.c (build_template): Likewise.
35650         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
35651         (maybe_unconstrained_array, unchecked_convert): Likewise.
35652         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
35653         (build_unary_op): Likewise.
35654         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
35655         (fill_vms_descriptor): Likewise.
35656         (build_call_alloc_dealloc): Likewise.
35657         ALIGN is unsigned.
35658         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
35659
35660 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
35661
35662         PR other/14630
35663         * gnat_ug.texi: Add info directory category and entry.
35664         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
35665         gnat_ug_wnt.texi: Regenerate.
35666
35667 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
35668
35669         * ada-tree.h: Update copyright notice.
35670         Minor reformatting.
35671
35672 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
35673
35674         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
35675         as regular exception objects and not as mere integers representing the
35676         condition code.  The latter approach required some dynamics to mask off
35677         severity bits, which did not fit well into the GCC table based model.
35678         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
35679         exception data objects. We don't it and it would conflict with the other
35680         external symbol we have to generate for such exceptions.
35681
35682         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
35683         the special code for VMS exceptions, since these are now represented
35684         as regular exceptions objects.
35685
35686 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35687
35688         * decl.c (debug_no_type_hash): Remove.
35689         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
35690         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
35691
35692 2004-03-19  Laurent Guerby  <laurent@guerby.net>
35693
35694         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
35695         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
35696
35697 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35698
35699         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
35700         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
35701         (TYPE_RM_SIZE_INT): Directly use type.values.
35702         (TREE_LOOP_ID): Clean up check.
35703         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
35704         TYPE_VALUES, not TYPE_FIELDS.
35705         * trans.c (convert_with_check): Delay access of bounds of basetype
35706         until sure is numeric.
35707
35708 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
35709
35710         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
35711
35712         Code clean up:
35713         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
35714         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
35715         Specific.Set instead of direct call to e.g pthread_setspecific.
35716
35717 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
35718
35719         * adaint.c: Update comments.
35720
35721         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
35722         GNATLIB_SHARED for FreeBSD.
35723
35724 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
35725
35726         * init.c [VxWorks]: Do not fix the stack size for the environment task.
35727         When needed (stack checking) the stack size is retrieved
35728         from the VxWorks kernel.
35729
35730         * Makefile.in: Flag -nostdinc is required when building the run time
35731         for avoiding looking for files in the base compiler.
35732         Add the VxWorks specific version of the package body for
35733         System.Stack_checking.Operations (5zstchop.adb).
35734
35735         * Make-lang.in: Add the object file for
35736         System.Stack_Checking.Operations.
35737
35738         * Makefile.rtl: Add object file for the package
35739         System.Stack_Checking.Operations.
35740
35741         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
35742
35743         * s-stache.ads, s-stache.adb: Move the operations related to stack
35744         checking from this package to package System.Stack_Checking.Operations.
35745         This way, stack checking operations are only linked in the final
35746         executable when using the -fstack-check flag.
35747
35748 2004-03-18  Doug Rupp  <rupp@gnat.com>
35749
35750         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
35751         Reorganize ifeq's.
35752
35753         * 5qsystem.ads, 5xcrtl.ads: New files.
35754
35755 2004-03-18  Vincent Celier  <celier@gnat.com>
35756
35757         * prj.adb (Reset): Reset hash table Files_Htable
35758
35759         * prj-env.adb (Source_Paths, Object_Paths): New tables.
35760         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
35761         the procedures Add_To_Path_File.
35762         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
35763         making sure that each directory is present only once and, for object
35764         dirs, when a directory already present is added, the duplicate is
35765         removed and the directory is always put as the last in the table.
35766         Write the path files at the end of these accumulations.
35767
35768         * prj-nmsc.adb (Record_Source): Add source file name in hash table
35769         Files_Htable for all sources.
35770
35771         * prj-proc.adb (Process): Remove restrictions between not directly
35772         related extending projects.
35773
35774 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
35775
35776         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
35777         (Find_Sources): Minor speed optimization.
35778
35779         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
35780         parameter Trusted_Mode.
35781
35782 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
35783
35784         * scn.adb (Determine_License): Take into account a degenerated case
35785         when the source contains only comments.
35786
35787 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
35788
35789         * sem_warn.adb (Check_References): For a warning on a selected
35790         component that does not come from source, locate an uninitialized
35791         component of the record type to produce a more precise error message.
35792
35793 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
35794
35795         * 3zsoccon.ads: Fix multicast options.
35796
35797         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
35798         in the spec.
35799
35800 2004-03-15  Robert Dewar  <dewar@gnat.com>
35801
35802         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
35803         pragma used for a private type.
35804
35805         * lib-xref.adb (Generate_Reference): Do not generate warning if
35806         reference is in a different unit from the pragma Unreferenced.
35807
35808         * 5vtpopde.adb: Minor reformatting
35809         Fix casing of To_Task_ID
35810
35811         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
35812         flag if we have an unchecked conversion to an access type in the same
35813         unit.
35814
35815 2004-03-15  Geert Bosch  <bosch@gnat.com>
35816
35817         * a-ngcoty.adb (Modulus): In alternate formula for large real or
35818         imaginary parts, use Double precision throughout.
35819
35820         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
35821         we want to be able to compile run-time with -gnata for testing, but
35822         this may also be instantiated in user code that is compiled with -gnata.
35823
35824 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
35825
35826         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
35827         codes. Having a separate type for this is useful to enforce consistency
35828         throughout the various run-time units.
35829         (Exception_Data): Use Exception_Code for Import_Code.
35830
35831         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
35832         Natural and Integer in various places.
35833         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
35834         with the severity bits masked off.
35835         (Register_VMS_Exception): Handle the additional exception data pointer
35836         argument.
35837
35838         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
35839         component, now reflected by an exported accessor.
35840         (is_handled_by): New routine to compute whether the propagated
35841         occurrence matches some handler choice specification. Extracted out of
35842         get_action_description_for, and expanded to take care of the VMS
35843         specifities.
35844         (get_action_description_for): Use is_handled_by instead of an explicit
35845         complex condition to decide if the current choice at hand catches the
35846         propagated occurrence.
35847
35848         * raise.h (Exception_Code): New type for C.
35849
35850         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
35851         System.Standard_Library.Exception_Code, to allow references from the
35852         pragma import/export expander.
35853
35854         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
35855         New accessors to allow easy access to GNAT exception data
35856         characteristics.
35857         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
35858         redundant Handled_By_Others component, helper for the personality
35859         routine which will now be able to call the appropriate exception data
35860         accessor instead.
35861
35862         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
35863         component of Standard_Exception_Type to be the closest possible to
35864         Exception_Code in System.Standard_Library, that we cannot get at this
35865         point. Expand a ??? comment to notify that this type node should
35866         probably be rewritten later on.
35867
35868         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
35869         registration call to include a pointer to the exception object in the
35870         arguments.
35871
35872         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
35873         instead of int and explicit bitmasks.
35874
35875 2004-03-15  Vincent Celier  <celier@gnat.com>
35876
35877         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
35878         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
35879
35880         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
35881         longer needed now that it is in the spec of
35882         System.Tasking.Task_Attributes.
35883
35884         * adaint.h, adaint.c: (__gnat_create_output_file): New function
35885
35886         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
35887
35888         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
35889
35890         * make.adb (Gnatmake): Do not check the executable suffix; it is being
35891         taken care of in Scan_Make_Arg.
35892         (Scan_Make_Arg): Add the executable suffix only if the argument
35893         following -o, in canonical case, does not end with the executable
35894         suffix.  When in verbose mode and executable file name does not end
35895         with executable suffix, output the executable name, in canonical case.
35896
35897         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
35898         to avoid warnings when instantiating Ada.Task_Attributes.
35899         Minor reformating.
35900
35901         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
35902         in the correct order.
35903
35904         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
35905         redirect standard output and error to a file for the invocation of the
35906         compiler, then read the file.
35907
35908         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
35909         directory, instead of the Value.
35910         (Find_Source_Dirs): Remove useless code & comments.
35911
35912 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
35913
35914         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
35915         tagged type is inherited, and the parent operation is not frozen yet,
35916         force generation of a freeze node for the inherited operation, so the
35917         corresponding dispatch entry is properly initialized.
35918         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
35919         when looking for user-defined equality operation.
35920
35921         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
35922         boolean when locating primitive equality of tagged component.
35923
35924         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
35925         bit-aligned field and the right-hand side a string literal, introduce
35926         a temporary before expanding assignment into a loop.
35927
35928         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
35929         priority in full, to ensure that any expanded subepxressions of it are
35930         elaborated in the scope of the init_proc.
35931
35932         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
35933         after object declaration, skipping over code that may have been
35934         generated for validity checks.
35935
35936         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
35937         discriminants, ignore the known discriminants of its full view, if
35938         any, to check legality.
35939
35940         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
35941         component if type has unknown discriminants.
35942         (Analyze_Private_Extension_Declaration): Discriminant constraint is
35943         null if type has unknown discriminants.
35944
35945         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
35946         for end label when present.
35947
35948         * s-fileio.adb (Open): When called with a C_Stream, use given name for
35949         temporary file, rather than an empty string.
35950
35951 2004-03-15  Ed Falis  <falis@gnat.com>
35952
35953         * s-thread.adb: Removed, no longer used.
35954
35955 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35956
35957         * decl.c (target.h): Now include.
35958         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
35959         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
35960         (validate_size): For POINTER_TYPE, get smallest size permitted on
35961         machine.
35962
35963         * fe.h: Sort Einfo decls and add Set_Mechanism.
35964
35965         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
35966         (ada/decl.o): Depends on target.h.
35967
35968         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
35969         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
35970
35971 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
35972
35973         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
35974
35975         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
35976         Insert_Dereference_Action when rewriting an implicit dereference into
35977         an explicit one, this will be taken care of during expansion of the
35978         explicit dereference.
35979         (Expand_N_Slice): Same. Always do the rewriting, even for the case
35980         of non-packed slices, since the dereference action generated by
35981         expansion of the explicit dereference is needed in any case.
35982         (Expand_N_Selected_Component): When rewriting an implicit dereference,
35983         analyze and resolve the rewritten explicit dereference so it is seen
35984         by the expander.
35985         (Insert_Dereference_Action): This procedure is now called only for the
35986         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
35987         dereferences that do not come from source (including explicit
35988         dereferences resulting from rewriting implicit ones), but do not
35989         recursively insert a check for the dereference nodes contained within
35990         the check.
35991         (Insert_Dereference_Action): Clarify and correct comment.
35992
35993 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
35994
35995         PR ada/14131
35996         Move language detection to the top level.
35997         * config-lang.in: Build by default.
35998
35999 2004-03-05  Robert Dewar  <dewar@gnat.com>
36000
36001         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
36002
36003         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
36004         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
36005         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
36006         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
36007         unchecked conversion to spec to avoid warnings.
36008
36009         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
36010         to Task_ID
36011
36012         * 7stpopsp.adb: Correct casing in To_Task_ID call
36013
36014         * a-strsea.ads, a-strsea.adb: Minor reformatting
36015
36016         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
36017
36018         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
36019         Adjust Max_Msg_Length to be clearly large enough.
36020
36021         * fe.h: Define In_Same_Source_Unit
36022
36023         * osint.adb: Add pragma Warnings Off to suppress warnings
36024         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
36025         aliasing warnings.
36026
36027         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
36028
36029         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
36030
36031         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
36032
36033         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
36034
36035         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
36036
36037         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
36038         node. We now do generate them for gcc back end.
36039
36040         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
36041         warning.
36042
36043         * sinput-c.adb: Fix bad name in header.
36044         Add pragma Warnings Off to suppress aliasing warning.
36045
36046         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
36047
36048         * snames.h, snames.ads, snames.adb: Add entry for pragma
36049         No_Strict_Aliasing.
36050
36051 2004-03-05  Vincent Celier  <celier@gnat.com>
36052
36053         * prj-com.ads: Add hash table Files_Htable to check when a file name
36054         is already a source of another project.
36055
36056         * prj-nmsc.adb (Record_Source): Before recording a new source, check
36057         if its file name is not already a source of another project. Report an
36058         error if it is.
36059
36060         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
36061         source file name, call gnatpp with all the sources of the main project.
36062
36063         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
36064         of file names.
36065
36066         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
36067         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
36068         /RUNTIME_SYSTEM=, converted to --RTS=
36069         /NOTABS, converted to -notabs
36070
36071 2004-03-05  Pascal Obry  <obry@gnat.com>
36072
36073         * make.adb: Minor reformatting.
36074
36075 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
36076
36077         Part of implemention of AI-262.
36078         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
36079
36080         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
36081         procedure.
36082
36083         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
36084         when component type is a partially constrained class-wide subtype.
36085         (Constrain_Discriminated_Type): If parent type has unknown
36086         discriminants, a constraint is illegal, even if full view has
36087         discriminants.
36088         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
36089         with unknown discriminants whose full view is a discriminated record.
36090
36091         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
36092         flag, to handle properly derivations of tagged types with unknown
36093         discriminants.
36094         (Analyze_Package_Spec, Analyze_Package_Body): Install
36095         Private_With_Clauses before analyzing private part or body.
36096
36097         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
36098         Has_Discriminants can be true for a given type (documentation).
36099
36100 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
36101
36102         * s-restri.ads: Fix license (GPL->GMGPL).
36103
36104         * s-tassta.adb: Minor reformatting.
36105
36106         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
36107         by calls to Exit_One_ATC_Level, since additional clean up is performed
36108         by this function.
36109
36110         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
36111         by calls to Exit_One_ATC_Level, since additional clean up is performed
36112         by this function.
36113
36114 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36115
36116         * trans.c: Reflect GCC changes to fix bootstrap problem.
36117         Add warning for suspicious aliasing unchecked conversion.
36118
36119 2004-03-05  GNAT Script  <nobody@gnat.com>
36120
36121         * Make-lang.in: Makefile automatically updated
36122
36123 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
36124
36125         * ali.adb (Read_Instantiation_Instance): Do not modify the
36126         current_file_num when reading information about instantiations, since
36127         this corrupts files in later references.
36128
36129 2004-03-02  Vincent Celier  <celier@gnat.com>
36130
36131         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
36132         before checking if it is read-only.
36133
36134         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
36135         of SRC_DIRS and eliminate duplicates.
36136
36137         * gprcmd.adb: Replace command "path" with command "path_sep" to return
36138         the path separator.
36139         (Usage): Document path_sep
36140
36141         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
36142         C++ compiler. No need for a script.
36143         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
36144         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
36145         subst.
36146
36147         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
36148         where there are Ada sources.
36149         (Set_Ada_Paths): Only add to the include path the source dirs of project
36150         with Ada sources.
36151         (Add_To_Path): Add the Display_Values of the directories, not their
36152         Values.
36153
36154         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
36155         data.
36156
36157         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
36158         is not No_Name.
36159         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
36160         Value is canonicalized.
36161         (Language_Independent_Check): Do not copy Value to Display_Value when
36162         canonicalizing Value.
36163
36164         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
36165         path to find limited with cycles.
36166         (Parse_Single_Project): Use canonical cased path to find the end of a
36167         with cycle.
36168
36169 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
36170
36171         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
36172         and not a child unit.
36173
36174         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
36175         appear in a with_clause.
36176
36177         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
36178         only happen in type_annotate mode, do not try to elaborate it.
36179
36180         * exp_util.adb (Force_Evaluation): If expression is a selected
36181         component on the left of an assignment, use a renaming rather than a
36182         temporary to remove side effects.
36183
36184         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
36185         inlined instance body, which is analyzed before the end of the
36186         enclosing scope.
36187
36188 2004-03-02  Robert Dewar  <dewar@gnat.com>
36189
36190         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
36191         sem_ch4.adb: Use new feature for substitution of keywords in VMS
36192
36193         * errout.ads, errout.adb: Implement new circuit for substitution of
36194         keywords in VMS.
36195
36196         * sem_case.adb (Analyze_Choices): Place message properly when case is
36197         a subtype reference rather than an explicit range.
36198
36199         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
36200
36201 2004-03-02  Doug Rupp  <rupp@gnat.com>
36202
36203         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
36204
36205 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
36206
36207         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
36208
36209 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36210
36211         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
36212         BLKmode bitfield.
36213
36214 2004-02-25  Robert Dewar  <dewar@gnat.com>
36215
36216         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
36217         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
36218         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
36219         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
36220         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
36221         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
36222         the defining instance of the type to avoid aliasing problems.
36223         Fix copyright header.  Fix bad comments in package header.
36224
36225         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
36226
36227 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
36228
36229         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
36230         rewritten as references when aliased through an address clause.
36231
36232         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
36233         whether call can be interpreted as an indirect call to the result of a
36234         parameterless function call returning an access subprogram.
36235
36236 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
36237
36238         Code clean up:
36239         * exp_ch7.adb (Make_Clean): Remove generation of calls to
36240         Unlock[_Entries], since this is now done by Service_Entries directly.
36241
36242         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
36243
36244         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
36245         Requeue_Call for better code readability. Change spec and update calls:
36246         PO_Service_Entries now unlock the PO on exit.
36247         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
36248         PO_Service_Entries.
36249
36250         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
36251
36252         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
36253
36254 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
36255
36256         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
36257         protected subprogram call and analyzing the result of such expanding
36258         in case when the called protected subprogram is eliminated.
36259
36260         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
36261         names.
36262
36263 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
36264
36265         * Makefile.in: Clean ups.
36266
36267 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
36268
36269         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
36270         protected operations if original subprogram is flagged as eliminated.
36271         (Expand_N_Subprogram_Body): For a protected operation, create
36272         discriminals for next operation before checking whether the operation
36273         is eliminated.
36274
36275         * exp_ch9.adb (Expand_N_Protected_Body,
36276         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
36277         for internal protected operations if the original subprogram is
36278         eliminated.
36279
36280         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
36281         declared in a single protected object.
36282
36283 2004-02-23  Vincent Celier  <celier@gnat.com>
36284
36285         * prj-attr.adb: Make attribute Builder'Executable an associative array,
36286         case insensitive if file names are case insensitive, instead of a
36287         standard associative array.
36288
36289         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
36290         them as case insensitive on platforms where the file names are case
36291         sensitive.
36292
36293         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
36294         project file has already been parsed that canonical path are compared.
36295
36296 2004-02-23  Robert Dewar  <dewar@gnat.com>
36297
36298         * sinput-c.ads: Correct bad unit title in header
36299
36300         * freeze.adb: Minor reformatting
36301
36302 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36303
36304         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
36305         nonaddressable COMPONENT_REF that is removing padding that we are
36306         taking the address of, take the address of the padded record instead
36307         if item is variable size.
36308
36309 2004-02-20  Robert Dewar  <dewar@gnat.com>
36310
36311         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
36312
36313 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
36314
36315         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
36316         itype references for the constrained designated type of a component
36317         whose base type is already frozen.
36318
36319 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
36320
36321         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
36322         avoid GCC warnings.
36323
36324 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
36325
36326         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
36327         identifier for a phantom package that rewrites the formal package
36328         declaration with a box. The Add semantic decorations for the defining
36329         identifier from the original node (that represents the formal package).
36330
36331 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
36332
36333         * Make-lang.in (ada/stamp-sdefault): Use the top level
36334         move-if-change.
36335
36336 2004-02-19  Richard Henderson  <rth@redhat.com>
36337
36338         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
36339
36340 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
36341
36342         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
36343         Scan_ALI can be used for multiple ALI files without reinitializing
36344         between calls.
36345
36346 2004-02-18  Robert Dewar  <dewar@gnat.com>
36347
36348         * debug.adb: Minor reformatting.
36349
36350 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36351
36352         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
36353         to zero if there is an address clause.
36354
36355 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
36356
36357         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
36358
36359 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
36360
36361         * layout.adb (Layout_Component_List): Revise generation of call to
36362         discriminant-checking function to pass selections of all of the type's
36363         discriminants rather than just the variant-controlling discriminant.
36364
36365 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
36366
36367         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
36368         fail in the current setup and triggers spurious system error messages.
36369         Pretend it occurred and failed instead.
36370
36371 2004-02-18  Vincent Celier  <celier@gnat.com>
36372
36373         * bld.adb: Mark FLDFLAGS as saved
36374         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
36375         it is not the root project.  Put each directory to be
36376         extended between double quotes to prevent it to be expanded on Windows.
36377         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
36378         the project file. Set them back to their initial values if they have not
36379         been set in the project file.
36380
36381         * gprcmd.adb: (Gprdebug, Debug): New global variables
36382         (Display_Command): New procedure
36383         (Usage): Document new command "linkopts"
36384         Call Display_Command when env var GPRDEBUG has the value "TRUE"
36385         Implement new command "linkopts"
36386         Remove quotes that may be around arguments for "extend"
36387         Always call Normalize_Pathname with arguments formatted for the platform
36388
36389         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
36390         Change @echo to @$(display) in target clean to be able to clean silently
36391
36392         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
36393
36394         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
36395         canonical case.
36396
36397         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
36398         = Extending_All when current project is an extending all project.
36399
36400         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
36401         set to True only for LINK command, after Unix switch -o.
36402         (Process_Arguments): Set Output_File_Expected to True for LINK command
36403         after Unix switch -o. When Output_File_Expected is True, never add an
36404         extension to a file name.
36405
36406         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
36407         option file name, only to the --for-linker= switch.
36408         (Option_File_Name): If option file name do not end with ".opt", append
36409         "/OPTIONS".
36410
36411 2004-02-18  GNAT Script  <nobody@gnat.com>
36412
36413         * Make-lang.in: Makefile automatically updated
36414
36415 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
36416
36417         * Make-lang.in (stamp-sdefault): Do not depend on
36418         move-if-change.
36419
36420 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
36421
36422         * config-lang.in: Disable Ada by default until probe logic for
36423         a bootstrap Ada compiler can be moved to the top level configure
36424         script.
36425
36426 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
36427
36428         * decl.c (components_to_record): Don't claim that the internal fields
36429         we make to hold the variant parts are semantically addressable, because
36430         they are not.
36431
36432         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
36433         adjust the comment describing the modular type form when we can use it.
36434         (Install_PAT): Account for the Esiz renaming.
36435
36436         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
36437         sc_onstack context indication before raising the exception to which
36438         the signal is mapped. Allows better handling of later signals possibly
36439         triggered by the resumed user code if the exception is handled.
36440
36441 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
36442
36443         * 5zinit.adb: Removed, no longer used.
36444
36445 2004-02-12  Robert Dewar  <dewar@gnat.com>
36446
36447         * ali.adb: Remove separating space between parameters on R line. Makes
36448         format consistent with format used by the binder for Set_Globals call.
36449
36450         * atree.ads, atree.adb: Minor reformatting (new function header format)
36451
36452         * bindgen.adb: Add Run-Time Globals documentation section containing
36453         detailed documentation of the globals passed from the binder file to
36454         the run time.
36455
36456         * gnatls.adb: Minor reformatting
36457
36458         * init.c (__gnat_set_globals): Add note pointing to documentation in
36459         bindgen.
36460
36461         * lib-writ.ads, lib-writ.adb: Remove separating space between
36462         parameters on R line.
36463         Makes format consistent with format used by the binder for Set_Globals
36464         call.
36465
36466         * osint.ads: Add 2004 to copyright notice
36467         Minor reformatting
36468
36469         * snames.ads: Correct capitalization of FIFO_Within_Priorities
36470         Noticed during code reading, documentation issue only
36471
36472         * usage.adb: Remove junk line for obsolete C switch
36473         Noticed during code reading
36474
36475 2004-02-12  Vincent Celier  <celier@gnat.com>
36476
36477         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
36478         extend for each directory, so that multiple /** directories are
36479         extended individually.
36480         (Recursive_Process): Set the default for LANGUAGES to ada
36481
36482         * gprcmd.adb: Define new command "ignore", to do nothing.
36483         Implement new comment "path".
36484
36485         * Makefile.generic: Suppress output when SILENT is set
36486         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
36487         used, so that the correct compiler is invoked.
36488         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
36489         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
36490
36491 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
36492
36493         * Makefile.in: Clean ups and remove obsolete targets.
36494
36495 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
36496
36497         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
36498         predicate declared in exp_util.
36499
36500         * exp_util.adb: Add comments.
36501
36502         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
36503         visibility before compiling context of the subunit.
36504
36505         * sem_res.adb (Check_Parameterless_Call): If the context expects a
36506         value but the name is a procedure, do not attempt to analyze as a call,
36507         in order to obtain more telling diagnostics.
36508
36509         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
36510         'Access on parameterless function calls.
36511         (Normalize_Actuals): For a parameterless function call with missing
36512         actuals, defer diagnostic until resolution of enclosing call.
36513
36514         * sem_util.adb (Wrong_Type): If the context type is an access to
36515         subprogram and the expression is a procedure name, suggest a missing
36516         'attribute.
36517
36518 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
36519             Nathanael Nerode  <neroden@gcc.gnu.org>
36520
36521         PR ada/6637
36522         PR ada/5911
36523         Merge with libada-branch:
36524         * config-lang.in: Build libada only when ada is built.
36525
36526 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
36527
36528         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
36529         for a tagged type, verify that both formals have the same type.
36530
36531         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
36532         temporary when the formal is an in-parameter and the actual a possibly
36533         unaligned slice.
36534
36535         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
36536         when expansion is disabled, to ensure proper name capture with
36537         overloaded literals.  Condition can be of any boolean type, resolve
36538         accordingly.
36539
36540         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
36541         renaming is for a formal subprogram with a default operator name, and
36542         there is a usable operator that is visible at the point of
36543         instantiation.
36544
36545 2004-02-09  Robert Dewar  <dewar@gnat.com>
36546
36547         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
36548         rewrite to ignore errors in ali files, intended to allow tools downward
36549         compatibility with new versions of ali files.
36550
36551         * ali.ads: Add new parameter Ignore_Errors
36552
36553         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
36554         duplicating the error message giving the file with restrictions.
36555
36556         * debug.adb: Add debug flag I for gnatbind
36557
36558         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
36559         operators for the case where the operator is a defining operator.
36560
36561         * exp_ch3.adb: Minor reformatting (new function spec format).
36562
36563         * exp_ch4.adb: Add comment for previous change, and make minor
36564         adjustment to loop to always check for improper loop termination.
36565         Minor reformatting throughout (new function spec format).
36566
36567         * gnatbind.adb: Implement -di debug flag for gnatbind
36568
36569         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
36570
36571         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
36572
36573         * lib-load.adb: Fix bad assertion.
36574         Found by testing and code reading.
36575         Minor reformatting.
36576
36577         * lib-load.ads: Minor reformatting.
36578
36579         * lib-writ.adb: There is only one R line now.
36580
36581         * lib-writ.ads: Add documentation on making downward compatible changes
36582         to ali files so old tools work with new ali files.
36583         There is only one R line now.
36584         Add documentation on format incompatibilities (with special GPS note)
36585
36586         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
36587
36588         * par-load.adb: Minor reformatting
36589
36590         * sem_ch8.adb: Fix to error message from last update
36591         Minor reformatting and restructuring of code from last update
36592
36593         * par-prag.adb, snames.adb, snames.ads, snames.h,
36594         sem_prag.adb: Implement pragma Profile.
36595
36596         * stylesw.adb: Implement -gnatyN switch to turn off all style check
36597         options.
36598
36599         * usage.adb: Add line for -gnatyN switch
36600
36601         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
36602
36603 2004-02-09  Albert Lee  <lee@gnat.com>
36604
36605         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
36606
36607 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
36608
36609         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
36610         slices.
36611
36612         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
36613         is nested in an instance that is not frozen yet, to avoid
36614         order-of-elaboration problems in gigi.
36615
36616         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
36617         body the attribute is legal.
36618
36619 2004-02-09  Robert Dewar  <dewar@gnat.com>
36620
36621         * s-rident.ads: Minor comment correction
36622
36623         * targparm.adb: Remove dependence on uintp completely. There was
36624         always a bug in Make in that it called Targparm before initializing
36625         the Uint package. The old code appeared to get away with this, but
36626         the new code did not! This caused an assertion error in gnatmake.
36627
36628         * targparm.ads: Fix bad comment, restriction pragmas with parameters
36629         are indeed fully supported.
36630
36631 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
36632
36633         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
36634
36635 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
36636
36637         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
36638         with targetm.calls.promote_prototypes.
36639
36640 2004-02-04  Robert Dewar  <dewar@gnat.com>
36641
36642         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
36643         ali.ads, gprcmd.adb: Minor reformatting
36644
36645         * bindgen.adb: Output restrictions string for new style restrictions
36646         handling
36647
36648         * impunit.adb: Add s-rident.ads (System.Rident) and
36649         s-restri (System.Restrictions)
36650
36651         * lib-writ.adb: Fix bug in writing restrictions string (last few
36652         entries wrong)
36653
36654         * s-restri.ads, s-restri.adb: Change name Restrictions to
36655         Run_Time_Restrictions to avoid conflict with package name.
36656         Add circuit to read and acquire run time restrictions.
36657
36658 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
36659
36660         * restrict.ads, restrict.adb: Use the new restriction
36661         No_Task_Attributes_Package instead of the old No_Task_Attributes.
36662
36663         * sem_prag.adb: No_Task_Attributes is a synonym of
36664         No_Task_Attributes_Package.
36665
36666         * snames.ads, snames.adb: New entry for proper handling of
36667         No_Task_Attributes.
36668
36669         * s-rident.ads: Adding restriction No_Task_Attributes_Package
36670         (AI-00249) that supersedes the GNAT specific restriction
36671         No_Task_Attributes.
36672
36673 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
36674
36675         * sem_prag.adb:
36676         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
36677          body, an identifier may be wrapped in an unchecked conversion.
36678
36679 2004-02-04  Vincent Celier  <celier@gnat.com>
36680
36681         * lib-writ.ads: Comment update for the W lines
36682
36683         * bld.adb: (Expression): An empty string list is static
36684
36685         * fname-uf.adb: Minor comment update
36686
36687         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
36688
36689         * gnatbind.adb: Initialize Cumulative_Restrictions with the
36690         restrictions on the target.
36691
36692 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
36693
36694         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
36695         gen_rtx.
36696
36697 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
36698
36699         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
36700
36701 2004-02-02  Vincent Celier  <celier@gnat.com>
36702
36703         * gprcmd.adb (Check_Args): If condition is false, print the invoked
36704         comment before the usage.
36705         Gprcmd: Fail when command is not recognized.
36706         (Usage): Document command "prefix"
36707
36708         * g-md5.adb (Digest): Process last block.
36709         (Update): Do not process last block. Store remaining characters and
36710         length in Context.
36711
36712         * g-md5.ads (Update): Document that several call to update are
36713         equivalent to one call with the concatenated string.
36714         (Context): Add fields to allow new Update behaviour.
36715
36716         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
36717         defaulted to False.
36718         When May_Fail is True and no existing file can be found, return No_File.
36719
36720         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
36721         functions.
36722
36723         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
36724         spec file name instead on the W line.
36725
36726 2004-02-02  Robert Dewar  <dewar@gnat.com>
36727
36728         * ali.adb: Read and acquire info from new format restrictions lines
36729
36730         * bcheck.adb: Add circuits for checking restrictions with parameters
36731
36732         * bindgen.adb: Output dummy restrictions data
36733         To be changed later
36734
36735         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
36736         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
36737         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
36738         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
36739         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
36740
36741         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
36742         the warning message on access to possibly uninitialized variable S)
36743         Minor changes for new restrictions handling.
36744
36745         * gnatbind.adb: Minor reformatting
36746         Minor changes for new restrictions handling
36747         Move circuit for -r processing here from bcheck (cleaner)
36748
36749         * gnatcmd.adb, gnatlink.adb: Minor reformatting
36750
36751         * lib-writ.adb: Output new format restrictions lines
36752
36753         * lib-writ.ads: Document new R format lines for new restrictions
36754         handling.
36755
36756         * s-restri.ads/adb: New files
36757
36758         * Makefile.rtl: Add entry for s-restri.ads/adb
36759
36760         * par-ch3.adb: Fix bad error messages starting with upper case letter
36761         Minor reformatting
36762
36763         * restrict.adb: Major rewrite throughout for new restrictions handling
36764         Major point is to handle restrictions with parameters
36765
36766         * restrict.ads: Major changes in interface to handle restrictions with
36767         parameters. Also generally simplifies setting of restrictions.
36768
36769         * snames.ads/adb: New entry for proper handling of No_Requeue
36770
36771         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
36772         restriction counting.
36773         Other minor changes for new restrictions handling
36774
36775         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
36776         Restriction_Warnings now allows full parameter notation
36777         Major rewrite of Restrictions for new restrictions handling
36778
36779 2004-02-02  Javier Miranda  <miranda@gnat.com>
36780
36781         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
36782         syntax rule for object renaming declarations.
36783         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
36784         component definitions.
36785
36786         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
36787         components.
36788         (Array_Type_Declaration): Give support to access components. In addition
36789         it was also modified to reflect the name of the object in anonymous
36790         array types. The old code did not take into account that it is possible
36791         to have an unconstrained anonymous array with an initial value.
36792         (Check_Or_Process_Discriminants): Allow access discriminant in
36793         non-limited types.
36794         (Process_Discriminants): Allow access discriminant in non-limited types
36795         Initialize the new Access_Definition field in N_Object_Renaming_Decl
36796         node.  Change Ada0Y to Ada 0Y in comments
36797
36798         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
36799         equality operators.
36800         Change Ada0Y to Ada 0Y in comments
36801
36802         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
36803         renamings Change Ada0Y to Ada 0Y in comments
36804
36805         * sem_type.adb (Find_Unique_Type): Give support to the equality
36806         operators for universal access types
36807         Change Ada0Y to Ada 0Y in comments
36808
36809         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
36810
36811         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
36812         field.
36813         (N_Object_Renaming_Declaration): Addition of Access_Definition field
36814         Change Ada0Y to Ada 0Y in comments
36815
36816         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
36817         component definition and object renaming nodes
36818         Change Ada0Y to Ada 0Y in comments
36819
36820 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
36821
36822         * restrict.adb: Use the new restriction identifier
36823         No_Requeue_Statements instead of the old No_Requeue for defining the
36824         restricted profile.
36825
36826         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
36827         No_Requeue_Statements.
36828
36829         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
36830         that supersedes the GNAT specific restriction No_Requeue. The later is
36831         kept for backward compatibility.
36832
36833 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
36834
36835         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
36836         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
36837         pragma and fix incorrect ones.
36838
36839         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
36840         warning if the pragma is redundant.
36841
36842 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
36843
36844         * 5staprop.adb: Add missing 'constant' keywords.
36845
36846         * Makefile.in: use consistent value for SYMLIB on
36847         platforms where libaddr2line is supported.
36848
36849 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36850
36851         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
36852         annotating types.
36853
36854 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
36855
36856         * init.c (__gnat_install_handler): Setup an alternate stack for signal
36857         handlers in the environment thread. This allows proper propagation of
36858         an exception on stack overflows in this thread even when the builtin
36859         ABI stack-checking scheme is used without support for a stack reserve
36860         region.
36861
36862         * utils.c (create_field_decl): Augment the head comment about bitfield
36863         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
36864         here, because the former is not accurate enough at this point.
36865         Let finish_record_type decide instead.
36866         Don't make a bitfield if the field is to be addressable.
36867         Always set a size for the field if the record is packed, to ensure the
36868         checks for bitfield creation are triggered.
36869         (finish_record_type): During last pass over the fields, clear
36870         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
36871         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
36872         from DECL_BIT_FIELD.
36873
36874 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
36875
36876         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
36877         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
36878         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
36879
36880 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
36881
36882         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
36883
36884         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
36885         (ZCX_By_Default): Likewise.
36886         (Front_End_ZCX_Support): Likewise.
36887
36888         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
36889         (Initialize_Lock): Mark Level unreferenced.
36890         (Sleep): Mark Reason unreferenced.
36891         (Timed_Sleep): Likewise.
36892         (Wakeup): Likewise.
36893         (Exit_Task): Use Result.
36894         (Check_No_Locks): Mark Self_ID unreferenced.
36895
36896         * 5gtasinf.adb (New_Sproc): Make Attr constant.
36897         (Bound_Thread_Attributes): Make Sproc constant.
36898         (New_Bound_Thread_Attributes): Likewise.
36899
36900 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
36901
36902         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
36903         one-dimensional array an slice assignments, when component type is
36904         controlled.
36905
36906         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
36907         component type is controlled, and control_actions are in effect, use
36908         TSS procedure rather than generating inline code.
36909
36910         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
36911         arrays with controlled components.
36912
36913 2004-01-26  Vincent Celier  <celier@gnat.com>
36914
36915         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
36916         command line for the non VMS case.
36917
36918         * gnatlink.adb (Process_Binder_File): When building object file, if
36919         GNU linker is used, put all object paths between quotes, to prevent ld
36920         error when there are unusual characters (such as '!') in the paths.
36921
36922         * Makefile.generic: When there are sources in Ada and the main is in
36923         C/C++, invoke gnatmake with -B, instead of -z.
36924
36925         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
36926         from VMS_Conversion.
36927         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
36928         specification of argument file on the command line.
36929
36930 2004-01-26  Bernard Banner  <banner@gnat.com>
36931
36932         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
36933
36934 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
36935
36936         * snames.adb: Update copyright notice.
36937         Add info on slice assignment for controlled arrays.
36938
36939 2004-01-23  Robert Dewar  <dewar@gnat.com>
36940
36941         * exp_aggr.adb: Minor reformatting
36942
36943         * exp_ch9.adb: Minor code clean up
36944         Minor reformatting
36945         Fix bad character in comment
36946
36947         PR ada/13471
36948         * targparm.adb (Get_Target_Parameters): Give clean abort error on
36949         unexpected end of file, along with more detailed message.
36950
36951 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36952
36953         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
36954         PAT.
36955
36956         * decl.c (copy_alias_set): New function.
36957         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
36958
36959 2004-01-23  Doug Rupp  <rupp@gnat.com>
36960
36961         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
36962         lib$${file} in case subsequent character is not a separator.
36963
36964 2004-01-23  Vincent Celier  <celier@gnat.com>
36965
36966         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
36967         when the GCC version is at least 3.
36968
36969         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
36970         Remove all "Opt.", to prepare for opt split
36971
36972         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
36973         Extends_All. Set to True when the project parsed is an extending all
36974         project. Fails for importing an extending all project only when the
36975         imported project is an extending all project.
36976         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
36977         depending on the value of Extends_All returned.
36978
36979         * prj-proc.adb (Process): Check that no project shares its object
36980         directory with a project that extends it, directly or indirectly,
36981         including a virtual project.
36982         Check that no project extended by another project shares its object
36983         directory with another also extended project.
36984
36985         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
36986         Kind = N_With_Clause
36987
36988         * prj-tree.ads: Minor reformatting
36989         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
36990
36991 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
36992
36993         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
36994         applies to a type with an incomplete view, use full view in Name of
36995         clause, for consistency with uses of Get_Attribute_Definition_Clause.
36996
36997 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
36998
36999         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
37000         SCHED_RR, since other values are not supported by this policy.
37001         (Initialize): Move initialization of mutex attribute to package
37002         elaboration, to prevent early access to this variable.
37003
37004         * Makefile.in: Remove mention of Makefile.adalib, unused.
37005
37006         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
37007         1ssecsta.ads: Removed, unused.
37008
37009 2004-01-21  Javier Miranda  <miranda@gnat.com>
37010
37011         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
37012         entity if already built in the current scope.
37013
37014         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
37015         reminder in internal scopes. Required for nested limited aggregates.
37016
37017 2004-01-21  Doug Rupp  <rupp@gnat.com>
37018
37019         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
37020         VMS. Replace all occurences of libgnat- and libgnarl- with
37021         libgnat$(hyphen) and libgnarl$(hyphen).
37022         Fixed shared library build problem on VMS.
37023
37024 2004-01-21  Robert Dewar  <dewar@gnat.com>
37025
37026         * mlib-prj.adb: Minor reformatting
37027
37028 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
37029
37030         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
37031         'constant' keywords for declaration of pointers that are not modified.
37032
37033         * exp_pakd.adb: Fix English in comment.
37034
37035 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
37036
37037         PR ada/10889
37038         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
37039         copy all attributes of the parent, including the foreign language
37040         convention.
37041
37042 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
37043
37044         PR ada/10565
37045         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
37046         for 'delay until' statement.
37047
37048 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
37049
37050         * Make-lang.in: Replace $(docdir) with doc.
37051         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
37052         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
37053         to use consistent MAKEINFO rule.
37054         (ada.man, ada.srcman): Dummy entry.
37055         (ADA_INFOFILES): Define.
37056         (ada.info, ada.srcinfo): New rules.
37057
37058 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
37059
37060         * utils.c: Update copyright notice, missed in previous change.
37061
37062 2004-01-19  Vincent Celier  <celier@gnat.com>
37063
37064         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
37065         args if Bind is True. Set First_ALI, if not already done.
37066         (Build_Library): For Stand Alone Libraries, extract from one ALI file
37067         an eventual --RTS switch, for gnatbind, and all backend switches +
37068         --RTS, for linking.
37069
37070 2004-01-19  Robert Dewar  <dewar@gnat.com>
37071
37072         * sem_attr.adb, memtrack.adb: Minor reformatting
37073
37074 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
37075
37076         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
37077         that rename enumeration literals. This is properly done in sem_eval.
37078
37079         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
37080         to functions that rename enumeration literals.
37081
37082         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
37083         functions that rename enumeration literals.
37084
37085 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
37086
37087         * Make-lang.in (utils.o): Depend on target.h.
37088         * utils.c: Include target.h.
37089         (process_attributes): Use targetm.have_named_sections instead
37090         of ASM_OUTPUT_SECTION_NAME.
37091
37092 2004-01-16  Andreas Jaeger  <aj@suse.de>
37093
37094         * Makefile.in: Add $(DESTDIR).
37095
37096 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
37097
37098         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
37099         also when not defining if a Size clause applies. That information is
37100         not to be ignored.
37101
37102 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
37103
37104         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
37105         symbolic links for the shared gnat run time when needed.
37106
37107 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
37108
37109         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
37110         for writing, and terminate with an error message if not.
37111
37112 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
37113
37114         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
37115         warning on an access to subprogram in an instance, when the target
37116         type is declared in the same generic unit.
37117         (Eval_Attribute): If 'access is known to fail accessibility check,
37118         rewrite as a raise statement.
37119
37120 2004-01-15  GNAT Script  <nobody@gnat.com>
37121
37122         * Make-lang.in: Makefile automatically updated
37123
37124 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
37125
37126         * Make-lang.in (ada.srcextra): Dummy entry.
37127
37128 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
37129
37130         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
37131
37132 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
37133
37134         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
37135         components that are initialized with aggregates.
37136
37137 2004-01-13  Vincent Celier  <celier@gnat.com>
37138
37139         * gnatlink.adb (Process_Binder_File): To find directory of shared
37140         libgcc, if "gcc-lib" is not a subdirectory, look for the last
37141         subdirectory "lib" in the path of the shared libgnat or libgnarl.
37142
37143         * make.adb (Gnatmake): If GCC version is at least 3, link with
37144         -shared-libgcc, when there is at least one shared library project.
37145
37146         * opt.ads (GCC_Version): New integer constant.
37147
37148         * adaint.c (get_gcc_version): New function.
37149
37150 2004-01-13  Robert Dewar  <dewar@gnat.com>
37151
37152         * sem_dist.adb, sem_res.adb, sem_util.adb,
37153         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
37154         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
37155
37156 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
37157
37158         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
37159         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
37160         declarations.
37161
37162 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
37163
37164         * misc.c: Remove trailing spaces.
37165         Update copyright notice missed in previous change.
37166
37167         PR ada/13572
37168         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
37169         prefix/share/make
37170
37171         * Makefile.generic: Update copyright.
37172         Add license notice.
37173
37174         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
37175         of prefix/share/make.
37176
37177         * Makefile.prolog: Update copyright.
37178         Add license notice.
37179
37180 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
37181
37182         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
37183         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
37184         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
37185         instead of String.
37186
37187         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
37188         signature.
37189
37190 2004-01-12  Javier Miranda  <miranda@gnat.com>
37191
37192         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
37193         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
37194         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
37195         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
37196         Component_Definition node.
37197
37198 2004-01-12  Ed Falis  <falis@gnat.com>
37199
37200         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
37201
37202 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
37203
37204         * link.c: Change default libgnat kind to STATIC for FreeBSD.
37205
37206 2004-01-12  Bernard Banner  <banner@gnat.com>
37207
37208         * Makefile.in: map 86numaux to a-numaux for x86_64
37209
37210 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
37211
37212         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
37213         generated to rename a generic actual, go to the actual itself, the
37214         subtype is not a user-visible entity.
37215
37216         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
37217         part is a private subtype, reset the visibility of its full view, if
37218         any, to be consistent.
37219
37220         PR ada/13417
37221         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
37222         to use a generic package G as a formal package for another generic
37223         declared within G.
37224
37225 2004-01-12  Robert Dewar  <dewar@gnat.com>
37226
37227         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
37228
37229         * usage.adb: Remove mention of obsolete -gnatwb switch
37230         Noticed during code reading
37231
37232 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
37233
37234         * 1ssecsta.adb: Minor changes for -gnatwa warnings
37235
37236 2004-01-12  GNAT Script  <nobody@gnat.com>
37237
37238         * Make-lang.in: Makefile automatically updated
37239
37240 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
37241
37242         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
37243
37244 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
37245
37246         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
37247
37248 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
37249
37250         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
37251         Update comment and copyright date.
37252         * stamp-xgnatug: Delete.
37253
37254 2004-01-05  Robert Dewar  <dewar@gnat.com>
37255
37256         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
37257         be modified by the binder generated main program if the -D switch is
37258         used.
37259
37260         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
37261         imported functions (since now we expect this to be done for imported
37262         functions)
37263
37264         * 5vtaprop.adb: Add several ??? for sections requiring more comments
37265         Minor reformatting throughout
37266
37267         * 5zinit.adb: Minor reformatting
37268         Add 2004 to copyright date
37269         Minor changes to avoid -gnatwa warnings
37270         Correct some instances of using OR instead of OR ELSE (noted while
37271         doing reformatting)
37272
37273         * sprint.adb: Minor updates to avoid -gnatwa warnings
37274
37275         * s-secsta.ads, s-secsta.adb:
37276         (SS_Get_Max): New function to obtain high water mark for ss stack
37277         Default_Secondary_Stack is not a constant since it may be modified by
37278         the binder generated main program if the -D switch is used.
37279
37280         * switch-b.adb: New -Dnnn switch for binder
37281
37282         * switch-c.adb:
37283         Make -gnatg imply all warnings currently in -gnatwa
37284
37285         * vms_conv.adb: Minor reformatting
37286         Add 2004 to copyright notice
37287         Add 2004 to printed copyright notice
37288
37289         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
37290         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
37291         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
37292         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
37293         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
37294         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
37295         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
37296         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
37297         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
37298         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
37299         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
37300         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
37301         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
37302         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
37303         checks.adb, clean.adb, cstand.adb, einfo.ads,
37304         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
37305         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
37306         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
37307         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
37308         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
37309         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
37310         Minor reformatting and code clean ups.
37311         Minor changes to prevent -gnatwa warnings
37312
37313         * ali.adb: Minor reformatting and cleanup of code
37314         Acquire new SS indication of secondary stack use from ali files
37315
37316         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
37317         (since now we expect this to be done for imported functions)
37318
37319         * bindgen.adb: Generate call to modify default secondary stack size if
37320         -Dnnn switch given
37321
37322         * bindusg.adb: Add line for new -D switch
37323
37324         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
37325         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
37326         Add circuitry for both records and arrays to avoid gigi
37327         processing if the type involved has non-bit-aligned components
37328
37329         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
37330         N_String_Literal node always references an E_String_Literal_Subtype
37331         entity. This may not be true in the future.
37332         (Possible_Bit_Aligned_Component): Move processing of
37333         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
37334
37335         * exp_ch6.adb (Expand_Thread_Body): Pick up
37336         Default_Secondary_Stack_Size as variable so that we get value modified
37337         by possible -Dnnn binder parameter.
37338
37339         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
37340         (Type_May_Have_Bit_Aligned_Components): New function.
37341
37342         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
37343         (Type_May_Have_Bit_Aligned_Components): New function.
37344
37345         * fe.h: (Set_Identifier_Casing): Fix prototype.
37346         Add declaration for Sem_Elim.Eliminate_Error_Msg.
37347         Minor reformatting.
37348
37349         * freeze.adb (Freeze_Entity): Add RM reference to error message about
37350         importing constant atomic/volatile objects.
37351         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
37352         unless explicit Pure_Function pragma given, to avoid insidious bug of
37353         call to non-pure imported function getting eliminated.
37354
37355         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
37356         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
37357         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
37358         Add 2004 to printed copyright notice
37359
37360         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
37361         stack used.
37362
37363         * Makefile.rtl: Add entry for g-sestin.o
37364         g-sestin.ads: New file.
37365
37366         * mdll.adb: Minor changes to avoid -gnatwa warnings
37367
37368         * mlib-tgt.adb: Minor reformatting
37369
37370         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
37371         New switch Sec_Stack_Used (GNAT, GNATBIND)
37372         Make Default_Secondary_Stack_Size a variable instead of a constant,
37373         so that it can be modified by the new -Dnnn bind switch.
37374
37375         * rtsfind.adb (Load_Fail): Give full error message in configurable
37376         run-time mode if all_errors mode is set. This was not done in the case
37377         of a file not found, which was an oversight.
37378         Note if secondary stack unit is used by compiler.
37379
37380         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
37381         ineffective elaborate all pragmas on non-visible packages (this
37382         happened when a renamed subprogram was called). Now the elaborate all
37383         always goes on the package containing the renaming rather than the one
37384         containing the renamed subprogram.
37385
37386         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
37387         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
37388
37389         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
37390         has an Etype that references an E_String_Literal.
37391         (Eval_String_Literal): Avoid assumption that N_String_Literal node
37392         always references an E_String_Literal_Subtype entity. This may not
37393         be true in the future.
37394
37395         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
37396         pragma location.
37397
37398         * sem_res.adb (Resolve): Specialize msg for function name used in proc
37399         call.
37400
37401 2004-01-05  Ed Falis  <falis@gnat.com>
37402
37403         * g-debuti.adb: Replaced direct boolean operator with short-circuit
37404         form.
37405
37406 2004-01-05  Vincent Celier  <celier@gnat.com>
37407
37408         * bld.adb: Minor comment updates
37409         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
37410         of Item_Name).
37411
37412         * make.adb (Gnatmake): Special process for files to compile/check when
37413         -B is specified. Fail when there are only foreign mains in attribute
37414         Main of the project file and -B is not specified. Do not skip bind/link
37415         steps when -B is specified.
37416
37417         * makeusg.adb: Document new switch -B
37418
37419         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
37420
37421         * switch-m.adb: (Scan_Make_Switches): Process -B switch
37422
37423         * vms_data.ads: Add new GNAT PRETTY qualifier
37424         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
37425
37426 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37427
37428         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
37429         case.
37430
37431         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
37432         Set_Identifier_Casing.
37433
37434         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
37435         has size that overflows.
37436
37437 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
37438
37439         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
37440         -gnatwa warning on static condition.
37441
37442 2004-01-05  Doug Rupp  <rupp@gnat.com>
37443
37444         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
37445
37446 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
37447
37448         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
37449         all attributes, including read-only attribute.
37450
37451 2004-01-05  Pascal Obry  <obry@gnat.com>
37452
37453         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
37454         library naming scheme.
37455
37456         * mlib-prj.adb (Build_Library): Generate different names for the static
37457         or dynamic version of the GNAT runtime. This is needed to support the
37458         new shared library naming scheme.
37459         (Process_Binder_File): Add detection of shared library in binder file
37460         based on the new naming scheme.
37461
37462         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
37463         scheme for the shared runtime libraries.
37464
37465         * Makefile.in:
37466         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
37467         scheme.
37468         (install-gnatlib): Do not create symlinks for shared libraries.
37469         (gnatlib-shared-default): Idem.
37470         (gnatlib-shared-dual-win32): New target. Not used for now as the
37471         auto-import feature does not support arrays/records.
37472         (gnatlib-shared-win32): Do not create copy for the shared libraries.
37473         (gnatlib-shared-vms): Fix shared runtime libraries names.
37474
37475         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
37476         dependent runtime shared library name.
37477
37478 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
37479
37480         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
37481         than the object.
37482
37483 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
37484
37485         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
37486         protected objects when allocator has a subtype indication, not a
37487         qualified expression. Note that qualified expressions may have to be
37488         checked when limited aggregates are implemented.
37489
37490         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
37491         pure, emit warning.
37492         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
37493         subprogram is imported, remove warning.
37494
37495 2004-01-05  Geert Bosch  <bosch@gnat.com>
37496
37497         * s-poosiz.adb: Update copyright notice.
37498         (Allocate): Use Task_Lock to protect against concurrent access.
37499         (Deallocate): Likewise.
37500
37501 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
37502
37503         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
37504         comment.
37505
37506 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
37507
37508         * gnat_ug.texi: Force a CVS commit by updating copyright.
37509         * gnat_ug_vxw.texi: Regenerate.
37510         * gnat_ug_wnt.texi: Regenerate.
37511         * gnat_ug_vms.texi: Regenerate.
37512         * gnat_ug_unx.texi: Regenerate.
37513
37514 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
37515
37516         * trans.c: Remove uses of "register" specifier in
37517         declarations of local variables.
37518
37519 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
37520
37521         * stamp-xgnatug: New stamp file.
37522         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
37523         (ada/doctools/xgnatug): Add $(build_exeext).
37524         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
37525         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
37526
37527 2003-12-17  Ed Falis  <falis@gnat.com>
37528
37529         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
37530         eliminate warning.
37531
37532         * a-exextr.adb: Add context clause for
37533         Ada.Exceptions.Last_Chance_Handler.
37534
37535 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
37536
37537         * cstand.adb (Create_Standard): Change the way how the declaration of
37538         the Duration type is created (making it the same way as it is for all
37539         the other standard types).
37540
37541 2003-12-17  Robert Dewar  <dewar@gnat.com>
37542
37543         * s-crtl.ads: Fix header format
37544         Change Pure to Preelaborate
37545
37546 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
37547
37548         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
37549         the expression type only if it is declared in the current unit.
37550
37551         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
37552         are universal and already analyzed, as can occur in constrained
37553         subcomponents that depend on discriminants, when one constraint is a
37554         subtype mark.
37555
37556         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
37557         type Any_Fixed is legal as the argument of a conversion, if only one
37558         fixed-point type is in context.
37559
37560 2003-12-17  GNAT Script  <nobody@gnat.com>
37561
37562         * Make-lang.in: Makefile automatically updated
37563
37564 2003-12-15  Robert Dewar  <dewar@gnat.com>
37565
37566         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
37567         sec stack size.
37568
37569 2003-12-15  Vincent Celier  <celier@gnat.com>
37570
37571         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
37572         (Gnatchop): Do not set failure status when reporting the number of
37573         warnings.
37574
37575 2003-12-15  Doug Rupp  <rupp@gnat.com>
37576
37577         * s-ctrl.ads: New file.
37578
37579         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
37580
37581         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
37582         (GNATBIND_OBJS): Add ada/s-crtl.o.
37583
37584         * Makefile.in [VMS]: Clean up ifeq rules.
37585
37586         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
37587         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
37588         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
37589         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
37590         s-tasdeb.adb: Update copyright.
37591         Import System.CRTL.
37592         Make minor modifications to use System.CRTL declared functions instead
37593         of importing locally.
37594
37595 2003-12-15  GNAT Script  <nobody@gnat.com>
37596
37597         * Make-lang.in: Makefile automatically updated
37598
37599 2003-12-11  Ed Falis  <falis@gnat.com>
37600
37601         * 5zinit.adb: Clean up.
37602
37603         * 5zintman.adb (Notify_Exception): replaced case statement with a call
37604         to __gnat_map_signal, imported from init.c to support
37605         signal -> exception mappings that depend on the vxWorks version.
37606
37607         * init.c:
37608         Created and exported __gnat_map_signal to support signal -> exception
37609         mapping that is dependent on the VxWorks version.
37610         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
37611
37612 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
37613
37614         * 5wosinte.ads: Link with -mthreads switch.
37615
37616 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
37617
37618         * init.c (__gnat_install_handler [NetBSD]): Set
37619         __gnat_handler_installed, as done on all other platforms.
37620         Remove duplicated code.
37621
37622 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
37623
37624         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
37625
37626 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
37627
37628         * sinfo.ads: Fix inconsistent example code in comment.
37629
37630 2003-12-11  Robert Dewar  <dewar@gnat.com>
37631
37632         * a-tiinau.adb: Add a couple of comments
37633
37634         * sem_ch3.adb: Minor reformatting
37635
37636         * sem_prag.adb:
37637         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
37638         Minor reformatting throughout
37639
37640 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
37641
37642         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
37643         bounds of a loop, create a separate block in order to generate proper
37644         cleanup actions to prevent memory leaks.
37645
37646         * sem_res.adb (Resolve_Call): After a call to
37647         Establish_Transient_Scope, the call may be rewritten and relocated, in
37648         which case no further processing is needed.
37649
37650         * sem_util.adb: (Wrong_Type): Refine previous fix.
37651          Fixes ACATS regressions.
37652
37653         PR ada/13353
37654         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
37655         be inlined.
37656
37657 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
37658
37659         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
37660         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
37661         obsolete files.
37662
37663         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
37664         (rts-zfp): Ditto.
37665
37666 2003-12-08  Robert Dewar  <dewar@gnat.com>
37667
37668         * 7sintman.adb: Minor reformatting
37669
37670         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
37671         standard linker options to get standard libraries linked. We now plan
37672         to provide dummy versions of these libraries to match the appropriate
37673         configurable run-time (e.g. if a library is not needed at all, provide
37674         a dummy empty library).
37675
37676         * targparm.ads: Configurable_Run_Time mode no longer affects linker
37677         options (-L parameters and standard libraries). What we plan to do is
37678         to provide dummy libraries where the libraries are not required.
37679
37680         * gnatbind.adb: Minor comment improvement
37681
37682 2003-12-08  Javier Miranda  <miranda@gnat.com>
37683
37684         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
37685         aggregate in the parent. Otherwise constants with limited aggregates
37686         are not supported. Add new formal to pass the component type (Ctype).
37687         It is required to call the corresponding IP subprogram in case of
37688         default initialized components.
37689         (Gen_Assign): In case of default-initialized component, generate a
37690         call to the IP subprogram associated with the component.
37691         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
37692         of aggregate with default initialized components.
37693         (Has_Default_Init_Comps): Improve implementation to recursively check
37694         all the present expressions.
37695
37696         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
37697         to indicate that the initialization call corresponds to a
37698         default-initialized component of an aggregate.
37699         In case of default initialized aggregate with tasks this parameter is
37700         used to generate a null string (this is just a workaround that must be
37701         improved later). In case of discriminants, this parameter is used to
37702         generate a selected component node that gives access to the discriminant
37703         value.
37704
37705         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
37706         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
37707         allocated aggregates with default-initialized components.
37708
37709         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
37710         the box notation is used in positional aggregates.
37711
37712 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
37713
37714         * lib.ads: Fix typo in comment
37715
37716 2003-12-08  Vincent Celier  <celier@gnat.com>
37717
37718         * prj.adb (Project_Empty): New component Unkept_Comments
37719         (Scan): Remove procedure; moved to Prj.Err.
37720
37721         * prj.ads (Project_Data): New Boolean component Unkept_Comments
37722         (Scan): Remove procedure; moved to Prj.Err.
37723
37724         * prj-dect.adb: Manage comments for the different declarations.
37725
37726         * prj-part.adb (With_Record): New component Node
37727         (Parse): New Boolean parameter Store_Comments, defaulted to False.
37728         Set the scanner to return ends of line and comments as tokens, if
37729         Store_Comments is True.
37730         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
37731         comments are associated with these nodes. Store the node IDs in the
37732         With_Records.
37733         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
37734         With_Records.
37735         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
37736         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
37737         current project. Call Tree.Restore afterwards. Set the various nodes
37738         for comment storage (Next_End, End_Of_Line, Previous_Line,
37739         Previous_End).
37740
37741         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
37742         defaulted to False.
37743
37744         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
37745         to False. When Truncated is True, truncate the string, never go to the
37746         next line.
37747         (Write_End_Of_Line_Comment): New procedure
37748         (Print): Process comments for nodes N_With_Clause,
37749         N_Package_Declaration, N_String_Type_Declaration,
37750         N_Attribute_Declaration, N_Typed_Variable_Declaration,
37751         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
37752         Process nodes N_Comment.
37753
37754         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
37755         without comments and there are some comments, set the flag
37756         Unkept_Comments to True.
37757         (Scan): If there are comments, set the flag Unkept_Comments to True and
37758         clear the comments.
37759         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
37760         (Next_End_Nodes: New table
37761         (Comment_Zones_Of): New function
37762         (Scan): New procedure; moved from Prj. Accumulate comments in the
37763         Comments table and set end of line comments, comments after, after end
37764         and before end.
37765         (Add_Comments): New procedure
37766         (Save, Restore, Seset_State): New procedures
37767         (There_Are_Unkept_Comments): New function
37768         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
37769         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
37770         procedures.
37771         (First_Comment_After, First_Comment_After_End): New functions
37772         (First_Comment_Before, First_Comment_Before_End): New functions
37773         (Next_Comment): New function
37774         (End_Of_Line_Comment, Follows_Empty_Line,
37775         Is_Followed_By_Empty_Line): New functions
37776         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
37777         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
37778         (Set_Next_Comment): New procedure
37779         (Default_Project_Node): Associate comment before if the node can store
37780         comments.
37781
37782         * scans.ads (Token_Type): New enumeration value Tok_Comment
37783         (Comment_Id): New global variable
37784
37785         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
37786         defaulted to False.
37787         (Scan): Store position of start of comment. If comments are tokens, set
37788         Comment_Id and set Token to Tok_Comment when scanning a comment.
37789         (Set_Comment_As_Token): New procedure
37790
37791         * sinput-p.adb: Update Copyright notice
37792         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
37793         that no longer exists.
37794
37795 2003-12-08  Javier Miranda  <miranda@gnat.com>
37796
37797         * sem_aggr.adb: Add dependence on Exp_Tss package
37798         Correct typo in comment
37799         (Resolve_Aggregate): In case of array aggregates set the estimated
37800         type of the aggregate before calling resolve. This is needed to know
37801         the name of the corresponding IP in case of limited array aggregates.
37802         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
37803         in case of default initialized array components.
37804
37805         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
37806         types. Required to give support to limited aggregates in generic
37807         formals.
37808
37809 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
37810
37811         * sem_ch3.adb (Check_Initialization): For legality purposes, an
37812         inlined body functions like an instantiation.
37813         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
37814         until bounds are analyzed, to diagnose premature use of type.
37815
37816         * sem_util.adb (Wrong_Type): Improve error message when the type of
37817         the expression is used prematurely.
37818
37819 2003-12-08  GNAT Script  <nobody@gnat.com>
37820
37821         * Make-lang.in: Makefile automatically updated
37822
37823 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
37824
37825         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
37826         they are automatically generated by Make-lang.in and cause nothing but
37827         maintenance troubles.
37828
37829 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
37830
37831         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
37832         version of this unit).
37833
37834 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
37835
37836         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
37837         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
37838         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
37839         the body of System.Interrupt_Management common to several targets.
37840         Update copyright notice when appropriate.
37841
37842         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
37843         constant.
37844
37845         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
37846         to ensure that the kernel fills in the interrupted context structure
37847         before calling a signal handler, which is necessary to be able to
37848         unwind past it. Update the copyright notice.
37849
37850 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
37851
37852         * a-elchha.ads: New file.
37853
37854         * a-elchha.adb: New default last chance handler. Contents taken from
37855         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
37856
37857         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
37858         is moved to a-elchha.adb to provide a target-independent default last
37859         chance handler.
37860
37861         * Makefile.rtl: Add a-elchha.o
37862
37863         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
37864
37865 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
37866
37867         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
37868         declared in an instance, do not inline the call if the instance is not
37869         frozen yet, to prevent order of elaboration problems.
37870
37871         * sem_prag.adb: Add comments for previous fix.
37872
37873 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
37874
37875         * g-table.adb: Use the right variable in Set_Item.
37876         Update copyright notice.
37877
37878 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
37879
37880         * Makefile.in: Remove unused rules.
37881
37882 2003-12-05  Vincent Celier  <celier@gnat.com>
37883
37884         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
37885         -nostdlib. Not needed here after all.
37886
37887 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
37888
37889         PR ada/11724
37890         * adaint.h, adaint.c, g-os_lib.ads:
37891         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
37892         on some platforms (including FreeBSD), it is a 64 bit value.
37893         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
37894
37895 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
37896
37897         * gnatvsn.ads (Library_Version): Now contain only the relevant
37898         version info.
37899         (Verbose_Library_Version): New constant.
37900
37901         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
37902         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
37903         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
37904
37905         * gnatlbr.adb: Clean up: replace Library_Version by
37906         Verbose_Library_Version.
37907
37908         * make.adb, lib-writ.adb, exp_attr.adb:
37909         Clean up: replace Library_Version by Verbose_Library_Version.
37910
37911         * 5lintman.adb: Removed.
37912
37913         * Makefile.in:
37914         Update and simplify computation of LIBRARY_VERSION.
37915         Fix computation of GSMATCH_VERSION.
37916         5lintman.adb is no longer used: replaced by 7sintman.adb.
37917
37918 2003-12-03  Robert Dewar  <dewar@gnat.com>
37919
37920         * exp_ch5.adb:
37921         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
37922         name. Modified to consider small non-bit-packed arrays as troublesome
37923         and in need of component-by-component assigment expansion.
37924
37925 2003-12-03  Vincent Celier  <celier@gnat.com>
37926
37927         * lang-specs.h: Process nostdlib as nostdinc
37928
37929         * back_end.adb: Update Copyright notice
37930         (Scan_Compiler_Arguments): Process -nostdlib directly.
37931
37932 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
37933
37934         * Makefile.in:
37935         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
37936         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
37937         included in HIE_NONE_TARGET_PAIRS.
37938
37939 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
37940
37941         * sem_attr.adb:
37942         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
37943         is legal in an instance, because legality is cheched in the template.
37944
37945         * sem_prag.adb:
37946         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
37947         appplied to an unchecked conversion of a formal parameter.
37948
37949         * sem_warn.adb:
37950         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
37951         variables.
37952
37953 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
37954
37955         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
37956         routines. The second one is new functionality to deal with backtracing
37957         through signal handlers.
37958         (unwind): Split into the two separate subroutines above.
37959         Update the documentation, and deal properly with sizeof (REG) different
37960         from sizeof (void*).
37961
37962 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
37963
37964         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
37965         so that the debugger can reliably access the value of the parameter,
37966         and therefore is able to display the exception name when an exception
37967         breakpoint is reached.
37968
37969 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
37970
37971         * fmap.adb: Fix typo in warning message.
37972
37973         * g-socket.ads, g-socket.adb: Make Free a visible instance of
37974         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
37975
37976 2003-12-01  Vincent Celier  <celier@gnat.com>
37977
37978         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
37979         ther is no Afile.
37980         (Build_Library): Get the switches only if Default_Switches is declared
37981         in package Binder.
37982
37983 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
37984
37985         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
37986         actuals that are indexed components, reanalyze actual to ensure that
37987         packed array references are properly expanded.
37988
37989         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
37990         attempted assignment to a discriminant.
37991
37992 2003-12-01  Robert Dewar  <dewar@gnat.com>
37993
37994         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
37995         reformatting.
37996
37997         * switch-c.adb: Minor reformatting of comments
37998
37999 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
38000
38001         * Makefile.in: Clean ups.
38002
38003 2003-12-01  GNAT Script  <nobody@gnat.com>
38004
38005         * Make-lang.in: Makefile automatically updated
38006
38007 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
38008
38009         * 5wsystem.ads: Disable zero cost exception, not ready yet.
38010
38011 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
38012
38013         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
38014         to force serialization.
38015
38016 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
38017
38018         * g-socket.ads, g-socket.adb:
38019         Clarify documentation of function Stream. Introduce a Free procedure
38020         to release the returned Stream once it becomes unused.
38021
38022         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
38023
38024 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
38025
38026         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
38027         since NT 4 cannot handle timeout values that are too large,
38028         e.g. DWORD'Last - 1.
38029
38030 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
38031
38032         * exp_ch4.adb:
38033         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
38034         in procedure calls and whose expansion must be deferred.
38035
38036         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
38037         is in exp_ch4.
38038
38039         * sem_ch3.adb:
38040         (Build_Derived_Array_Type): Create operator for unconstrained type
38041         if ancestor is unconstrained.
38042
38043 2003-11-26  Vincent Celier  <celier@gnat.com>
38044
38045         * make.adb (Project_Object_Directory): New global variable
38046         (Change_To_Object_Directory): New procedure
38047         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
38048         of Change_Dir directly. Do not change working directory to object
38049         directory of main project after each compilation.
38050         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
38051         directly.
38052         Change to object directory of main project before binding step.
38053         (Initialize): Initialize Project_Object_Directory to No_Project
38054
38055         * mlib-prj.adb:
38056         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
38057         binding a Stand-Alone Library.
38058
38059         * output.adb: Update Copyright notice
38060         (Write_Char): Output buffer when full
38061
38062 2003-11-26  Robert Dewar  <dewar@gnat.com>
38063
38064         * sem_ch13.adb: (Check_Size): Reset size if size is too small
38065
38066         * sem_ch13.ads:
38067         (Check_Size): Fix documentation to include bit-packed array case
38068
38069         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
38070
38071         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
38072
38073         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
38074
38075 2003-11-24  Arnaud Charlet  <charlet@act-europe.fr>
38076
38077         PR ada/13142
38078         * utils.c (init_gigi_decls): Change name of built-in setjmp to
38079         __builtin_setjmp, since this is apparently needed by recent
38080         non Ada changes.
38081
38082 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
38083
38084         * adadecode.c: Only include ctype.h if not IN_GCC.
38085         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
38086
38087 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
38088
38089         * Makefile.in:
38090         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
38091         signals and interrupts.
38092
38093         * 5zintman.ads: New File.
38094
38095         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
38096         add exception signals to the set of unmasked signals.
38097
38098         * 5ztaprop.adb:
38099         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
38100         between signals and interrupts.
38101         Add to Unblocked_Signal_Mask the set of signals that are in
38102         Keep_Unmasked.
38103
38104         * 7sinmaop.adb:
38105         Adding a check to see whether the Interrupt_ID we want to unmask is in
38106         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
38107         reason is that the index type of the Keep_Unmasked array is not always
38108         Interrupt_ID; it may be a subtype of Interrupt_ID.
38109
38110 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
38111
38112         * exp_util.adb:
38113         (Remove_Side_Effects): Condition constantness of object created for a
38114          an unchecked type conversion on the constantness of the expression
38115          to ensure the correct value for 'Constrained when passing components
38116          of view-converted class-wide objects.
38117
38118 2003-11-24  Robert Dewar  <dewar@gnat.com>
38119
38120         * par-load.adb (Load): Improve handling of misspelled and missing units
38121         Removes several cases of compilation abandoned messages
38122
38123         * lib.adb: (Remove_Unit): New procedure
38124
38125         * lib.ads: (Remove_Unit): New procedure
38126
38127         * lib-load.adb: Minor reformatting
38128
38129 2003-11-24  Vincent Celier  <celier@gnat.com>
38130
38131         * make.adb:
38132         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
38133         (Marking_Label): Label to mark processed source files. Incremented for
38134         each executable.
38135         (Gnatmake): Increase Marking_Labet for each executable
38136         (Is_Marked): Compare against marking label
38137         (Mark): Mark with marking label
38138
38139 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
38140
38141         * s-thread.ads:
38142         Move the declaration of the TSD for System.Threads to System.Soft_Links.
38143         Add some comments.
38144
38145         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
38146         (rts-cert): build a single relocatable object for the run-time lib.
38147         Fix perms.
38148
38149 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
38150
38151         * Make-lang.in:
38152         Use gnatls rather than gcc to obtain the location of GNAT RTL for
38153         crosstools build.
38154
38155 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
38156
38157         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
38158         can not use it as before (that is, as a variable) when dumping it into
38159         the tree file. Add a local variable to store the result of this
38160         function and to be used as the string to be written into the tree.
38161
38162         * scn.adb (Initialize_Scanner): Add comments explaining the recent
38163         changes.
38164
38165         * sinput.adb (Source_First, Source_Last): In case of
38166         Internal_Source_File, replace returning attributes of
38167         Internal_Source_Ptr (which is wrong) with returning attributes of
38168         Internal_Source.
38169
38170 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
38171
38172         * sem_ch3.adb:
38173         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
38174         used for implicit concatenation operators.
38175         Code cleanup.
38176
38177         * sem_elab.adb:
38178         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
38179         task bodies that are in the scope of a Suppress pragma.
38180         (Check_A Call): Use the flag to prevent spurious elaboration checks.
38181
38182         * sinfo.ads, sinfo.adb:
38183         New flag No_Elaboration_Check on function/procedure calls, to properly
38184         suppress checks on calls in task bodies that are within a local suppress
38185         pragma.
38186
38187         * exp_ch4.adb:
38188         (Expand_Concatenate_Other): Use the proper integer type for the
38189         expression for the upper bound, to avoid universal_integer computations
38190         when possible.
38191
38192 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
38193
38194         * .cvsignore: Delete.
38195
38196 2003-11-21  Andreas Schwab  <schwab@suse.de>
38197
38198         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
38199
38200 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
38201
38202         * 5wsystem.ads: Enable zero cost exception.
38203
38204 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
38205
38206         * 5ztiitho.adb: Remove an unreferenced variable.
38207
38208 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
38209
38210         * adaint.c: For FreeBSD, use mkstemp.
38211
38212 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
38213
38214         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
38215
38216 2003-11-21  Robert Dewar  <dewar@gnat.com>
38217
38218         * bld.adb: Remove useless USE of gnatvsn
38219
38220         * gnatchop.adb: Minor reformatting
38221         Clean up version handling to be more consistent
38222
38223         * gnatxref.adb: Minor reformatting
38224
38225         * gprcmd.adb: Minor reformatting
38226         Fix output of copyright to be more consistent with other tools
38227
38228 2003-11-21  Vincent Celier  <celier@gnat.com>
38229
38230         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
38231
38232 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
38233
38234         * atree.adb (Initialize): Add initializations for global variables
38235         used in New_Copy_Tree.
38236
38237         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
38238         Internal_Source_File as the actual).
38239         Put the set of statements creating Any_Character before the set of
38240         statements creating Any_Array to have Any_Character fully initialized
38241         when it is used in creating Any_Array.
38242
38243         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
38244         not call Scan in case if the actual is Internal_Source_File
38245         Add 2003 to copyright note.
38246
38247         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
38248         processing Internal_Source_File.
38249
38250         * types.ads: Add the constant Internal_Source_File representing the
38251         source buffer for artificial source-code-like strings created within
38252         the compiler (the definition of Source_File_Index is changed).
38253
38254 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
38255
38256         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
38257         56system.ads: New file, FreeBSD version.
38258
38259 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
38260
38261         * Make-lang.in (ada.extraclean): Delete.
38262
38263 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
38264
38265         * gnatmem.adb: Clean up verbose output.
38266
38267         * gprcmd.adb: Change copyright to FSF.
38268
38269 2003-11-19  Vincent Celier  <celier@gnat.com>
38270
38271         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
38272         and Version (ignored).
38273
38274         * symbols.ads: (Policy): New type
38275         (Initialize): New parameter Reference, Symbol_Policy and
38276         Library_Version.
38277         Remove parameter Force.
38278         Minor reformatting.
38279
38280         * snames.ads, snames.adbadb: New standard names
38281         Library_Reference_Symbol_File and Library_Symbol_Policy
38282
38283         * mlib-prj.adb:
38284         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
38285         project.
38286
38287         * mlib-tgt.adb:
38288         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
38289
38290         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
38291
38292         * prj.adb: (Project_Empty): New component Symbol_Data
38293
38294         * prj.ads: (Policy, Symbol_Record): New types
38295         (Project_Data): New component Symbol_Data
38296
38297         * prj-attr.adb:
38298         New attributes Library_Symbol_File, Library_Symbol_Policy and
38299         Library_Reference_Symbol_File.
38300
38301         * prj-nmsc.adb:
38302         (Ada_Check): When project is a Stand-Alone library project, process
38303         attribute Library_Symbol_File, Library_Symbol_Policy and
38304         Library_Reference_Symbol_File.
38305
38306         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
38307         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
38308         5sml-tgt.adb (Build_Dynamic_Library): New parameter
38309         Symbol_Data (ignored).
38310
38311         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
38312         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
38313         functions Option_File_Name and Version_String. Set new options of
38314         gnatsym related to symbol file, symbol policy and reference symbol
38315         file.
38316
38317         * 5vsymbol.adb:
38318         Extensive modifications to take into account the reference symbol file,
38319         the symbol policy, the library version and to put in the symbol file the
38320         minor and major IDs.
38321
38322         * bld.adb (Process_Declarative_Items): Put second argument of
38323         gprcmd to_absolute between single quotes, to avoid problems with
38324         Windows.
38325
38326         * bld-io.adb: Update Copyright notice.
38327         (Flush): Remove last character of a line, if it is a back slash, to
38328         avoid make problems.
38329
38330         * gnatsym.adb:
38331         Implement new scheme with reference symbol file and symbol policy.
38332
38333         * g-os_lib.ads: (Is_Directory): Clarify comment
38334
38335 2003-11-19  Robert Dewar  <dewar@gnat.com>
38336
38337         * atree.adb: Move New_Copy_Tree global variables to head of package
38338
38339         * errout.adb: Minor reformatting
38340
38341 2003-11-19  Javier Miranda  <miranda@gnat.com>
38342
38343         * sem_ch4.adb: (Diagnose_Call): Improve error message.
38344         Add reference to Ada0Y (AI-50217)
38345
38346         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
38347         sem_util.adb: Add reference to AI-50217
38348
38349         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
38350
38351         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
38352
38353         * sem_aggr.adb: Complete documentation of AI-287 changes
38354
38355         * par-ch4.adb: Document previous changes.
38356
38357         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
38358         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
38359         Ada0Y (AI-50217)
38360
38361         * exp_aggr.adb: Add references to AI-287 in previous changes
38362
38363 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
38364
38365         * exp_ch6.adb:
38366         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
38367         in the rewriting is the result of an inlined call.
38368
38369         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
38370         parameter is a type conversion, use original node to construct the
38371         post-call assignment, because expression may have been rewritten, e.g.
38372         if it is a packed array.
38373
38374         * sem_attr.adb:
38375         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
38376         body, just as it is in an instance.
38377         Categorization routines
38378
38379         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
38380         Instantiate_Object): Set proper sloc reference for message on missing
38381         actual.
38382
38383 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
38384
38385         * Makefile.in: Add FreeBSD libgnat pairs.
38386
38387         * usage.adb: Fix typo in usage message.
38388
38389 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
38390
38391         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
38392         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
38393         pragma Thread_Body.
38394         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
38395
38396         * s-thread.adb: This file is now a dummy implementation of
38397         System.Thread.
38398
38399 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
38400
38401         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
38402
38403 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
38404
38405         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
38406         instanciation references in the parent type description.
38407
38408 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
38409
38410         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
38411
38412         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
38413         TYPE_PRECISION directly from esize.
38414
38415 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
38416
38417         * cstreams.c:
38418         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
38419
38420         * init.c: Initialization routines for FreeBSD
38421
38422         * link.c: Link info for FreeBSD
38423
38424         * sysdep.c: Add the case of FreeBSD
38425
38426 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
38427
38428         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
38429         already called in System.Threads.
38430
38431         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
38432         environment task, as it has been moved to System.Threads.Initialization.
38433
38434 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
38435
38436         * adaint.c (__gnatlib_install_locks): Only reference
38437         __gnat_install_locks on VMS, since other platforms can avoid using
38438         --enable-threads=gnat
38439
38440 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
38441
38442         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
38443
38444         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
38445         TYPE_PACKED_ARRAY_TYPE_P.
38446         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
38447
38448         Part of PR ada/12806
38449         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
38450         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
38451
38452 2003-11-17  Vincent Celier  <celier@gnat.com>
38453
38454         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
38455         to False.
38456         Do not set exit status to Failure when Warning is True.
38457         (Gnatchop): Make errors "no compilation units found" and
38458         "no source files written" warnings only.
38459
38460         * make.adb (Gnatmake): When using a project file, set
38461         Look_In_Primary_Dir to False.
38462         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
38463         and Local_Configuration_Pragmas in the project where they are declared
38464         not an extending project which might have inherited them.
38465
38466         * osint.adb (Locate_File): If Name is already an absolute path, do not
38467         look for a directory.
38468
38469         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
38470         -gnats (Check_Syntax) is used, issue only a warning, not an error.
38471
38472         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
38473         in objects of type Variable_Value.
38474
38475         * prj.ads: (Variable_Value): New component Project
38476
38477         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
38478         is in a project extended by Project.
38479
38480         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
38481         Project of Variable_Values to this new parameter value.
38482         (Expression): Set component Project of Variable_Values.
38483         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
38484         Set the component Project in array elements.
38485
38486 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
38487
38488         * errout.adb: (Initialize): Add initialization for error nodes.
38489
38490         * sem_ch12.adb (Initialize): Add missing initializations for
38491         Exchanged_Views and Hidden_Entities.
38492
38493 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
38494
38495         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
38496         already instantiated tree for use in subsequent inlining.
38497         (Analyze_Associations, Instantiate_Formal_Subprogram,
38498         Instantiate_Object): improve error message for mismatch in
38499         instantiations.
38500
38501         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
38502         instantiations of subprograms declared in instances.
38503
38504 2003-11-17  Javier Miranda  <miranda@gnat.com>
38505
38506         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
38507         executed only under the Extensions_Allowed flag.
38508
38509 2003-11-17  Robert Dewar  <dewar@gnat.com>
38510
38511         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
38512         zeroes suppressed.
38513         (Address_Image): Fix bug of returning 0x instead of 0x0
38514         Minor reformatting (function specs).
38515
38516         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
38517         (missed case of 33-63)
38518
38519         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
38520
38521         * s-thread.adb: Add comments for pragma Restriction
38522
38523         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
38524         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
38525
38526 2003-11-17  Ed Falis  <falis@gnat.com>
38527
38528         * s-thread.adb: Added No_Tasking restriction for this implementation.
38529
38530 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
38531
38532         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
38533         instanciation references in the parent type description.
38534
38535 2003-11-17  GNAT Script  <nobody@gnat.com>
38536
38537         * Make-lang.in: Makefile automatically updated
38538
38539 2003-11-16  Jason Merrill  <jason@redhat.com>
38540
38541         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
38542         and TAGS files that include them for each front end.
38543
38544 2003-11-14  Andreas Jaeger  <aj@suse.de>
38545
38546         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
38547         is the canonical version.
38548         * misc.c (gnat_handle_option): Likewise.
38549
38550         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
38551
38552         * 5nsystem.ads: New file for x86_64-linux-gnu.
38553
38554 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
38555
38556         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
38557
38558         * comperr.adb: Fix logic in previous change.
38559
38560 2003-11-13  Vincent Celier  <celier@gnat.com>
38561
38562         * 5bml-tgt.adb (Build_Dynamic_Library): Use
38563         Osint.Include_Dir_Default_Prefix instead of
38564         Sdefault.Include_Dir_Default_Name.
38565
38566         * gnatlbr.adb: Update Copyright notice
38567         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
38568         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
38569         instead of Sdefault.Object_Dir_Default_Name
38570
38571         * gnatlink.adb:
38572         (Process_Binder_File): Never suppress the option following -Xlinker
38573
38574         * mdll-utl.adb:
38575         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
38576         Sdefault.Object_Dir_Default_Name.
38577
38578         * osint.ads, osint.adb:
38579         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
38580         Minor reformatting.
38581
38582         * vms_conv.ads: Minor reformating
38583         Remove GNAT STANDARD and GNAT PSTA
38584
38585         * vms_conv.adb:
38586         Allow GNAT MAKE to have several files on the command line.
38587         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
38588         Sdefault.Object_Dir_Default_Name.
38589         Minor Reformating
38590         Remove data for GNAT STANDARD
38591
38592         * vms_data.ads:
38593         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
38594         Remove data for GNAT STANDARD
38595         Remove options and documentation for -gnatwb/-gnatwB: these warning
38596         options no longer exist.
38597
38598 2003-11-13  Ed Falis  <falis@gnat.com>
38599
38600         * 5zthrini.adb: (Init_RTS): Made visible
38601
38602         * 5zthrini.adb:
38603         (Register): Removed unnecessary call to taskVarGet that checked whether
38604          an ATSD was already set as a task var for the argument thread.
38605
38606         * s-thread.adb:
38607         Updated comment to reflect that this is a VxWorks version
38608         Added context clause for System.Threads.Initialization
38609         Added call to System.Threads.Initialization.Init_RTS
38610
38611 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
38612
38613         * 5zthrini.adb:
38614         (Init_RTS): New procedure, for the initialization of the run-time lib.
38615
38616         * s-thread.adb:
38617         Remove dependancy on System.Init, so that this file can be used in the
38618         AE653 sequential run-time lib.
38619
38620 2003-11-13  Robert Dewar  <dewar@gnat.com>
38621
38622         * bindgen.adb: Minor reformatting
38623
38624 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
38625
38626         * checks.adb:
38627         (Apply_Discriminant_Check): Do no apply check if target type is derived
38628         from source type with no applicable constraint.
38629
38630         * lib-writ.adb:
38631         (Ensure_System_Dependency): Do not apply the style checks that may have
38632         been specified for the main unit.
38633
38634         * sem_ch8.adb:
38635         (Find_Selected_Component): Further improvement in error message, with
38636         RM reference.
38637
38638         * sem_res.adb:
38639         (Resolve): Handle properly the case of an illegal overloaded protected
38640         procedure.
38641
38642 2003-11-13  Javier Miranda  <miranda@gnat.com>
38643
38644         * exp_aggr.adb:
38645         (Has_Default_Init_Comps): New function to check the presence of
38646         default initialization in an aggregate.
38647         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
38648         extension aggregate of a limited record. In addition, a new formal
38649         was added to do not initialize the record controller (if any) during
38650         this recursive expansion of ancestors.
38651         (Init_Controller): Add support for limited record components.
38652         (Expand_Record_Aggregate): In case of default initialized components
38653         convert the aggregate into a set of assignments.
38654
38655         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
38656         describing the new syntax.
38657         Nothing else needed to be done because this subprogram delegates part of
38658         its work to P_Precord_Or_Array_Component_Association.
38659         (P_Record_Or_Array_Component_Association): Give support to the new
38660         syntax for default initialization of components.
38661
38662         * sem_aggr.adb:
38663         (Resolve_Aggregate): Relax the strictness of the frontend in case of
38664         limited aggregates.
38665         (Resolve_Record_Aggregate): Give support to default initialized
38666         components.
38667         (Get_Value): In case of default initialized components, duplicate
38668         the corresponding default expression (from the record type
38669         declaration). In case of default initialization in the *others*
38670         choice, do not check that all components have the same type.
38671         (Resolve_Extension_Aggregate): Give support to limited extension
38672         aggregates.
38673
38674         * sem_ch3.adb:
38675         (Check_Initialization): Relax the strictness of the front-end in case
38676         of aggregate and extension aggregates. This test is now done in
38677         Get_Value in a per-component manner.
38678
38679         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
38680         expression corresponds to a limited aggregate. This test is now done
38681         in Get_Value.
38682
38683         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
38684         Box_Present flag.
38685
38686         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
38687         present in an N_Component_Association node
38688
38689 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
38690
38691         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
38692         type-conformant entry only if they are homographs.
38693
38694 2003-11-13  GNAT Script  <nobody@gnat.com>
38695
38696         * Make-lang.in: Makefile automatically updated
38697
38698 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
38699
38700         * adadecode.c: Use <> form of include for ctype.h.
38701         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
38702
38703 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
38704
38705         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
38706         Works around PR middle-end/6552.
38707
38708 2003-11-10  Ed Falis  <falis@gnat.com>
38709
38710         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
38711
38712         * 5zinit.adb: (Install_Handler): Moved back to spec
38713         (Install_Signal_Handlers): Deleted
38714
38715         * 5zthrini.adb: Added context clause for System.Storage_Elements
38716         (Register): Only handles creation of taskVar; initialization moved to
38717         Thread_Body_Enter.
38718         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
38719         Added declaration of environment task secondary stack and
38720         initialization.
38721
38722         * s-thread.adb: Implement bodies for thread body processing
38723
38724         * s-thread.ads:
38725         Added comment identifying supported targets for pragma Thread_Body.
38726
38727 2003-11-10  Pascal Obry  <obry@gnat.com>
38728
38729         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
38730         GNAT_MAX_PATH_LEN.
38731
38732         * s-fileio.adb:
38733         (Open): Properly check for string length before copying into the buffer.
38734         Raises Name_Error if buffer is too small. Note that this was a potential
38735         buffer overflow.
38736
38737 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
38738
38739         * bindgen.adb, comperr.adb: Code clean ups.
38740         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
38741
38742 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
38743
38744         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
38745
38746 2003-11-10  Vincent Celier  <celier@gnat.com>
38747
38748         * gprcmd.adb:
38749         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
38750         installation.
38751
38752         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
38753
38754         * prj.adb: (Project_Empty): Add new boolean component Virtual
38755
38756         * prj.ads: (Virtual_Prefix): New constant string
38757         (Project_Data): New boolean component Virtual
38758
38759         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
38760         a library project is extended by a virtual extending project.
38761
38762         * prj-part.adb:
38763         Modifications throughout to implement extending-all project, including:
38764         (Virtual_Hash, Processed_Hash): New hash tables
38765         (Create_Virtual_Extending_Project): New procedure
38766         (Look_For_Virtual_Projects_For): New procedure
38767
38768         * prj-proc.adb:
38769         (Process): After checking the projects, if main project is an
38770         extending-all project, set the object directory of all virtual extending
38771         project to the object directory of the main project.
38772         Adjust error message when a virtual extending project has the same
38773         object directory as an project being extended.
38774         (Recursive_Process): If name starts with the virtual prefix, set Virtual
38775         to True in the project data.
38776
38777         * prj-tree.adb:
38778         (Default_Project_Node): Add new boolean component Extending_All
38779         (Is_Extending_All): New function
38780         (Set_Is_Extending_All): New procedure
38781
38782         * prj-tree.ads: (Is_Extending_All): New function
38783         (Set_Is_Extending_All): New procedure
38784         (Project_Node_Record): New boolean component Extending_All
38785
38786         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
38787
38788         * vms_data.ads:
38789         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
38790
38791         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
38792         "gprcmd prefix" to define it.
38793
38794 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
38795
38796         * einfo.ads: Fix a typo and remove an extraneous word in comments.
38797
38798         * lib-load.adb:
38799         (Create_Dummy_Package_Unit): Set the scope of the entity for the
38800         created dummy package to Standard_Standard, not to itself, to
38801         defend other parts of the front-end against encoutering a cycle in
38802         the scope chain.
38803
38804         * sem_ch10.adb:
38805         (Analyze_With_Clause): When setting the entities for the successive
38806         N_Expanded_Names that constitute the name of a child unit, do not
38807         attempt to go further than Standard_Standard in the chain of scopes.
38808         This case arises from the placeholder units created by
38809         Create_Dummy_Package_Unit in the case of a with_clause for a
38810         nonexistent child unit.
38811
38812 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
38813
38814         * exp_ch6.adb:
38815         (Expand_Thread_Body): Place subprogram on scope stack, so that new
38816         declarations are given the proper scope.
38817
38818         * sem_ch13.adb:
38819         (Check_Expr_Constants): Reject an expression that contains a constant
38820         created during expansion, and that appears after the object to which
38821         the address clause applies.
38822
38823         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
38824         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
38825         that uses 'Range of a function call with controlled components, so
38826         that the function result can be finalized before starting the loop.
38827
38828         * sem_ch8.adb:
38829         (Find_Selected_Component): Improve error message when prefix is
38830         an implicit dereference of an incomplete type.
38831
38832 2003-11-10  Robert Dewar  <dewar@gnat.com>
38833
38834         * opt.ads: New Print_Standard flag for -gnatS switch
38835
38836         * sem_ch13.adb: Remove some additional checks for unaligned arrays
38837
38838         * cstand.adb (Create_Standard): Print out package standard if -gnatS
38839         switch set
38840
38841         * debug.adb: Update doc for -gnatds to discuss relationship with new
38842         -gnatS flag
38843
38844         * sinfo.adb: Add new field Entity_Or_Associated_Node
38845
38846         * sinfo.ads: Add new field Entity_Or_Associated_Node
38847         Update documentation for Associated_Node and Entity fields to clarify
38848         relationship and usage.
38849
38850         * sprint.adb:
38851         (Write_Id): Properly process Associated_Node field in generic template
38852
38853         * switch-c.adb:
38854         Recognize new -gnatS switch for printing package Standard
38855         This replaces gnatpsta
38856
38857         * usage.adb:
38858         Add line for  new -gnatS switch for printing package Standard
38859         This replaces gnatpsta
38860
38861 2003-11-10  Andreas Jaeger  <aj@suse.de>
38862
38863         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
38864         integer.
38865
38866 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
38867
38868         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
38869         by gnat1.
38870
38871 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
38872
38873         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
38874         no longer needed.
38875
38876         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
38877
38878         * sysdep.c: Add handling of cygwin.
38879
38880 2003-11-10  GNAT Script  <nobody@gnat.com>
38881
38882         * Make-lang.in: Makefile automatically updated
38883
38884 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
38885
38886         PR 12950
38887         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
38888         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
38889         Replace GNAT_ROOT by GCC_ROOT.
38890
38891         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
38892
38893 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
38894
38895         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
38896         and update for changed meaning of GET_MODE_BITSIZE.
38897
38898 2003-11-04  Doug Rupp  <rupp@gnat.com>
38899
38900         * sysdep.c: Problem discovered during IA64 VMS port.
38901         [VMS] #include <unixio.h> to get proper prototypes.
38902
38903         * adaint.c:
38904         Issues discovered/problems fixed during IA64 VMS port.
38905         [VMS] #define _POSIX_EXIT for proper semantics.
38906         [VMS] #include <unixio.h> for proper prototypes.
38907         [VMS] (fork): #define IA64 version.
38908         (__gnat_os_exit): Remove unnecessary VMS specific code.
38909
38910 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
38911
38912         Part of PR ada/12806
38913         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
38914         tree, not integer.
38915
38916         * decl.c:
38917         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
38918         not integer.
38919
38920         * targtyps.c, decl.c, misc.c,
38921         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
38922         routines to work around change in FP sizing semantics in GCC.
38923
38924         * utils.c:
38925         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
38926
38927         * gigi.h: (enumerate_modes): New function.
38928
38929         * Make-lang.in: (ada/misc.o): Add real.h.
38930
38931         * misc.c: (enumerate_modes): New function.
38932
38933 2003-11-04  Robert Dewar  <dewar@gnat.com>
38934
38935         * 3vtrasym.adb: Minor reformatting
38936         Use terminology encoded/decoded name, rather than C++ specific notion
38937         of mangling (this is the terminology used throughout GNAT).
38938
38939         * einfo.h: Regenerated
38940
38941         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
38942
38943         * exp_ch6.adb:
38944         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
38945
38946         * par-prag.adb: Add dummy entry for Thread_Body pragma
38947
38948         * rtsfind.ads:
38949         Add entries for System.Threads entities for thread body processing
38950
38951         * sem_attr.adb:
38952         (Analyze_Pragma, Access attributes): Check these are not applied to a
38953         thread body, since this is not permitted
38954
38955         * sem_prag.adb: Add processing for Thread_Body pragma.
38956         Minor comment fix.
38957
38958         * sem_res.adb:
38959         (Resolve_Call): Check for incorrect attempt to call a thread body
38960          procedure with a direct call.
38961
38962         * snames.ads, snames.adb: Add entry for Thread_Body pragma
38963         Add names associated with thread body expansion
38964
38965         * snames.h: Add entry for Thread_Body pragma
38966
38967         * s-thread.adb: Add entries for thread body processing
38968         These are dummy bodies so far
38969
38970         * s-thread.ads: Add documentation on thread body handling.
38971         Add entries for thread body processing.
38972
38973 2003-11-04  Javier Miranda  <miranda@gnat.com>
38974
38975         * sem_ch10.adb:
38976         (Build_Limited_Views): Return after posting an error in case of limited
38977         with_clause on subprograms, generics, instances or generic renamings
38978         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
38979         on subprograms, generics, instances or generic renamings
38980
38981 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
38982
38983         * raise.c (setup_to_install): Correct mistake in last revision; two
38984         arguments out of order.
38985
38986         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
38987         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
38988         notice, missed in previous change.
38989         Remove trailing blanks and other style errors introduced in previous
38990         change.
38991
38992 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
38993
38994         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
38995         rid of the wrapper for a LJM type, ensuring we don't do that if the
38996         field is addressable.  This avoids potential low level type view
38997         mismatches later on, for instance in a by-reference argument passing
38998         process.
38999
39000 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39001
39002         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
39003         aligned at byte boundary.
39004
39005 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
39006
39007         * decl.c (components_to_record): Do not delete the empty variants from
39008         the end of the union type.
39009
39010 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
39011
39012         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
39013         operation for a derived type, an explicit declaration may use a local
39014         subtype of Boolean.
39015
39016 2003-11-04  Vincent Celier  <celier@gnat.com>
39017
39018         * make.adb (Gnatmake): Allow main sources on the command line with a
39019         library project when it is only for compilation (no binding or
39020         linking).
39021
39022 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
39023
39024         * Makefile.in: Remove many duplicate variables.
39025
39026 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
39027
39028         * Make-lang.in (dvi): Move targets to $(docobjdir).
39029         (gnat_ug_vms.dvi): Simplify rule and adjust target.
39030         (gnat_ug_wnt.dvi): Likewise.
39031         (gnat_ug_unx.dvi): Likewise.
39032         (gnat_ug_vxw.dvi): Likewise.
39033         (gnat_rm.dvi): Likewise.
39034         (gnat-style.dvi): Likewise.
39035
39036 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
39037
39038         * gigi.h: Missed commit from update for C90.
39039
39040 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
39041
39042         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
39043
39044 2003-10-31  Andreas Schwab  <schwab@suse.de>
39045
39046         * raise.c (get_action_description_for): Fix typo in last change.
39047
39048 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
39049
39050         PR ada/12761
39051         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
39052         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
39053
39054 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
39055
39056         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
39057         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
39058         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
39059         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
39060         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
39061
39062 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
39063
39064         * 3vtrasym.adb:
39065         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
39066         numbers when symbol name is too long.
39067
39068 2003-10-30  Ed Falis  <falis@gnat.com>
39069
39070         * g-signal.ads, g-signal.adb: New files
39071
39072         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
39073
39074         * Makefile.rtl: Introduce GNAT.Signals
39075
39076 2003-10-30  Robert Dewar  <dewar@gnat.com>
39077
39078         * freeze.adb: Minor reformatting
39079
39080         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
39081
39082         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
39083         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
39084         New handling of Id_Check parameter to improve recognition of keywords
39085         used as identifiers.
39086         Update copyright notice to include 2003
39087
39088 2003-10-29  Robert Dewar  <dewar@gnat.com>
39089
39090         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
39091         sem_ch10.adb: Minor reformatting
39092
39093         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
39094         (Expand_Assign_Record): Test right hand side for bit unaligned as well
39095
39096 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
39097
39098         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
39099         Support for TBK$SYMBOLIZE-based symbolic traceback.
39100
39101 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
39102
39103         * exp_disp.adb:
39104         Revert previous change, that did not work well when pragma No_Run_Time
39105         was used in conjunction with a run-time other than ZFP.
39106
39107 2003-10-29  Vincent Celier  <celier@gnat.com>
39108
39109         * make.adb:
39110         (Gnatmake): When there are no Ada mains in attribute Main, disable the
39111          bind and link steps only is switch -z is not used.
39112
39113 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
39114
39115         * Makefile.generic: Remove duplicated setting of CC.
39116
39117         * Makefile.prolog: Set CC to gcc by default, to override make's
39118         default (cc).
39119
39120         * einfo.h: Regenerated.
39121
39122 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
39123
39124         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
39125         current body, after compiling subunit.
39126
39127         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
39128         when in deleted code, because gigi needs properly ordered freeze
39129         actions to annotate types.
39130
39131         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
39132         prevent the premature freezing of record type that contains
39133         subcomponents with a private type that does not yet have a completion.
39134
39135 2003-10-29  Javier Miranda  <miranda@gnat.com>
39136
39137         * sem_ch12.adb:
39138         (Analyze_Package_Instantiation): Check that instances can not be used in
39139         limited with_clauses.
39140
39141         * sem_ch8.adb:
39142         (Analyze_Package_Renaming): Check that limited withed packages cannot
39143         be renamed. Improve text on error messages related to limited
39144         with_clauses.
39145
39146         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
39147
39148         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
39149         Update copyright notice.
39150
39151         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
39152         (Install_Limited_Context_Clauses): New subprogram that isolates all the
39153         checks required for limited context_clauses and installs the limited
39154         view.
39155         (Install_Limited_Withed_Unit): Complete its documentation.
39156         (Analyze_Context): Check that limited with_clauses are only allowed in
39157         package specs.
39158         (Install_Context): Call Install_Limited_Context_Clauses after the
39159         parents have been installed.
39160         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
39161         package as 'From_With_Type'; this mark indicates that the limited view
39162         is installed. Used to check bad usages of limited with_clauses.
39163         (Build_Limited_Views): Do not add shadow entities to the scope's list
39164         of entities. Do not add real entities to the Non_Limited_Views chain.
39165         Improve error notification.
39166         (Remove_Context_Clauses): Remove context clauses in two phases:
39167         limited views first and regular views later (to maintain the
39168         stack model).
39169         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
39170         its visible entities.
39171
39172 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
39173
39174         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
39175         with any type that Is_Fixed_Point_Type.
39176
39177         * sinfo.ads: Fix documentation for Associated_Node attribute.
39178
39179 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
39180
39181         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
39182         both '-gnatc' and '-gnatt' are specified.
39183
39184         * atree.adb (Initialize): Add initialization for Node_Count (set to
39185         zero).
39186
39187 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39188
39189         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
39190         do not consider as Pure.
39191
39192         Part of implementation of function-at-a-time:
39193
39194         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
39195         (tree_transform): Add new argument to build_component_ref.
39196         (tree_transform, case N_Assignment_Statement): Make and return an
39197         EXPR_STMT.
39198         (tree_transform): If result IS_STMT, set flags and return it.
39199         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
39200
39201         * utils2.c (build_simple_component_ref, build_component_ref): Add new
39202         arg, NO_FOLD_P.
39203         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
39204         (build_allocator): Likewise.
39205
39206         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
39207         Add new arg to build_component_ref.
39208         (maybe_unconstrained_array, unchecked_convert): Likewise.
39209
39210         * ada-tree.def (EXPR_STMT): New code.
39211
39212         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
39213
39214         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
39215         build_component_ref calls.
39216
39217         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
39218
39219         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
39220         (build_component_ref): Add new argument, NO_FOLD_P.
39221
39222 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
39223
39224         * Makefile.generic: Add missing substitution on object_deps handling.
39225
39226         PR ada/5909
39227         * Make-lang.in (check-ada): Enable ACATS test suite.
39228
39229 2003-10-27  Robert Dewar  <dewar@gnat.com>
39230
39231         * exp_ch3.adb:
39232         (Freeze_Array_Type): We do not need an initialization routine for types
39233         derived from String or Wide_String. They should be treated the same
39234         as String and Wide_String themselves. This caused problems with the
39235         use of Initialize_Scalars.
39236
39237         * exp_ch5.adb:
39238         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
39239         composites. This allows use of component clauses that are not byte
39240         aligned.
39241
39242         * sem_prag.adb:
39243         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
39244         is an attempt to pack an array of atomic objects.
39245
39246         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
39247
39248 2003-10-27  Pascal Obry  <obry@gnat.com>
39249
39250         * g-dirope.adb:
39251         (Basename): Check for drive letters in a pathname only on DOS based OS.
39252
39253 2003-10-27  Vincent Celier  <celier@gnat.com>
39254
39255         * make.adb:
39256         (Gnatmake): When unable to change dir to the object dir, display the
39257         content of the parent dir of the obj dir, to try to understand why this
39258         happens.
39259
39260 2003-10-27  GNAT Script  <nobody@gnat.com>
39261
39262         * Make-lang.in: Makefile automatically updated
39263
39264 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
39265
39266         * sem_ch12.adb:
39267         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
39268         should not be done in Save/Restore_Scope_Stack, because it is performed
39269         locally.
39270
39271         * sem_ch8.adb:
39272         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
39273         whether use clauses should be removed/restored.
39274
39275         * sem_ch8.ads:
39276         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
39277         whether use clauses should be removed/restored.
39278
39279 2003-10-26  Andreas Jaeger  <aj@suse.de>
39280
39281         * Makefile.in: Remove duplicated lines.
39282
39283 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
39284
39285         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
39286         minimize the differences with ACT tree.
39287
39288         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
39289         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
39290         Gnatvsn.Gnat_Static_Version_String to reduce differences between
39291         ACT and FSF trees.
39292
39293 2003-10-24  Pascal Obry  <obry@gnat.com>
39294
39295         PR ada/12014
39296         * adadecode.c (ostrcpy): New function.
39297         (__gnat_decode): Use ostrcpy of strcpy.
39298         (has_prefix): Set first parameter a const.
39299         (has_suffix): Set first parameter a const.
39300         Update copyright notice. Fix source name in header.
39301         Removes a trailing space.
39302
39303 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
39304
39305         * exp_disp.adb:
39306         Remove the test against being in No_Run_Time_Mode before generating a
39307         call to Register_Tag. It is redundant with the test against the
39308         availability of the function Register_Tag.
39309
39310 2003-10-24  Vincent Celier  <celier@gnat.com>
39311
39312         * g-catiio.adb: (Month_Name): Correct spelling of February
39313
39314         * make.adb: (Mains): New package
39315         (Initialize): Call Mains.Delete
39316         (Gnatmake): Check that each main on the command line is a source of a
39317         project file and, if there are several mains, each of them is a source
39318         of the same project file.
39319         (Gnatmake): When a foreign language is specified in attribute Languages,
39320         no main is specified on the command line and attribute Mains is not
39321         empty, only build the Ada main. If there is no Ada main, just compile
39322         the Ada sources and their closure.
39323         (Gnatmake): If a main is specified on the command line with directory
39324         information, check that the source exists and, if it does, that the path
39325         is the actual path of a source of a project.
39326
39327         * prj-env.adb:
39328         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
39329         Full_Path is True, return the full path instead of the simple file name.
39330         (Project_Of): New function
39331
39332         * prj-env.ads:
39333         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
39334         defaulted to False.
39335         (Project_Of): New function
39336
39337 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
39338
39339         * Makefile.generic:
39340         Ensure objects of main project are always checked and rebuilt if needed.
39341         Set CC to gcc by default.
39342         Prepare new handling of link by creating a global archive (not activated
39343         yet).
39344
39345         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
39346         stringt.h: Update copyright notice. Remove trailing blanks.
39347         Fix source name in header.
39348
39349 2003-10-24  Robert Dewar  <dewar@gnat.com>
39350
39351         * sem_ch12.adb: Minor reformatting
39352
39353         * sem_ch3.adb:
39354         Minor reformatting (including new function return style throughout)
39355
39356         * sem_ch3.ads:
39357         Minor reformatting (including new function return style throughout)
39358
39359 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
39360
39361         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
39362         stringt.h: Update copyright notice. Remove trailing blanks.
39363         Fix source name in header.
39364
39365 2003-10-24  GNAT Script  <nobody@gnat.com>
39366
39367         * Make-lang.in: Makefile automatically updated
39368
39369 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
39370
39371         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
39372         stringt.h: Convert to ISO C90 declarations and definitions.
39373
39374 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
39375
39376         PR ada/11978
39377         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
39378         External_Tag attribute definition clauses.
39379
39380 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
39381
39382         PR ada/7613
39383         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
39384         child unit, generate a fully qualified name to avoid spurious errors
39385         when the context contains renamings of different child units with
39386         the same simple name.
39387
39388         * exp_dbug.ads: Add documentation on name qualification for renamings
39389         of child units.
39390
39391 2003-10-23  Robert Dewar  <dewar@gnat.com>
39392
39393         * g-regpat.ads, g-regpat.adb: Minor reformatting
39394
39395 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
39396
39397         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
39398
39399 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39400
39401         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
39402         Machine call.
39403
39404         * urealp.h: (Machine): Update to proper definition.
39405
39406 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
39407
39408         * init.c, adaint.c: Minor reformatting.
39409
39410 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
39411
39412         * adaint.c (w32_epoch_offset): Define static const at file level.
39413         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
39414         rather than t_create, t_access in call to GetFileTime. Use union
39415         to convert between FILETIME and  unsigned long long.
39416         (__gnat_file_time_name): Test for invalid file handle.
39417         (__gnat_set_filetime_name): Support win32 targets using
39418         w32api SetFileTime.
39419
39420 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
39421
39422         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
39423
39424         * ctrl_c.c (__gnat_int_handler): Remove declaration.
39425
39426         * decl.c (creat_concat_name):  Const-ify prefix.
39427
39428         * adaint.c: Include ctype.h if __MINGW32__.
39429         (__gnat_readlink): Mark arguments as possibly unused.
39430         (__gnat_symlink): Likewise.
39431         (__gnat_is_symbolic_link): Likewise.
39432         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
39433         declaration
39434         (__gnat_file_time_name): Don't declare struct stat statbuf when
39435         not needed.
39436         (__gnat_is_absolute_path): Add parenthesis around condition of
39437         'if' statement to avoid warning.
39438         (__gnat_plist_init): Specify void as parameter.
39439         (plist_enter): Likewise.
39440         (plist_leave): Likewise.
39441         (remove_handle): Make static. Initialize prev.
39442
39443 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
39444
39445         PR ada/10110
39446         * Makefile.in: Disable build of gnatpsta.
39447         * cstreams.c (__gnat_full_name): Minor improvements and clean up
39448         of previous change.
39449
39450 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
39451
39452         * tracebak.c (MAX): Avoid redefinition warning.
39453
39454         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
39455         Change msg to const char *.
39456         (__gnat_install_handler): Remove ss, unused.
39457         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
39458         to const char *.
39459         * cstreams.c (__gnat_full_name): Declare p only when used.
39460         (__gnat_full_name) [sgi] Return buffer.
39461
39462 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
39463
39464         * mingw32.h: New file.
39465         * gnat_wrapper.adb: New file.
39466
39467 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
39468
39469         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
39470         string match a pre compiled regular expression (the corresponding
39471         version of the function working on a raw regular expression)
39472         Fix typos in various comments
39473         Update copyright notice in spec
39474
39475 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
39476
39477         * exp_ch3.adb:
39478         (Component_Needs_Simple_Initialization): Return False when the type is a
39479         packed bit array. Revise spec comments to document this case.
39480
39481         * exp_prag.adb:
39482         (Expand_Pragma_Import): Set any expression on the imported object to
39483         empty to avoid initializing imported objects (in particular this
39484         covers the case of zero-initialization of bit arrays).
39485         Update copyright notice.
39486
39487 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
39488
39489         * sem_ch12.adb:
39490         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
39491         a subunit is missing.
39492         (Instantiate_Subprogram_Body): If body of function is missing, set type
39493         of return expression explicitly in dummy body, to prevent cascaded
39494         errors when a subunit is missing.
39495         Fixes PR 5677.
39496
39497         * sem_ch3.adb:
39498         (Access_Subprogram_Declaration): Verify that return type is valid.
39499         Fixes PR 8693.
39500
39501         * sem_elab.adb:
39502         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
39503         generic.
39504         Fixes PR 12318.
39505
39506         * sem_util.adb:
39507         (Corresponding_Discriminant): If the scope of the discriminant is a
39508         private type without discriminant, use its full view.
39509         Fixes PR 8247.
39510
39511 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
39512
39513         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
39514         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
39515         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
39516         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
39517         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
39518         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
39519         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
39520         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
39521         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
39522         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
39523         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
39524         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
39525         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
39526         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
39527         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
39528         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
39529         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
39530         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
39531         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
39532         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
39533         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
39534         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
39535         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
39536         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
39537         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
39538         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
39539         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
39540         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
39541         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
39542         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
39543         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
39544         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
39545         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
39546         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
39547         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
39548         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
39549         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
39550         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
39551         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
39552         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
39553         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
39554         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
39555         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
39556         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
39557         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
39558         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
39559         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
39560         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
39561         vms_conv.ads, vms_conv.adb, vms_data.ads,
39562         vxaddr2line.adb: Files added. Merge with ACT tree.
39563
39564         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
39565         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
39566         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
39567         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
39568         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
39569         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
39570         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
39571         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
39572         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
39573         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
39574
39575         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
39576         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
39577         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
39578         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
39579         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
39580         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
39581         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
39582         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
39583         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
39584         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
39585         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
39586         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
39587         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
39588         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
39589         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
39590         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
39591         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
39592         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
39593         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
39594         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
39595         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
39596         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
39597         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
39598         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
39599         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
39600         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
39601         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
39602         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
39603         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
39604         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
39605         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
39606         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
39607         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
39608         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
39609         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
39610         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
39611         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
39612         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
39613         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
39614         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
39615         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
39616         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
39617         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
39618         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
39619         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
39620         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
39621         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
39622         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
39623         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
39624         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
39625         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
39626         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
39627         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
39628         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
39629         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
39630         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
39631         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
39632         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
39633         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
39634         checks.adb, checks.ads, cio.c, comperr.adb,
39635         comperr.ads, csets.adb, cstand.adb, cstreams.c,
39636         debug_a.adb, debug_a.ads, debug.adb, decl.c,
39637         einfo.adb, einfo.ads, errout.adb, errout.ads,
39638         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
39639         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
39640         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
39641         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
39642         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
39643         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
39644         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
39645         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
39646         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
39647         fe.h, fmap.adb, fmap.ads, fname.adb,
39648         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
39649         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
39650         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
39651         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
39652         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
39653         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
39654         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
39655         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
39656         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
39657         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
39658         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
39659         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
39660         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
39661         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
39662         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
39663         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
39664         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
39665         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
39666         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
39667         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
39668         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
39669         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
39670         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
39671         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
39672         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
39673         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
39674         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
39675         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
39676         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
39677         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
39678         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
39679         layout.adb, lib.adb, lib.ads, lib-list.adb,
39680         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
39681         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
39682         link.c, live.adb, make.adb, make.ads,
39683         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
39684         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
39685         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
39686         misc.c, mkdir.c, mlib.adb, mlib.ads,
39687         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
39688         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
39689         namet.adb, namet.ads, namet.h, nlists.ads,
39690         nlists.h, nmake.adt, opt.adb, opt.ads,
39691         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
39692         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
39693         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
39694         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
39695         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
39696         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
39697         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
39698         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
39699         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
39700         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
39701         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
39702         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
39703         prj-util.adb, prj-util.ads, raise.c, raise.h,
39704         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
39705         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
39706         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
39707         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
39708         scans.ads, scn.adb, scn.ads, s-crc32.adb,
39709         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
39710         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
39711         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
39712         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
39713         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
39714         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
39715         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
39716         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
39717         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
39718         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
39719         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
39720         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
39721         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
39722         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
39723         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
39724         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
39725         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
39726         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
39727         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
39728         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
39729         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
39730         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
39731         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
39732         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
39733         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
39734         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
39735         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
39736         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
39737         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
39738         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
39739         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
39740         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
39741         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
39742         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
39743         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
39744         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
39745         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
39746         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
39747         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
39748         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
39749         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
39750         stringt.adb, stringt.ads, stringt.h, style.ads,
39751         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
39752         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
39753         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
39754         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
39755         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
39756         table.adb, table.ads, targparm.adb, targparm.ads,
39757         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
39758         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
39759         ttypes.ads, types.ads, types.h, uintp.adb,
39760         uintp.ads, uintp.h, uname.adb, urealp.adb,
39761         urealp.ads, urealp.h, usage.adb, utils2.c,
39762         utils.c, validsw.adb, validsw.ads, widechar.adb,
39763         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
39764         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
39765         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
39766         gnatvsn.ads: Merge with ACT tree.
39767
39768         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
39769
39770 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
39771
39772         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
39773         (gnat_ug_vmx.info): Likewise.
39774         (gnat_ug_vxw.info): Likewise.
39775         (gnat_ug_wnt.info): Likewise.
39776         (gnat_rm.info): Likewise.
39777         (gnat-style.info): Likewise.
39778
39779         * Make-lang.in (ada.install-info): Remove target.
39780         (info): New target.
39781         (install-info): Likewise.
39782         (gnat_ug_unx.info): Simplify rule.
39783         (gnat_ug_vmx.info): Likewise.
39784         (gnat_ug_vxw.info): Likewise.
39785         (gnat_ug_wnt.info): Likewise.
39786         (gnat_rm.info): Likewise.
39787         (gnat-style.info): Likewise.
39788
39789 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
39790
39791         * Make-lang.in: Replace uses of $(target_alias) with
39792         $(target_noncanonical).
39793         * ada/Makefile.in: Remove unused mention of $(target_alias).
39794
39795 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
39796
39797         * Make-lang.in (ada.info): Replace with ...
39798         (info): ... this.
39799         (ada.dvi): Replace with ...
39800         (dvi): ... this.
39801
39802 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
39803
39804         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
39805         initialize dconstp5 and dconstmp5.
39806
39807 2003-09-28  Richard Henderson  <rth@redhat.com>
39808
39809         * trans.c (tree_transform): Update call to expand_asm_operands.
39810
39811 2003-09-21  Richard Henderson  <rth@redhat.com>
39812
39813         * trans.c, utils.c: Revert.
39814
39815 2003-09-21  Richard Henderson  <rth@redhat.com>
39816
39817         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
39818         change to const.
39819
39820 2003-09-04  Michael Matz  <matz@suse.de>
39821
39822         * misc.c: Include "target.h".
39823         * Make-lang.in (misc.o): Add dependency on target.h.
39824
39825 2003-09-03  DJ Delorie  <dj@redhat.com>
39826
39827         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
39828         hook.
39829
39830 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
39831
39832         * Makefile.in: Update substitutions to match changes to
39833         configure.  Use include directives instead of @-insertions
39834         to read in host and target fragments.  Add a rule to
39835         regenerate ada/Makefile.
39836
39837 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
39838
39839         * lang-options.h: Remove.
39840         * lang.opt: Add help text.
39841
39842 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
39843
39844         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
39845         calls.
39846
39847 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
39848
39849         * misc.c (gnat_handle_option): Don't handle filenames.
39850
39851 2003-07-04  H.J. Lu  <hongjiu.lu@intel.com>
39852
39853         * Make-lang.in: Replace PWD with PWD_COMMAND.
39854         * Makefile.adalib: Likewise.
39855         * Makefile.in: Likewise.
39856
39857 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
39858
39859         * misc.c (gnat_argv): Revert last change.
39860         (gnat_handle_option, gnat_init_options): Copy arguments.
39861
39862 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
39863
39864         * misc.c (gnat_argv): Make const.
39865
39866 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
39867
39868         * misc.c (save_argc, save_argv): Keep non-static!
39869
39870 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
39871
39872         * misc.c (save_argc, save_argv): Make static.
39873         (gnat_init_options): New prototype.
39874         (gnat_init_options): Update.
39875
39876 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
39877
39878         * gnat_ug.texi: Remove unlikely characters from @vars.
39879         * gnat_ug_vms.texi: Regenerate.
39880
39881 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
39882
39883         * misc.c (record_code_position): Adjust emit_note call.
39884
39885 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
39886
39887         * misc.c (gnat_handle_option): Don't check for missing arguments.
39888
39889 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
39890
39891         * utils.c (end_subprog_body): Adjust expand_function_end call.
39892
39893 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
39894
39895         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
39896         Bind_Main_Program.
39897
39898 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
39899
39900         * lang.opt: Declare Ada.
39901         * misc.c (gnat_init_options): Update.
39902
39903 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
39904
39905         * utils.c (begin_subprog_body): Adjust init_function_start call.
39906
39907 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
39908
39909         * Make-lang.in: Update to use options.c and options.h.
39910         * misc.c: Include options.h not aoptions.h.
39911         (gnat_handle_option): Abort on unrecognized switch.
39912         (gnat_init_options): Request Ada switches.
39913
39914 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
39915
39916         * lang.opt: Add -Wall.
39917         * misc.c (gnat_handle_option): Handle it.
39918
39919 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
39920
39921         * misc.c (gnat_handle_option): Fix warnings.
39922
39923 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
39924
39925         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
39926
39927 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
39928
39929         * Make-lang.in: Update to handle command-line options.
39930         * lang.opt: New file.
39931         * misc.c: Include aoptions.h.
39932         (cl_options_count, cl_options): Remove.
39933         (gnat_handle_option): New.
39934         (gnat_decode_option): Remove.
39935         (LANG_HOOKS_DECODE_OPTION): Remove.
39936         (LANG_HOOKS_HANDLE_OPTION): Override.
39937
39938 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
39939
39940         * init.c, misc.c, trans.c, utils.c: Remove dead code.
39941
39942 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
39943
39944         * Makefile.in: Replace "host_canonical" with "host" for autoconf
39945         substitution.
39946
39947 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
39948
39949         * Make-lang.in: Update.
39950         * misc.c: Include opts.h. Define cl_options_count and cl_options.
39951
39952 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
39953
39954         * misc.c (gnat_init_options): Update.
39955
39956 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
39957
39958         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
39959         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
39960         __attribute__ ((__unused__)).
39961
39962 2003-06-05  Jan Hubicka  <jh@suse.cz>
39963
39964         * Make-lang.in:  Add support for stageprofile and stagefeedback
39965
39966 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
39967
39968         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
39969         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
39970
39971 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
39972
39973         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
39974         Remove non-VMS directive.
39975         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
39976         alternatives.
39977         (Examples of gnatls Usage): Remove VMS alternative.
39978
39979 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
39980
39981         PR ada/9953
39982         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
39983         and turn ZCX_By_Default back to False since the underlying support
39984         is not quite there yet.
39985
39986 2003-06-01  Andreas Jaeger  <aj@suse.de>
39987
39988         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
39989         and ROUND_TYPE_SIZE_UNIT.
39990
39991 2003-05-22   Geert Bosch  <bosch@gnat.com>
39992
39993         * gnat_rm.texi : Remove reference to Ada Core Technologies.
39994
39995 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
39996
39997         * trans.c (tree_transform): Use location_t and input_location
39998         directly.
39999         (build_unit_elab): Likewise.
40000         * utils.c (create_label_decl): Likewise.
40001
40002 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
40003
40004         * trans.c (tree_transform, build_unit_elab,
40005         set_lineno): Rename lineno to input_line.
40006         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
40007         end_subprog_body): Likewise.
40008         * utils2.c (build_call_raise): Likewise.
40009
40010 2003-05-01  Laurent Guerby  <guerby@acm.org>
40011
40012         PR ada/10546
40013         * 5iosinte.ads: Increase pthread_cond_t size to match recent
40014         LinuxThread and NPTL version, merge from ACT.
40015
40016 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
40017
40018         * utils.c (convert): No need to clear TREE_CST_RTL.
40019
40020 2003-04-23   Geert Bosch  <bosch@gnat.com>
40021
40022         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
40023         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
40024         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
40025         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
40026         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
40027         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
40028         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
40029         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
40030         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
40031         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
40032         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
40033         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
40034         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
40035         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
40036         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
40037         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
40038         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
40039         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
40040         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
40041         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
40042         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
40043         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
40044         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
40045         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
40046         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
40047         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
40048         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
40049         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
40050         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
40051         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
40052         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
40053         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
40054         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
40055         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
40056         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
40057         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
40058         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
40059         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
40060         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
40061         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
40062         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
40063         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
40064         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
40065         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
40066         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
40067         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
40068         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
40069         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
40070         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
40071         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
40072         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
40073         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
40074         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
40075         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
40076         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
40077         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
40078         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
40079         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
40080         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
40081         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
40082         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
40083         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
40084         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
40085         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
40086         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
40087         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
40088         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
40089         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
40090         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
40091         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
40092         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
40093         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
40094         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
40095         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
40096         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
40097         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
40098         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
40099         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
40100         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
40101         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
40102         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
40103         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
40104         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
40105         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
40106         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
40107         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
40108         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
40109         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
40110         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
40111         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
40112         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
40113         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
40114         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
40115         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
40116         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
40117         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
40118         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
40119         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
40120         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
40121         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
40122         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
40123         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
40124         ali.adb, ali.ads, alloc.ads, argv.c,
40125         atree.adb, atree.ads, atree.h, aux-io.c,
40126         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
40127         binde.adb, binde.ads, binderr.adb, binderr.ads,
40128         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
40129         butil.adb, butil.ads, cal.c, calendar.ads,
40130         casing.adb, casing.ads, ceinfo.adb, checks.adb,
40131         checks.ads, cio.c, comperr.adb, comperr.ads,
40132         config-lang.in, csets.adb, csets.ads, csinfo.adb,
40133         cstand.adb, cstand.ads, cuintp.c, debug.adb,
40134         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
40135         dec-io.ads, dec.ads, deftarg.c, directio.ads,
40136         einfo.adb, einfo.ads, elists.adb, elists.ads,
40137         elists.h, errno.c, errout.adb, errout.ads,
40138         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
40139         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
40140         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
40141         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
40142         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
40143         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
40144         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
40145         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
40146         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
40147         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
40148         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
40149         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
40150         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
40151         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
40152         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
40153         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
40154         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
40155         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
40156         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
40157         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
40158         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
40159         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
40160         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
40161         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
40162         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
40163         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
40164         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
40165         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
40166         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
40167         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
40168         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
40169         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
40170         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
40171         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
40172         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
40173         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
40174         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
40175         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
40176         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
40177         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
40178         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
40179         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
40180         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
40181         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
40182         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
40183         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
40184         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
40185         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
40186         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
40187         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
40188         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
40189         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
40190         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
40191         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
40192         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
40193         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
40194         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
40195         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
40196         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
40197         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
40198         lib.adb, lib.ads, live.adb, live.ads,
40199         machcode.ads, make.adb, make.ads, makeusg.adb,
40200         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
40201         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
40202         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
40203         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
40204         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
40205         mlib.ads, namet.adb, namet.ads, nlists.adb,
40206         nlists.ads, opt.adb, opt.ads, osint-b.adb,
40207         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
40208         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
40209         osint.ads, output.adb, output.ads, par-ch10.adb,
40210         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
40211         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
40212         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
40213         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
40214         par-tchk.adb, par-util.adb, par.adb, par.ads,
40215         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
40216         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
40217         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
40218         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
40219         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
40220         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
40221         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
40222         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
40223         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
40224         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
40225         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
40226         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
40227         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
40228         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
40229         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
40230         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
40231         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
40232         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
40233         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
40234         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
40235         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
40236         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
40237         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
40238         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
40239         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
40240         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
40241         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
40242         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
40243         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
40244         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
40245         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
40246         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
40247         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
40248         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
40249         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
40250         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
40251         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
40252         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
40253         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
40254         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
40255         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
40256         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
40257         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
40258         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
40259         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
40260         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
40261         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
40262         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
40263         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
40264         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
40265         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
40266         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
40267         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
40268         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
40269         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
40270         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
40271         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
40272         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
40273         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
40274         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
40275         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
40276         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
40277         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
40278         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
40279         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
40280         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
40281         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
40282         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
40283         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
40284         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
40285         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
40286         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
40287         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
40288         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
40289         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
40290         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
40291         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
40292         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
40293         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
40294         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
40295         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
40296         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
40297         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
40298         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
40299         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
40300         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
40301         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
40302         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
40303         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
40304         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
40305         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
40306         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
40307         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
40308         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
40309         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
40310         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
40311         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
40312         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
40313         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
40314         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
40315         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
40316         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
40317         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
40318         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
40319         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
40320         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
40321         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
40322         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
40323         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
40324         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
40325         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
40326         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
40327         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
40328         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
40329         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
40330         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
40331         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
40332         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
40333         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
40334         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
40335         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
40336         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
40337         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
40338         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
40339         snames.ads, sprint.adb, sprint.ads, stand.adb,
40340         stand.ads, stringt.adb, stringt.ads, style.adb,
40341         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
40342         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
40343         switch-m.ads, switch.adb, switch.ads, system.ads,
40344         table.adb, table.ads, targparm.adb, targparm.ads,
40345         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
40346         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
40347         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
40348         ttypef.ads, ttypes.ads, types.adb, types.ads,
40349         uintp.adb, uintp.ads, uname.adb, uname.ads,
40350         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
40351         usage.adb, usage.ads, validsw.adb, validsw.ads,
40352         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
40353         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
40354         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
40355         formatting and other trivial changes from ACT.
40356
40357 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
40358
40359         * gigi.h, utils2.c (build_constructor):
40360         Rename gnat_build_constructor. Use build_constructor.
40361         * decl.c (gnat_to_gnu_entity)
40362         * trans.c (tree_transform, pos_to_constructor, extract_values)
40363         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
40364         (unchecked_convert)
40365         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
40366         (fill_vms_descriptor):
40367         Update to match.
40368
40369 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
40370
40371         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
40372         * misc.c (gnat_tree_size): New function.
40373         (LANG_HOOKS_TREE_SIZE): Override.
40374
40375 2003-04-03  Jason Merrill  <jason@redhat.com>
40376
40377         * misc.c (gnat_adjust_rli): #if 0.
40378
40379 2003-03-31   Geert Bosch  <bosch@gnat.com>
40380
40381         PR ada/10020
40382         * link.c : Fix misspelled "const" keyword
40383
40384 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
40385
40386         PR c++/7086
40387         * utils2.c: Adjust calls to put_var_into_stack.
40388
40389 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
40390
40391         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
40392
40393 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
40394
40395         * misc.c (gnat_init): Update for new prototype.
40396
40397 2003-03-05  Olivier Hainque  <hainque@gnat.com>
40398
40399         ada/9961
40400         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
40401         warning, and fix return type for the IN_RTS && !SJLJ case.
40402
40403 2003-03-04  Tom Tromey  <tromey@redhat.com>
40404
40405         * Make-lang.in (ada.tags): New target.
40406
40407 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
40408
40409         ada/9911
40410         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
40411         wrapper, which name remains constant whatever underlying GCC
40412         scheme.
40413
40414         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
40415         the stable interface needed for a-except.
40416
40417 2003-03-02  Andreas Jaeger  <aj@suse.de>
40418
40419         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40420         gnat_ug_wnt.texi: Regenerate.
40421
40422 2003-03-02  Laurent Guerby  <guerby@acm.org>
40423
40424         * Makefile.in (install-gnatlib): Match previous change there
40425         so it works.
40426
40427 2003-02-28  Andreas Schwab  <schwab@suse.de>
40428
40429         * Make-lang.in (install-gnatlib): Change to ada directory before
40430         running make instead of using ada/Makefile directly.
40431
40432 2003-02-18  Ben Elliston  <bje@redhat.com>
40433
40434         Part of PR ada/9406
40435         * gnat_ug.texi (Binder output file): Grammar fix.
40436
40437 2003-02-18  Ben Elliston  <bje@redhat.com>
40438
40439         PR other/7350
40440         * 5qtaprop.adb (Sleep): Fix typo in comment.
40441
40442 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
40443
40444         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
40445         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40446         gnat_ug_wnt.texi: Regenerate.
40447
40448 2003-02-03  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
40449
40450         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
40451         be created if necessary.
40452         (ada.install-common): Let $(DESTDIR)$(bindir) be created
40453         if necessary.  Remove erroneous and redundant gnatchop
40454         installation commands.  Test for gnatdll before attempting
40455         to install it.
40456         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
40457         and gnatdll from all plausible locations.
40458
40459 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
40460
40461         * utils2.c (build_unary_op): Don't check flag_volatile.
40462         * gnat_ug.texi: Remove -fvolatile from example.
40463         * gnat_ug_vxw.texi: Likewise.
40464
40465 2003-01-29  Laurent Guerby  <guerby@acm.org>
40466
40467         PR ada/8344
40468         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
40469         * Makefile.in: match previous change.
40470         * Make-lang.in: match previous change.
40471
40472 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
40473
40474         * 5rosinte.ads: Add SIGXCPU.
40475         * 5rtpopsp.adb: New file.
40476         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
40477         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
40478         specific file 5rtpopsp.adb.
40479         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
40480         is likely needed for all newlib targets.
40481         * init.c: Add RTEMS specific version of __gnat_initialize().
40482
40483 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
40484
40485         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
40486
40487 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
40488
40489         * init.c (__gnat_error_handler): Make msg const.
40490
40491         * gmem.c (convert_addresses): Move declaration ...
40492         * adaint.h: ... here.
40493         * adaint.c (convert_addresses): Adapt addrs type to match
40494         prototype.
40495
40496         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
40497
40498 2003-01-24  Andreas Schwab  <schwab@suse.de>
40499
40500         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
40501         size_t to avoid warning.
40502
40503 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
40504
40505         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
40506
40507 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
40508
40509         * gnat_rm.texi: Remove RCS version number.
40510
40511         * ada-tree.h (union lang_tree_node): Add chain_next option.
40512
40513 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
40514
40515         * Make-lang.in (ada.install-info, ada.install-common,
40516         ada.uninstall): Prepend $(DESTDIR) to the destination
40517         directory in all (un)installation commands.
40518         * Makefile.in (install-gnatlib, install-rts): Ditto.
40519
40520 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
40521
40522         * gnat_rm.texi, gnat_ug.texi: Use @copying.
40523         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40524         gnat_ug_wnt.texi: Regenerate.
40525
40526 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
40527
40528         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
40529         only.
40530         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
40531         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
40532         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
40533         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
40534         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
40535         $(srcdir)/doc/include/gcc-common.texi.
40536
40537 2002-12-15   Geert Bosch  <bosch@gnat.com>
40538
40539         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
40540
40541 2002-12-14   Geert Bosch  <bosch@gnat.com>
40542
40543         PR ada/5690
40544         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
40545         case of a body created for a Renaming_As_Body, on which
40546         conformance checks are not performed.
40547
40548 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
40549
40550         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
40551         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
40552         not already included.
40553         * Make-lang.in: Update dependencies.
40554
40555 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
40556         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
40557         solution to buffer overflow bug on GNU/Linux.
40558
40559 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
40560
40561         PR ada/5856
40562         PR ada/6919
40563         * bindgen.adb: Remove all references to Public_Version.
40564         * comperr.adb: Remove all references to Public_Version and
40565         GNATPRO_Version; correct bug reporting instructions.
40566         * comperr.ads: Change to match bug box.
40567         * gnatvsn.ads: Remove all references to Public version and
40568         GNATPRO version.
40569
40570 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
40571
40572         PR ada/6919
40573         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
40574         GNU/Linux.
40575
40576         PR ada/6558
40577         * config-lang.in: Remove diff_excludes.
40578
40579 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
40580
40581         PR ada/8358
40582         * trans.c (gnu_pending_elaboration_lists): New GC root.
40583         (build_unit_elab): Use..
40584
40585 2002-10-30   Geert Bosch  <bosch@gnat.com>
40586
40587         PR ada/6558
40588         * misc.c : Include optabs.h
40589
40590         * Make-lang.in (misc.o): Add dependency on optabs.h
40591
40592 2002-10-29   Geert Bosch  <bosch@gnat.com>
40593
40594         PR ada/6558
40595         * Make-lang.in (gnatbind): Depend on CONFIG_H
40596
40597 2002-10-29  Geert bosch  <bosch@gnat.com>
40598
40599         PR ada/6558
40600         * misc.c: Unrevert misc.c (1.13)
40601
40602 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
40603
40604         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
40605         maintainership comments.
40606
40607 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
40608
40609         PR ada/5904
40610         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
40611         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
40612         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
40613         7staprop.adb: Correct statements in comments about
40614         maintainership of GNAT.
40615
40616         PR ada/5904
40617         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
40618         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
40619         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
40620         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
40621         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
40622         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
40623         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
40624         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
40625         comments about maintainership of GNAT.
40626
40627         PR ada/6919 (forward port of patch for PR ada/5904)
40628         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
40629         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
40630         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
40631         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
40632         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
40633         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
40634         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
40635         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
40636         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
40637         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
40638         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
40639         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
40640         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
40641         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
40642         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
40643         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
40644         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
40645         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
40646         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
40647         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
40648         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
40649         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
40650         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
40651         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
40652         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
40653         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
40654         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
40655         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
40656         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
40657         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
40658         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
40659         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
40660         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
40661         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
40662         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
40663         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
40664         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
40665         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
40666         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
40667         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
40668         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
40669         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
40670         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
40671         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
40672         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
40673         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
40674         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
40675         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
40676         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
40677         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
40678         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
40679         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
40680         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
40681         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
40682         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
40683         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
40684         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
40685         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
40686         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
40687         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
40688         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
40689         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
40690         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
40691         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
40692         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
40693         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
40694         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
40695         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
40696         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
40697         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
40698         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
40699         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
40700         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
40701         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
40702         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
40703         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
40704         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
40705         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
40706         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
40707         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
40708         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
40709         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
40710         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
40711         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
40712         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
40713         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
40714         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
40715         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
40716         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
40717         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
40718         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
40719         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
40720         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
40721         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
40722         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
40723         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
40724         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
40725         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
40726         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
40727         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
40728         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
40729         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
40730         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
40731         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
40732         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
40733         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
40734         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
40735         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
40736         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
40737         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
40738         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
40739         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
40740         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
40741         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
40742         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
40743         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
40744         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
40745         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
40746         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
40747         par-endh.adb par-labl.adb par-load.adb par-prag.adb
40748         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
40749         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
40750         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
40751         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
40752         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
40753         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
40754         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
40755         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
40756         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
40757         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
40758         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
40759         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
40760         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
40761         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
40762         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
40763         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
40764         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
40765         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
40766         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
40767         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
40768         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
40769         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
40770         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
40771         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
40772         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
40773         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
40774         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
40775         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
40776         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
40777         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
40778         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
40779         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
40780         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
40781         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
40782         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
40783         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
40784         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
40785         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
40786         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
40787         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
40788         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
40789         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
40790         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
40791         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
40792         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
40793         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
40794         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
40795         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
40796         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
40797         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
40798         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
40799         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
40800         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
40801         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
40802         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
40803         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
40804         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
40805         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
40806         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
40807         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
40808         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
40809         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
40810         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
40811         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
40812         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
40813         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
40814         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
40815         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
40816         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
40817         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
40818         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
40819         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
40820         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
40821         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
40822         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
40823         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
40824         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
40825         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
40826         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
40827         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
40828         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
40829         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
40830         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
40831         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
40832         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
40833         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
40834         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
40835         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
40836         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
40837         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
40838         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
40839         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
40840         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
40841         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
40842         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
40843         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
40844         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
40845         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
40846         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
40847         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
40848         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
40849         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
40850         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
40851         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
40852         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
40853         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
40854         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
40855         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
40856         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
40857         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
40858         stringt.ads stringt.h style.adb style.ads stylesw.adb
40859         stylesw.ads switch.adb switch.ads sysdep.c system.ads
40860         table.adb table.ads targparm.adb targparm.ads targtyps.c
40861         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
40862         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
40863         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
40864         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
40865         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
40866         usage.ads utils.c utils2.c validsw.adb validsw.ads
40867         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
40868         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
40869         xtreeprs.adb: Correct statements in comments about maintainership
40870         of GNAT.
40871
40872 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
40873
40874         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
40875         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
40876         * gnatvsn.ads: Gnat_Version_String is now a function.
40877         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
40878         copy the C version_string into a String and return it.
40879         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
40880         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
40881         Remove pragma Ident (Gnat_Version_String).  If this was the
40882         sole use of package Gnatvsn, remove the with statement too.
40883         * gnat1drv.adb: Tweak -gnatv output.
40884
40885 2002-09-17  Richard Henderson  <rth@redhat.com>
40886
40887         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
40888         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
40889         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
40890         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
40891         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
40892         and real_2expN instead of a loop.
40893         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
40894         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
40895
40896 2002-08-25  Andre Leis  <a.leis@gmx.net>
40897             David Billinghurst  <David.Billinghurst@riotinto.com>
40898
40899         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
40900
40901 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
40902
40903         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
40904         Remove $(CONFIG_H) dependency.
40905
40906 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
40907
40908         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
40909
40910 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
40911
40912         * adadecode.c (ada_demangle): Use xstrdup in lieu of
40913         xmalloc/strcpy.
40914         * misc.c (gnat_decode_option): Likewise.
40915
40916 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
40917
40918         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
40919         function approach did not work well because of a side effect (the
40920         function call could reallocate the table which was being indexed
40921         using its result). Fixes ada/4851. [RESURRECTED]
40922
40923 2002-07-01  Roger Sayle  <roger@eyesopen.com>
40924
40925         * ada/utils.c (builtin_function): Accept an additional parameter.
40926
40927 2002-06-28  Andreas Jaeger  <aj@suse.de>
40928
40929         PR ada/7144
40930         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
40931         <adi@thur.de>.
40932
40933 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
40934
40935         * Makefile.in (SHELL): Set to @SHELL@.
40936
40937 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
40938
40939         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
40940         array size calculation.
40941
40942 2002-06-04  Andreas Jaeger  <aj@suse.de>
40943
40944         * Make-lang.in (gnatbind): Readd rule that has been lost in last
40945         patch.
40946
40947 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
40948
40949         Merge from pch-branch:
40950
40951         * config-lang.in (gtfiles): Add ada-tree.h.
40952         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
40953         (SET_TYPE_MODULUS): New.
40954         (SET_TYPE_INDEX): New.
40955         (SET_TYPE_DIGITS_VALUE): New.
40956         (SET_TYPE_RM_SIZE): New.
40957         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
40958         (SET_TYPE_ADA_SIZE): New.
40959         (SET_TYPE_ACTUAL_BOUNDS): New.
40960         (SET_DECL_CONST_CORRESPONDING_VAR): New.
40961         (SET_DECL_ORIGINAL_FIELD): New.
40962         (TREE_LOOP_ID): Correct typo.
40963         * decl.c: Use new macros.
40964         * utils.c: Include debug.h, use new macros.
40965         * utils2.c: Use new macros.
40966
40967         * ada-tree.h: Update all macros for new tree description.
40968         (struct tree_loop_id): New.
40969         (union lang_tree_node): New.
40970         (struct lang_decl): New.
40971         (struct lang_type): New.
40972         * misc.c (gnat_mark_tree): Delete.
40973         (LANG_HOOKS_MARK_TREE): Delete.
40974         * trans.c (tree_transform): No longer any need to cast
40975         for TREE_LOOP_ID.
40976
40977         * utils.c (struct language_function): New dummy structure.
40978
40979         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
40980         (misc.o): Likewise.
40981         (utils.o): Likewise; also gtype-ada.h.
40982         * Make-lang.in (gnat1): Add dependency on s-gtype.
40983         (gnatbind): Add dependency on $(CONFIG_H).
40984         * utils.c: Correct last #include.
40985         (stuct e_stack): Remove unnecessary 'static'.
40986         (mark_e_stack): Remove unused prototype.
40987
40988         * scn-nlit.adb: Remove whitespace after version number to
40989         keep lines under 80 chars.
40990         * snames.adb: Likewise.
40991         * treepr.ads: Likewise.
40992
40993         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
40994         (misc.o): Likewise.
40995         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
40996         * config-lang.in (gtfiles): New.
40997         * decl.c: Use gengtype for roots.
40998         * gigi.h: Use gengtype for roots.
40999         * trans.c: Use gengtype for roots.
41000         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
41001
41002 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
41003
41004         * misc.c (gnat_init): Adjust setting of internal_error_function.
41005
41006 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
41007
41008         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
41009         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
41010         gnat_ug_wnt.texi: Regenerate.
41011
41012 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
41013
41014         * 5ntaprop.adb (with System.OS_Primitives): Remove.
41015
41016         * cstreams.c (max_path_len): Move from here ...
41017         * adaint.c (__gnat_max_path_len): ... to here.
41018         * adaint.c (__gnat_max_path_len): Declare.
41019         * g-dirope.adb (Max_Path): Adjust.
41020         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
41021         * i-cstrea.ads (max_path_len): Adjust.
41022         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
41023         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
41024
41025         * Makefile.in, Make-lang.in: Documentation is now built in
41026         Make-lang.in.  Store Info and generated Texinfo files in the
41027         source directory.
41028         * gnat_ug.texi: Remove CVS keywords, correct version number.
41029         Set file name correctly.
41030
41031         * gnat_ug_*.texi: Add.
41032         * .cvsignore: Ignore generated Texinfo files.
41033
41034 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
41035
41036         * ada.h: Add MI guard macro.
41037         (SUBTYPE): Define constants with an anonymous enum, not static
41038         const variables.
41039         (IN): Cast constants to appropriate type before use.
41040
41041 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
41042
41043         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
41044         (experimental)".
41045
41046 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
41047
41048         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
41049         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
41050         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
41051         (ALL_ADA_CFLAGS): Likewise.
41052         (ADA_INCLUDES): Likewise.
41053         Adapt for new working dir.
41054         (GNATBIND): Use Makefile.in version.
41055         (.SUFFIXES): Copy from Makefile.in.
41056         (ada-warn): Define.
41057         (.adb.o, .ads.o): Copy from Makefile.in.
41058         Added $(OUTPUT_OPTION).
41059         (GNAT1_C_OBJS): Moved from Makefile.in.
41060         Prefix with ada subdir.
41061         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
41062         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
41063         Adapt for new working dir.
41064         (EXTRA_GNATBIND_OBJS): Likewise.
41065         (ADA_BACKEND): Moved from Makefile.in.
41066         Renamed to avoid conflict with global BACKEND.
41067         Use that one.
41068         (TARGET_ADA_SRCS): Moved from Makefile.in.
41069         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
41070         Use ADA_BACKEND.
41071         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
41072         (ada_extra_files): Moved from Makefile.in.
41073         Prefix with ada subdir.
41074         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
41075         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
41076         (ada/nmake.ads): Likewise.
41077         (update-sources): Moved from Makefile.in.
41078         Prefix with ada subdir.
41079         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
41080         (ADA_TREE_H): Likewise.
41081         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
41082         (ada/memtrack.o): Likewise.
41083         (ada/adadecode.o): Likewise.
41084         Update dependencies.
41085         (ada/adaint.o): New.
41086         (ada/argv.o): Moved from Makefile.in.
41087         Prefix with ada subdir.
41088         Update dependencies.
41089         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
41090         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
41091         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
41092         Prefix with ada subdir.
41093         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
41094         (GNAT DEPENDENCIES): Regenerate.
41095         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
41096         toplevel Makefile.in.
41097         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
41098         (TARGET_ADA_SRCS): Removed.
41099         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
41100         (GNATBIND_OBJS): Likewise.
41101         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
41102         (BACKEND): Removed.
41103         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
41104         (TREE_H): Likewise.
41105         (ada_extra_files): Likewise.
41106         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
41107         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
41108         (update-sources): Likewise.
41109         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
41110         (ADA_TREE_H): Likewise.
41111         (adadecoce.o): Likewise.
41112         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
41113         (GNAT DEPENDENCIES): Likewise.
41114
41115 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
41116
41117         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
41118         * Makefile.in: Likewise.
41119
41120 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
41121
41122         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
41123         Restore $(CONFIG_H) and prefix.o dependencies.
41124         (ada.stage[1-4]): Depend on stage?-start.
41125
41126         * Makefile.in (b_gnatb.c): Depend on interfac.o.
41127
41128 2002-05-02  Jim Wilson  <wilson@redhat.com>
41129
41130         * utils.c (finish_record_type): Change record_size to record_type.
41131
41132 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
41133
41134         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
41135         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
41136         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
41137
41138 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
41139
41140         * misc.c (gnat_parse_file): Update.
41141
41142 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
41143
41144         * misc.c (gnat_init): Don't set lang_attribute_common.
41145
41146 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
41147
41148         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
41149
41150 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
41151
41152         * gnat_ug.texi: New file.
41153
41154         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
41155         instead of gfdl.texi
41156
41157         * xgnatug.adb, ug_words: New files.
41158
41159         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
41160         gnat_rm and gnat-style manuals.
41161
41162 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
41163
41164         * gigi.h (incomplete_type_error): Remove.
41165         * utils.c (incomplete_type_error): Remove.
41166
41167 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
41168
41169         * trans.c (tree_transform): Add has_scope argument to
41170         expand_start_stmt_expr.
41171
41172 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
41173
41174         * gigi.h (truthvalue_conversion): Rename.
41175         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
41176         * trans.c (tree_transform): Update.
41177         * utils2.c (truthvalue_conversion): Rename, update.
41178         (build_binary_op, build_unary_op): Update.
41179
41180 2002-04-04  Laurent Guerby  <guerby@acm.org>
41181
41182         * make.adb: Implement -margs, remove restriction about file name placement.
41183         * makeusg.adb: Documentation update.
41184         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
41185         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
41186
41187 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
41188
41189         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
41190         (builtin_function): Similarly.
41191
41192 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
41193
41194         * decl.c (gnat_to_gnu_entity): Update.
41195         * gigi.h (mark_addressable): Rename.
41196         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
41197         * trans.c (tree_transform): Update.
41198         * utils.c (create_var_decl): Update.
41199         * util2.c (build_binary_op, build_unary_op,
41200         fill_vms_descriptor): Update.
41201         (mark_addressable): Rename, update.
41202
41203 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
41204
41205         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
41206         Rename.
41207         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
41208         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
41209         * trans.c (tree_transform, convert_with_check): Update.
41210         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
41211         Rename.
41212
41213 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
41214
41215         * gigi.h (finish_incomplete_decl): Rename.
41216         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
41217         * utils.c (gnat_init_decl_processing): Don't set hook.
41218         (finish_incomplete_decl): Rename.
41219
41220 2002-03-29  Andreas Schwab  <schwab@suse.de>
41221
41222         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
41223         directory.
41224
41225 2001-03-28  Robert Dewar  <dewar@gnat.com>
41226
41227         * checks.ads:
41228         (Remove_Checks): New procedure
41229
41230         * checks.adb:
41231         (Remove_Checks): New procedure
41232
41233         * exp_util.adb:
41234         Use new Duplicate_Subexpr functions
41235         (Duplicate_Subexpr_No_Checks): New procedure
41236         (Duplicate_Subexpr_No_Checks_Orig): New procedure
41237         (Duplicate_Subexpr): Restore original form (checks duplicated)
41238         (Duplicate_Subexpr): Call Remove_Checks
41239
41240         * exp_util.ads:
41241         (Duplicate_Subexpr_No_Checks): New procedure
41242         (Duplicate_Subexpr_No_Checks_Orig): New procedure
41243         Add 2002 to copyright notice
41244
41245         * sem_util.adb: Use new Duplicate_Subexpr functions
41246
41247         * sem_eval.adb:
41248         (Eval_Indexed_Component): This is the place to call
41249         Constant_Array_Ref and to replace the value. We simply merge
41250         the code of this function in here, since it is now no longer
41251         used elsewhere. This fixes the problem of the back end not
41252         realizing we were clever enough to see that this was
41253         constant.
41254         (Expr_Val): Remove call to Constant_Array_Ref
41255         (Expr_Rep_Val): Remove call to Constant_Array_Ref
41256         Minor reformatting
41257         (Constant_Array_Ref): Deal with string literals (patch
41258         suggested by Zack Weinberg on the gcc list)
41259
41260 2001-03-28  Ed Schonberg  <schonber@gnat.com>
41261
41262         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
41263         Duplicate_Subexpr_Move_Checks.
41264
41265         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
41266         Duplicate_Subexpr_Move_Checks.
41267
41268         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
41269         value of array exists before retrieving it (it may a private
41270         protected component in a function).
41271
41272 2002-03-28   Geert Bosch  <bosch@gnat.com>
41273
41274         * prj-pp.adb : New file.
41275
41276         * prj-pp.ads : New file.
41277
41278 2002-03-28  Andreas Jaeger  <aj@suse.de>
41279
41280         * Makefile.in (stamp-sdefault): Fix path for Makefile.
41281
41282 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
41283
41284         * misc.c (gnat_expand_expr): Move prototype.
41285
41286 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
41287
41288         * misc.c (insert_default_attributes): Remove.
41289
41290 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
41291
41292         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
41293         (gnat_init): Don't set hook.
41294         (gnat_expand_expr): Fix prototype.
41295
41296 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
41297
41298         * misc.c (ggc_p): Remove.
41299
41300 2002-03-27  Geert Bosch  <bosch@gnat.com>
41301
41302         * prj-makr.ads, prj-makr.adb : New files.
41303
41304 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
41305
41306         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
41307         (lang_mark_tree): Make static, rename.
41308
41309 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
41310
41311         * misc.c (maybe_build_cleanup): Remove.
41312
41313 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
41314
41315         * gigi.h (yyparse): Remove.
41316
41317 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
41318
41319         From Ben Brosgol  <brosgol@gnat.com>
41320         * gnat_rm.texi: Sync with ACT version.
41321
41322 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
41323
41324         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
41325         (gnat_init): Remove old hook.
41326
41327 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
41328
41329         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
41330         (yyparse): Rename gnat_parse_file.
41331
41332 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
41333
41334         Delete all lines containing "$Revision:".
41335         * xeinfo.adb: Don't look for revision numbers.
41336         * xnmake.adb: Likewise.
41337         * xsinfo.adb: Likewise.
41338         * xsnames.adb: Likewise.
41339         * xtreeprs.adb: Likewise.
41340
41341 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
41342
41343         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
41344         gnat_tree_code_name): Delete.
41345         (tree_code_type, tree_code_length, tree_code_name): Define.
41346         (gnat_init): Don't try to copy into the various tree_code
41347         arrays.
41348
41349 2002-03-11  Richard Henderson  <rth@redhat.com>
41350
41351         * Makefile.in (.NOTPARALLEL): Add fake tag.
41352
41353 2002-03-07  Geert Bosch  <bosch@gnat.com>
41354
41355         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
41356         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
41357         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
41358         switch-m.adb, switch-m.ads : New files.
41359
41360 2002-03-07  Geert Bosch  <bosch@gnat.com>
41361
41362         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
41363         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
41364         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
41365         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
41366         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
41367         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
41368         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
41369         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
41370         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
41371         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
41372         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
41373         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
41374         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
41375         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
41376         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
41377         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
41378         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
41379         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
41380         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
41381         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
41382         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
41383         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
41384         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
41385         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
41386         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
41387         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
41388         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
41389         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
41390         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
41391         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
41392         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
41393         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
41394         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
41395         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
41396         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
41397         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
41398         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
41399         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
41400         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
41401         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
41402         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
41403         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
41404         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
41405         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
41406         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
41407         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
41408         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
41409         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
41410         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
41411         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
41412         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
41413         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
41414         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
41415         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
41416         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
41417         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
41418         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
41419         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
41420         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
41421         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
41422         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
41423         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
41424         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
41425         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
41426         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
41427         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
41428         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
41429         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
41430         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
41431         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
41432         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
41433         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
41434         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
41435         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
41436         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
41437         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
41438         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
41439         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
41440         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
41441         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
41442         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
41443         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
41444         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
41445         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
41446         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
41447         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
41448         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
41449         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
41450         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
41451         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
41452         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
41453         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
41454         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
41455         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
41456         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
41457         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
41458         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
41459
41460         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
41461         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
41462         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
41463         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
41464
41465         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
41466         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
41467
41468         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
41469         to mdll-fil.ad[bs] and mdll-util.ad[bs]
41470
41471         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
41472         from mdllfile.ad[bs] and mdlltool.ad[bs]
41473
41474 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
41475
41476         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
41477         lieu of explicit sizeof/sizeof.
41478
41479 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
41480
41481         * misc.c (copy_lang_decl): Remove.
41482
41483 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
41484
41485         * misc.c: Delete traditional-mode-related code copied from the
41486         C front end but not used, or used only to permit the compiler
41487         to link.
41488
41489 2002-02-07  Richard Henderson  <rth@redhat.com>
41490
41491         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
41492         * adaint.h (__gnat_to_gm_time): Update prototype.
41493
41494 2002-01-30  Richard Henderson  <rth@redhat.com>
41495
41496         * trans.c (tree_transform) [N_Loop_Statement]: Use
41497         expand_exit_loop_top_cond.
41498
41499 2001-12-23  Richard Henderson  <rth@redhat.com>
41500
41501         * utils.c (end_subprog_body): Push GC context around
41502         rest_of_compilation for nested functions.
41503
41504 2001-12-23  Richard Henderson  <rth@redhat.com>
41505
41506         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
41507
41508 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
41509
41510         * gnat-style.texi (Declarations and Types): Remove ancient style
41511         rule which was mandated by code generation issues.
41512
41513         * gnat-style.texi (header): Add @dircategory, @direntry.
41514         (title page): Remove date.
41515         (general) Add @./@: where approriate, and two spaces after the
41516         full stop at the end of a sentence.  Use @samp markup when
41517         referring concrete lexical entities (keywords, attribute names
41518         etc.), and @syntax for ARM grammar elements. Use @r for English
41519         text in comments.  Use @emph for emphasis.  Change "if-statements"
41520         etc. to "if statements" (without @samp). Break long lines.  Make
41521         casing of section names consistent.
41522         (Identifiers): Use @samp markup for variable names.
41523         (Comments): Use @samp markup for comment characters. Line-end
41524         comments may follow any Ada code, not just statements.  Fix
41525         misspelling of "Integer" as "integer".
41526         (Loop statements): Do not use variable name "I", use "J".
41527         (Subprogram Declarations): Document alignment.
41528         (Subprogram Bodies, Block statements): Document empty line before
41529         "begin".
41530
41531 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
41532
41533         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
41534         function approach did not work well because of a side effect (the
41535         function call could reallocate the table which was being indexed
41536         using its result). Fixes ada/4851.
41537
41538 2001-12-19  Robert Dewar  <dewar@gnat.com>
41539
41540         * bindgen.adb: Minor reformatting
41541
41542         * cstand.adb: Minor reformatting
41543
41544         * fmap.adb: Minor reformatting
41545         Change name from Add for Add_To_File_Map (Add is much too generic)
41546         Change Path_Name_Of to Mapped_Path_Name
41547         Change File_Name_Of to Mapped_File_Name
41548         Fix copyright dates in header
41549
41550         * fmap.ads:
41551         Change name from Add for Add_To_File_Map (Add is much too generic)
41552         Change Path_Name_Of to Mapped_Path_Name
41553         Change File_Name_Of to Mapped_File_Name
41554         Fix copyright dates in header
41555
41556         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
41557         Add use clause for Fmap.
41558
41559         * make.adb: Minor reformatting
41560
41561         * osint.adb: Minor reformatting.  Change of names in Fmap.
41562         Add use clause for Fmap.
41563
41564         * prj-env.adb: Minor reformatting
41565
41566         * prj-env.ads: Minor reformatting
41567
41568         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
41569         error found (there were odd exceptions to this general rule in
41570         -gnatec/-gnatem processing)
41571
41572 2001-12-19  Olivier Hainque  <hainque@gnat.com>
41573
41574         * raise.c (__gnat_eh_personality): Exception handling personality
41575         routine for Ada.  Still in rough state, inspired from the C++ version
41576         and still containing a bunch of debugging artifacts.
41577         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
41578         inspired from the C++ library.
41579
41580         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
41581         exception handling integration.
41582
41583 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
41584
41585         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
41586         (HIE_SOURCES): Add s-secsta.ad{s,b}.
41587         (HIE_OBJS): Add s-fat*.o
41588         (RAVEN_SOURCES): Remove files that are no longer required. Add
41589         interrupt handling files.
41590         (RAVEN_MOD): Removed, no longer needed.
41591
41592 2001-12-19  Robert Dewar  <dewar@gnat.com>
41593
41594         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
41595         Add 2001 to copyright date
41596
41597         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
41598         need to force universal inlining for these cases.
41599
41600 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
41601
41602         * s-taprob.adb: Minor clean ups so that this unit can be used in
41603         Ravenscar HI.
41604
41605         * exp_ch7.adb: Allow use of secondary stack in HI mode.
41606         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
41607
41608 2001-12-19  Vincent Celier  <celier@gnat.com>
41609
41610         * prj-tree.ads (Project_Node_Record): Add comments for components
41611         Pkg_Id and Case_Insensitive.
41612
41613 2001-12-19  Pascal Obry  <obry@gnat.com>
41614
41615         * g-socket.adb: Minor reformatting. Found while reading code.
41616
41617 2001-12-19  Robert Dewar  <dewar@gnat.com>
41618
41619         * prj-tree.ads: Minor reformatting
41620
41621 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
41622
41623         * config-lang.in (diff_excludes): Remove.
41624
41625 2001-12-17  Ed Schonberg  <schonber@gnat.com>
41626
41627         * sem_res.adb (Resolve_Selected_Component): do not generate a
41628         discriminant check if the selected component is a component of
41629         the argument of an initialization procedure.
41630
41631         * trans.c (tree_transform, case of arithmetic operators): If result
41632         type is private, the gnu_type is the base type of the full view,
41633         given that the full view itself may be a subtype.
41634
41635 2001-12-17  Robert Dewar  <dewar@gnat.com>
41636
41637         * sem_res.adb: Minor reformatting
41638
41639         * trans.c (tree_transform, case N_Real_Literal): Add missing third
41640         parameter in call to Machine (unknown horrible effects from this
41641         omission).
41642
41643         * urealp.h: Add definition of Round_Even for call to Machine
41644         Add third parameter for Machine
41645
41646 2001-12-17  Ed Schonberg  <schonber@gnat.com>
41647
41648         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
41649         predefined units in No_Run_Time mode.
41650
41651 2001-12-17  Richard Kenner  <kenner@gnat.com>
41652
41653         * misc.c (insn-codes.h): Now include.
41654
41655 2001-12-17  Olivier Hainque  <hainque@gnat.com>
41656
41657         * a-except.adb: Preparation work for future integration of the GCC 3
41658         exception handling mechanism
41659         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
41660         to factorize previous code sequences and make them externally callable,
41661         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
41662         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
41663         Use the new notification routines.
41664
41665 2001-12-17  Emmanuel Briot  <briot@gnat.com>
41666
41667         * prj-tree.ads (First_Choice_Of): Document the when others case
41668
41669 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
41670
41671         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
41672         HI-E mode, in order to support Ravenscar profile properly.
41673
41674         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
41675         mode on 32 bits targets.
41676
41677 2001-12-17  Vincent Celier  <celier@gnat.com>
41678
41679         * fmap.adb: Initial version.
41680
41681         * fmap.ads: Initial version.
41682
41683         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
41684         If search is successfully done, add to mapping.
41685
41686         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
41687
41688         * make.adb:
41689         (Gnatmake): Add new local variable Mapping_File_Name.
41690          Create mapping file when using project file(s).
41691          Delete mapping file before exiting.
41692
41693         * opt.ads (Mapping_File_Name): New variable
41694
41695         * osint.adb (Find_File): Use path name found in mapping, if any.
41696
41697         * prj-env.adb (Create_Mapping_File): New procedure
41698
41699         * prj-env.ads (Create_Mapping_File): New procedure.
41700
41701         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
41702         (Mapping_File)
41703
41704         * usage.adb: Add entry for new switch -gnatem.
41705
41706         * Makefile.in: Add dependencies for fmap.o.
41707
41708 2001-12-17  Ed Schonberg  <schonber@gnat.com>
41709
41710         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
41711         is a package instantiation rewritten as a package body.
41712         (Install_Withed_Unit): Undo previous change, now redundant.
41713
41714 2001-12-17  Gary Dismuke  <dismukes@gnat.com>
41715
41716         * layout.adb:
41717         (Compute_Length): Move conversion to Unsigned to callers.
41718         (Get_Max_Size): Convert Len expression to Unsigned after calls to
41719         Compute_Length and Determine_Range.
41720         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
41721         Compute_Length and Determine_Range.
41722         Above changes fix problem with length computation for supernull arrays
41723         where Max (Len, 0) wasn't getting applied due to the Unsigned
41724         conversion used by Compute_Length.
41725
41726 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
41727
41728         * rtsfind.ads:
41729         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
41730          System.Secondary_Stack.
41731         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
41732          in HI-E mode.
41733         Remove unused entity RE_Exception_Data.
41734
41735         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
41736
41737         * rident.ads (No_Secondary_Stack): New restriction.
41738
41739 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
41740
41741         * gnat_rm.texi: Fix minor typos. Found while reading the section
41742         regarding "Bit_Order Clauses" that was sent to a customer.
41743         Very interesting documentation!
41744
41745 2001-12-17  Robert Dewar  <dewar@gnat.com>
41746
41747         * sem_case.adb (Choice_Image): Avoid creating improper character
41748         literal names by using the routine Set_Character_Literal_Name. This
41749         fixes bombs in certain error message cases.
41750
41751 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
41752
41753         * a-reatim.adb: Minor reformatting.
41754
41755 2001-12-17  Ed Schonberg  <schonber@gnat.com>
41756
41757         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
41758         case where the formal is an extension of another formal in the current
41759         unit or in a parent generic unit.
41760
41761 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
41762
41763         * s-tposen.adb: Update comments.  Minor reformatting.
41764         Minor code clean up.
41765
41766         * s-tarest.adb: Update comments.  Minor code reorganization.
41767
41768 2001-12-17  Gary Dismukes  <dismukes@gnat.com>
41769
41770         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
41771         when Java_VM.
41772
41773 2001-12-17  Robert Dewa  <dewar@gnat.com>
41774
41775         * exp_attr.adb: Minor reformatting
41776
41777 2001-12-17  Ed Schonberg  <schonber@gnat.com>
41778
41779         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
41780         derivations nested within a child unit: verify that the parent
41781         type is declared in an outer scope.
41782
41783 2001-12-17  Robert Dewar  <dewar@gnat.com>
41784
41785         * sem_ch12.adb: Minor reformatting
41786
41787 2001-12-17  Ed Schonberg  <schonber@gnat.com>
41788
41789         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
41790         warning if current unit is a predefined one, from which bodies may
41791         have been deleted.
41792
41793 2001-12-17  Robert Dewar  <dewar@gnat.com>
41794
41795         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
41796         Fix header format. Add 2001 to copyright date.
41797
41798         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
41799         which caused CE during compilation if checks were enabled.
41800
41801 2001-12-17  Vincent Celier  <celier@gnat.com>
41802
41803         * make.adb:
41804         (Switches_Of): New function
41805         (Test_If_Relative_Path): New procedure
41806         (Add_Switches): Use new function Switches_Of
41807         (Collect_Arguments_And_Compile): Use new function Switches_Of.
41808         When using a project file, test if there are any relative
41809         search path. Fail if there are any.
41810         (Gnatmake): Only add switches for the primary directory when not using
41811         a project file. When using a project file, change directory to the
41812         object directory of the main project file. When using a project file,
41813         test if there are any relative search path. Fail if there are any.
41814         When using a project file, fail if specified executable is relative
41815         path with directory information, and prepend executable, if not
41816         specified as an absolute path, with the exec directory.  Make sure
41817         that only one -o switch is transmitted to the linker.
41818
41819         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
41820
41821         * prj-nmsc.adb:
41822         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
41823         when using a non standard naming scheme.
41824         (Check_Ada_Naming_Scheme): Make sure that error messages
41825         do not raise exceptions.
41826         (Is_Illegal_Append): Return True if there is no dot in the suffix.
41827         (Language_Independent_Check): Check the exec directory.
41828
41829         * prj.adb (Project_Empty): Add new component Exec_Directory
41830
41831         * prj.ads:
41832         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
41833         (Project_Data): Add component Exec_Directory
41834
41835         * snames.adb: Updated to match snames.ads revision 1.215
41836
41837         * snames.ads: Added Exec_Dir
41838
41839 2001-12-17  Robert Dewar  <dewar@gnat.com>
41840
41841         * make.adb: Minor reformatting
41842
41843         * prj-nmsc.adb: Minor reformatting
41844
41845         * snames.adb: Updated to match snames.ads
41846
41847         * snames.ads: Alphebetize entries for project file
41848
41849 2001-12-17  Ed Schonberg  <schonber@gnat.com>
41850
41851         * trans.c (process_freeze_entity): Do nothing if the entity is a
41852         subprogram that was already elaborated.
41853
41854 2001-12-17  Richard Kenner  <kenner@gnat.com>
41855
41856         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
41857         and Esize if object is referenced via pointer.
41858
41859 2001-12-17  Ed Schonberg  <schonber@gnat.com>
41860
41861         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
41862         is discrete before analyzing choices.
41863
41864 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
41865
41866         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
41867         containing the name of the Ada Main Program. This string is mainly
41868         intended for the debugger.
41869         (Gen_Output_File_C): Do the equivalent change when generating a C file.
41870
41871 2001-12-17  Robert Dewar  <dewar@gnat.com>
41872
41873         * ali.adb: Set new Dummy_Entry field in dependency entry
41874
41875         * ali.ads: Add Dummy_Entry field to source dependency table
41876
41877         * bcheck.adb (Check_Consistency): Ignore dummy D lines
41878
41879         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
41880
41881         * lib-writ.ads: Document dummy D lines for missing files.
41882
41883         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
41884
41885 2001-12-17  Robert Dewar  <dewar@gnat.com>
41886
41887         * ali.adb: Type reference does not reset current file.
41888
41889         * ali.adb: Recognize and scan renaming reference
41890
41891         * ali.ads: Add spec for storing renaming references.
41892
41893         * lib-xref.ads: Add documentation for handling of renaming references
41894
41895         * lib-xref.adb: Implement output of renaming reference.
41896
41897         * checks.adb:
41898         (Determine_Range): Document local variables
41899         (Determine_Range): Make sure Hbound is initialized. It looks as though
41900          there could be a real problem here with an uninitialized reference
41901          to Hbound, but no actual example of failure has been found.
41902
41903 2001-12-17  Laurent Pautet  <pautet@gnat.com>
41904
41905         * g-socket.ads:
41906         Fix comment of Shutdown_Socket and Close_Socket. These functions
41907         should not fail silently because if they are called twice, this
41908         probably means that there is a race condition in the user program.
41909         Anyway, this behaviour is consistent with the rest of this unit.
41910         When an error occurs, an exception is raised with the error message
41911         as exception message.
41912
41913 2001-12-17  Robert Dewar  <dewar@gnat.com>
41914
41915         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
41916         that it happens before modification of Sloc values for -gnatD.
41917
41918         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
41919         so that it happens before modification of Sloc values for -gnatD.
41920
41921         * switch.adb: Minor reformatting
41922
41923 2001-12-15  Richard Henderson  <rth@redhat.com>
41924
41925         * sem_ch7.adb: Wrap comment.
41926
41927 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
41928
41929         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
41930         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
41931         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
41932         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
41933         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
41934         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
41935         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
41936         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
41937         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
41938         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
41939         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
41940         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
41941         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
41942         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
41943         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
41944         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
41945         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
41946         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
41947         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
41948         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
41949         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
41950         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
41951         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
41952         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
41953         spelling errors.
41954
41955 2001-12-14  Vincent Celier  <celier@gnat.com>
41956
41957         * osint.adb(Create_Debug_File): When an object file is specified,
41958         put the .dg file in the same directory as the object file.
41959
41960 2001-12-14  Robert Dewar  <dewar@gnat.com>
41961
41962         * osint.adb: Minor reformatting
41963
41964         * lib-xref.adb (Output_Instantiation): New procedure to generate
41965         instantiation references.
41966
41967         * lib-xref.ads: Add documentation of handling of generic references.
41968
41969         * ali.adb (Read_Instantiation_Ref): New procedure to read
41970         instantiation references
41971
41972         * ali.ads: Add spec for storing instantiation references
41973
41974         * bindusg.adb: Minor reformatting
41975
41976         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
41977
41978         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
41979
41980         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
41981
41982         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
41983
41984         * csets.ads:
41985         Fix header format
41986         Add 2001 to copyright date
41987         Add entry for Latin-5 (Cyrillic ISO-8859-5)
41988
41989 2001-12-14  Matt Gingell  <gingell@gnat.com>
41990
41991         * adaint.c: mktemp is a macro on Lynx and can not be used as an
41992         expression.
41993
41994 2001-12-14  Richard Kenner  <kenner@gnat.com>
41995
41996         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
41997         if operand is CONSTRUCTOR.
41998
41999 2001-12-14  Ed Schonberg  <schonber@gnat.com>
42000
42001         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
42002         before emiting check on right-hand side, so that exception information
42003         is correct.
42004
42005 2001-12-14  Richard Kenner  <kenner@gnat.com>
42006
42007         * utils.c (create_var_decl): Throw away initializing expression
42008         if just annotating types and non-constant.
42009
42010 2001-12-14  Vincent Celier  <celier@gnat.com>
42011
42012         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
42013         Default_Ada_...
42014
42015         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
42016         Remove functions.
42017         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
42018
42019         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
42020         Remove functions.
42021         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
42022
42023 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
42024
42025         * ChangeLog: Remove piece of diff output.
42026
42027 2001-12-14  Geert Bosch  <bosch@gnat.com>
42028
42029         * config-lang.in: Update copyright notice
42030
42031         * layout.adb: Remove commented out code.
42032
42033         * mdllfile.ads: Update copyright notice. Fix header format.
42034
42035         * sem_case.ads: Likewise.
42036
42037         * sem_ch3.adb: Minor reformatting.
42038
42039 2001-12-12  Geert Bosch  <bosch@gnat.com>
42040
42041         * freeze.ads: Update copyright date.
42042
42043         * g-comlin.ads: Minor reformatting.
42044
42045         * gnat-style.texi: Fix typo.
42046
42047 2001-12-12  Geert Bosch  <bosch@gnat.com>
42048
42049         *  einfo.h: Regenerate.
42050
42051 2001-12-12  Ed Schonberg  <schonber@gnat.com>
42052
42053         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
42054         on known node types, rather than untyped fields. Further cleanups.
42055
42056 2001-12-12  Robert Dewar  <dewar@gnat.com>
42057
42058         * sem_ch12.adb:
42059         (Save_Entity_Descendant): Minor comment update.
42060         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
42061          of an N_Attribute_Reference node. As per note below, this does not
42062         eliminate need for Associated_Node in attribute ref nodes.
42063         (Associated_Node): Documentation explicitly mentions attribute
42064         reference nodes, since this field is used in such nodes.
42065
42066         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
42067
42068 2001-12-12  Robert Dewar  <dewar@gnat.com>
42069
42070         * s-stalib.adb: Add more comments on with statements being needed
42071
42072         * par-ch12.adb: Minor reformatting
42073
42074         * prj-dect.ads: Fix copyright header
42075
42076         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
42077         inputs fit in 32 bits, but the result still overflows.
42078
42079         * s-fatgen.ads: Minor comment improvement
42080
42081 2001-12-12  Ed Schonberg  <schonber@gnat.com>
42082
42083         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
42084         formal derived type, look for an inherited component from the full
42085         view of the parent, if any.
42086
42087 2001-12-12  Robert Dewar  <dewar@gnat.com>
42088
42089         * checks.ads (Apply_Alignment_Check): New procedure.
42090
42091         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
42092         ensure that the alignment of objects with address clauses is
42093         appropriate, and raise PE if not.
42094
42095         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
42096         Exp_Pakd.Known_Aligned_Enough
42097
42098         * mdllfile.ads: Minor reformatting
42099
42100         * mlib-fil.ads: Minor reformatting
42101
42102 2001-12-12  Ed Schonberg  <schonber@gnat.com>
42103
42104         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
42105         fix to any component reference if enclosing record has non-standard
42106         representation.
42107
42108 2001-12-12  Vincent Celier  <celier@gnat.com>
42109
42110         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
42111         Iteration
42112
42113 2001-12-12  Ed Schonberg  <schonber@gnat.com>
42114
42115         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
42116         sem_attr.
42117
42118 2001-12-12  Robert Dewar  <dewar@gnat.com>
42119
42120         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
42121
42122 2001-12-12  Emmanuel Briot  <briot@gnat.com>
42123
42124         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
42125         and it adds dependencies to system.io.
42126
42127 2001-12-12  Pascal Obry  <obry@gnat.com>
42128
42129         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
42130         variable name.
42131
42132 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42133
42134         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
42135         that is the parent of other generics, the instance body replaces the
42136         instance node.  Retrieve the instance of the spec, which is the one
42137         that is visible in clients and within the body.
42138
42139 2001-12-11  Vincent Celier  <celier@gnat.com>
42140
42141         * gnatmain.adb: Initial version.
42142
42143         * gnatmain.ads: Initial version.
42144
42145         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
42146
42147         * snames.adb: Updated to match snames.ads.
42148
42149         * snames.ads: Added Gnatstub.
42150
42151 2001-12-11  Vincent Celier  <celier@gnat.com>
42152
42153         * prj-attr.adb (Initialization_Data): Change name from
42154         Initialisation_Data.
42155
42156 2001-12-11  Emmanuel Briot  <briot@gnat.com>
42157
42158         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
42159         + and * applied to backslashed expressions like \r.
42160
42161 2001-12-11  Vasiliy Fofanov  <fofanov@gnat.com>
42162
42163         * g-os_lib.ads: String_List type added, Argument_List type is now
42164         subtype of String_List.
42165
42166 2001-12-11  Robert Dewar  <dewar@gnat.com>
42167
42168         * g-os_lib.ads: Change copyright to FSF
42169         Add comments for String_List type
42170
42171 2001-12-11  Vincent Celier  <celier@gnat.com>
42172
42173         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
42174         string to the buffer).
42175
42176 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42177
42178         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
42179         sem_attr.
42180
42181         * sem_attr.adb: Simplify previous fix for Address.
42182         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
42183         to avoid anomalies where the bound of the type appears to raise
42184         constraint error.
42185
42186 2001-12-11  Robert Dewar  <dewar@gnat.com>
42187
42188         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
42189         handled.
42190
42191 2001-12-11  Ed Schonber   <schonber@gnat.com>
42192
42193         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
42194         renamed unit before checking for recursive instantiations.
42195
42196 2001-12-11  Emmanuel Briot  <briot@gnat.com>
42197
42198         * prj.ads: Add comments for some of the fields.
42199
42200 2001-12-11  Robert Dewar  <dewar@gnat.com>
42201
42202         * lib-xref.adb (Output_Refs): Don't output type references outside
42203         the main unit if they are not otherwise referenced.
42204
42205 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42206
42207         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
42208         code and diagnose additional illegal uses
42209
42210         * sem_util.adb (Is_Object_Reference): An indexed component is an
42211         object only if the prefix is.
42212
42213 2001-12-11  Vincent Celier  <celier@gnat.com>
42214
42215         * g-diopit.adb: Initial version.
42216
42217         * g-diopit.ads: Initial version.
42218
42219         * g-dirope.adb:
42220         (Expand_Path): Avoid use of Unbounded_String
42221         (Find, Wildcard_Iterator): Moved to child package Iteration
42222
42223         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
42224
42225 2001-12-11  Robert Dewar  <dewar@gnat.com>
42226
42227         * sem_attr.adb: Minor reformatting
42228
42229 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42230
42231         * sem_ch3.adb: Clarify some ???.
42232
42233 2001-12-11  Robert Dewar  <dewar@gnat.com>
42234
42235         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
42236         Exp_Pakd.Known_Aligned_Enough
42237
42238         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
42239         version is moved to Exp_Ch13.
42240
42241 2001-12-11  Robert Dewar  <dewar@gnat.com>
42242
42243         * einfo.ads: Minor reformatting
42244
42245         * exp_ch5.adb: Add comment for previous.change
42246
42247         * ali.adb: New interface for extended typeref stuff.
42248
42249         * ali.ads: New interface for typeref stuff.
42250
42251         * checks.adb (Apply_Alignment_Check): New procedure.
42252
42253         * debug.adb: Add -gnatdM for modified ALI output
42254
42255         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
42256
42257         * lib-xref.adb: Extend generation of <..> notation to cover
42258         subtype/object types. Note that this is a complete rewrite,
42259         getting rid of the very nasty quadratic algorithm previously
42260         used for derived type output.
42261
42262         * lib-xref.ads: Extend description of <..> notation to cover
42263         subtype/object types. Uses {..} for these other cases.
42264         Also use (..) for pointer types.
42265
42266         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
42267
42268         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
42269         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
42270
42271 2001-12-11  Vincent Celier  <celier@gnat.com>
42272
42273         * gnatcmd.adb:
42274         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
42275         Changed /BIND_ONLY to /ACTIONS=BIND
42276         Changed /LINK_ONLY to /ACTIONS=LINK
42277
42278 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42279
42280         * sem_ch8.adb (Find_Selected_Component): improved search for a
42281         candidate package in case of error.
42282
42283         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
42284         chain back on scope stack before reinstalling use clauses.
42285
42286         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
42287         is enabled, do not kill the code for the condition, to preserve
42288         warning.
42289
42290 2001-12-11  Robert Dewar  <dewar@gnat.com>
42291
42292         * checks.adb (Insert_Valid_Check): Apply validity check to expression
42293         of conversion, not to result of conversion.
42294
42295 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42296
42297         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
42298         before freezing parent. If the declarations are mutually recursive,
42299         an access to the current record type may be frozen before the
42300         derivation is complete.
42301
42302 2001-12-05  Vincent Celier  <celier@gnat.com>
42303
42304         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
42305         -c /COMPILE_ONLY, -l /LINK_ONLY
42306
42307         * opt.ads:
42308         (Bind_Only): New Flag
42309         (Link_Only): New flag
42310
42311         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
42312         and -l (Link_Only)
42313
42314         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
42315
42316         * make.adb:
42317         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
42318         (Gnatmake): Set the step flags. Only perform a step if the
42319         corresponding step flag is True.
42320         (Scan_Make_Arg): Reset the bind and link step flags when -u
42321         or -gnatc has been specified.
42322
42323 2001-12-05  Ed Schonberg  <schonber@gnat.com>
42324
42325         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
42326         get bounds from right operand.
42327
42328         * sem_eval.adb: Minor reformatting
42329
42330         * exp_util.adb (Make_Literal_Range): use bound of literal rather
42331         than Index'First, its lower bound may be different from 1.
42332
42333         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
42334         and C48009J
42335
42336 2001-12-05  Vincent Celier  <celier@gnat.com>
42337
42338         * prj-nmsc.adb Minor reformatting
42339
42340         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
42341         set and libraries are not supported.
42342
42343 2001-12-05  Ed Schonberg  <schonber@gnat.com>
42344
42345         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
42346         private view explicitly, so the back-end can treat as a global
42347         when appropriate.
42348
42349 2001-12-05  Ed Schonberg  <schonber@gnat.com>
42350
42351         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
42352          unit, always replace instance node with new body, for ASIS use.
42353
42354 2001-12-05  Vincent Celier  <celier@gnat.com>
42355
42356         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
42357         libraries are not supported and both attributes Library_Name and
42358         Library_Dir are specified.
42359
42360         * prj-proc.adb (Expression): Set location of Result to location of
42361         first term.
42362
42363         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
42364         (prj-nmsc is now importing MLib.Tgt)
42365
42366         * prj-proc.adb: Put the change indicated above that was forgotten.
42367
42368 2001-12-05  Robert Dewar  <dewar@gnat.com>
42369
42370         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
42371
42372 2001-12-05  Ed Schonberg  <schonber@gnat.com>
42373
42374         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
42375         constraint, introduce explicit subtype declaration and derive from it.
42376
42377         * sem_ch3.adb: Minor reformatting
42378
42379 2001-12-05  Robert Dewar  <dewar@gnat.com>
42380
42381         * checks.adb (Determine_Range): Increase cache size for checks.
42382         Minor reformatting
42383
42384         * exp_ch6.adb: Minor reformatting
42385         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
42386         a parameter whose root type is System.Address, since treating such
42387         subprograms as pure in the code generator is almost surely a mistake
42388         that will lead to unexpected results.
42389
42390         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
42391         change handling of conversions.
42392
42393         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
42394
42395 2001-12-05  Ed Schonberg  <schonber@gnat.com>
42396
42397         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
42398         aggregate with static wrong size, attach generated Raise node to
42399         declaration.
42400
42401 2001-12-05  Robert Dewar  <dewar@gnat.com>
42402
42403         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
42404         Fixes compilation abandoned bomb in B24009B.
42405
42406 2001-12-05  Ed Schonberg  <schonber@gnat.com>
42407
42408         * sem_ch12.adb:
42409         Document use of Associated_Node on Selected_Components.
42410         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
42411         to clarify use of untyped descendant fields.
42412
42413 2001-12-05  Robert Dewar  <dewar@gnat.com>
42414
42415         * prj-dect.ads: Add ??? comment
42416         Add 2001 to copyright notice (was not done in after all)
42417
42418         * prj-part.adb: Minor reformatting. Reword one awkward error message.
42419
42420         * prj.ads: Minor reformatting throughout, and add some ??? comments
42421
42422         * snames.ads: Minor reformatting
42423
42424 2001-12-05  Geert Bosch  <bosch@gnat.com>
42425
42426         * snames.adb: Autoupdate
42427
42428 2001-12-05  Vincent Celier  <celier@gnat.com>
42429
42430         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
42431
42432         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
42433
42434         * prj-env.adb: Minor comment changes (modifying -> extends).
42435
42436         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
42437
42438         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
42439         Tok_Extends.
42440
42441         * prj.adb (Initialize): Change Modifying to Extends.
42442
42443         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
42444
42445         * prj.ads: Minor comment change (Modifying -> extending).
42446
42447         * snames.ads: Change modifying to extends.
42448
42449 2001-12-05  Robert Dewar  <dewar@gnat.com>
42450
42451         * sem_warn.adb: Remove stuff for conditionals, we are not going to
42452         do this after all.
42453
42454         * sem_warn.ads: Remove stuff for conditionals, we are not going to
42455         do this after all.  Add 2001 to copyright notice
42456
42457 2001-12-04  Geert Bosch  <bosch@gnat.com>
42458
42459         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
42460
42461 2001-12-04  Robert Dewar  <dewar@gnat.com>
42462
42463         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
42464         location if we already have errors. Stops some cases of cascaded
42465         errors.
42466
42467         * errout.adb: Improve comment.
42468
42469 2001-12-04  Robert Dewar  <dewar@gnat.com>
42470
42471         * sem_ch12.adb:
42472         (Analyze_Formal_Type_Definition): Defend against Error.
42473         (Analyze_Formal_Subprogram): Defend against Error.
42474
42475         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
42476         remove following semicolon if present. Removes cascaded error.
42477
42478 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
42479
42480         * bindgen.adb:
42481         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
42482          exceptions equals 0.
42483         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
42484         Fixes PIWG E tests (which have to be run with -gnatL).
42485
42486 2001-12-04  Robert Dewar  <dewar@gnat.com>
42487
42488         * einfo.ads: Minor reformatting
42489
42490 2001-12-04  Ed Schonberg  <schonber@gnat.com>
42491
42492         * einfo.ads: Block_Node points to the identifier of the block, not to
42493         the block node itself, to preserve the link when the block is
42494         rewritten, e.g. within an if-statement with a static condition.
42495
42496         * inline.adb (Cleanup_Scopes): recover block statement from block
42497         entity using new meaning of Block_Node.
42498
42499         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
42500         identifier of block node, rather than to node itself.
42501
42502 2001-12-04  Gary Dismukes  <dismukes@gnat.com>
42503
42504         * layout.adb:
42505         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
42506         (Discrimify): Go back to setting the Etypes of the selected component
42507         because the Vname component does not exist at this point and will
42508         fail name resolution. Also set Analyzed.
42509         Remove with and use of Sem_Res.
42510
42511 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
42512
42513         * Makefile.in: (HIE_SOURCES): add s-fat*.
42514
42515 2001-12-04  Robert Dewar  <dewar@gnat.com>
42516
42517         * sem_attr.adb:
42518         (Compile_Time_Known_Attribute): New procedure.
42519         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
42520          proper range check.
42521
42522 2001-12-04  Ed Schonberg  <schonber@gnat.com>
42523
42524         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
42525         processing discriminants to diagnose illegal default values.
42526
42527 2001-12-04  Ed Schonberg  <schonber@gnat.com>
42528
42529         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
42530         access discriminant within a type extension that constrains its
42531         parent discriminants.
42532
42533 2001-12-04  Ed Schonberg  <schonber@gnat.com>
42534
42535         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
42536         is malformed, use instance of Any_Id to allow analysis to proceed.
42537
42538         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
42539         type definition is illegal.
42540         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
42541         misplaced.
42542
42543 2001-12-04  Ed Schonberg  <schonber@gnat.com>
42544
42545         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
42546         constants.
42547
42548 2001-12-04  Robert Dewar  <dewar@gnat.com>
42549
42550         * errout.adb: Minor reformatting
42551
42552 2001-12-04  Robert Dewar  <dewar@gnat.com>
42553
42554         * exp_util.adb: Minor reformatting from last change
42555
42556         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
42557         which is a rewriting of an expression, traverse the original
42558         expression to remove warnings that may have been posted on it.
42559
42560 2001-12-04  Ed Schonberg  <schonber@gnat.com>
42561
42562         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
42563         record that has other packed components.
42564
42565 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
42566
42567         * adaint.c: Minor cleanups.
42568
42569 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
42570
42571         * adaint.c: Do not use utime.h on vxworks.
42572
42573 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
42574
42575         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
42576         more confusion than it solves.
42577
42578 2001-12-04  Geert bosch  <bosch@gnat.com>
42579
42580         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
42581
42582 2001-12-04  Geert Bosch  <bosch@gnat.com>
42583
42584         * Makefile.in (update-sources): New target.
42585         For use by gcc_release script.
42586
42587 2001-12-04  Ed Schonberg  <schonber@gnat.com>
42588
42589         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
42590         a configuration pragma, it is now legal wherever a pragma can appear.
42591
42592 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
42593
42594         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
42595         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
42596         is now @CROSS@ -DIN_GCC; update comment.
42597
42598 2001-12-04  Robert Dewar  <dewar@gnat.com>
42599
42600         * einfo.adb (Has_Pragma_Pure_Function): New flag.
42601         Fix problem that stopped ceinfo from working
42602
42603         * einfo.ads (Has_Pragma_Pure_Function): New flag.
42604
42605         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
42606
42607 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
42608
42609         * gnatchop.adb:
42610         (File_Time_Stamp): New procedure.
42611         (Preserve_Mode): New boolean.
42612         (Write_Unit): Pass time stamp.
42613         Implement -p switch (preserve time stamps).
42614
42615         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
42616
42617         * gnatchop.adb: Do usage info for -p switch
42618
42619         * adaint.h (__gnat_set_file_time_name): New function
42620
42621         * adaint.c (__gnat_set_file_time_name): Implement
42622
42623         * adaint.h: Fix typo
42624
42625 2001-12-03  Robert Dewar  <dewar@gnat.com>
42626
42627         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
42628         have Associated_Node.
42629
42630 2001-12-03  Robert Dewar  <dewar@gnat.com>
42631
42632         * prj-proc.adb: Minor reformatting
42633
42634         * make.adb: Minor reformatting
42635
42636 2001-12-03  Geert Bosch  <bosch@gnat.com>
42637
42638         * make.adb: Minor reformatting.
42639
42640 2001-12-03 Robert Dewar  <dewar@gnat.com>
42641
42642         * sem_ch12.adb: Minor reformatting
42643
42644 2001-12-03  Ed Schonberg  <schonber@gnat.com>
42645
42646         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
42647         push Standard on the stack before analyzing the instance body,
42648         in order to have a clean visibility environment.
42649
42650         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
42651
42652 2001-12-03  Ed Schonberg  <schonber@gnat.com>
42653
42654         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
42655         instantiation of a body that contains an inlined body.
42656
42657 2001-12-03  Ed Schonberg  <schonber@gnat.com>
42658
42659         * sem_ch12.adb:
42660         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
42661         to prevent freezing within formal packages.
42662         (Freeze_Subprogram_Body): If body comes from another instance that
42663         appeared before its own body, place freeze node at end of current
42664         declarative part, to prevent a back-end crash.
42665         (Inline_Instance_Body): Handle properly a package instance within
42666         a subprogram instance that is a child unit.
42667
42668 2001-12-01  Graham Stott  <grahams@redhat.com>
42669
42670         * Makefile.in (misc.o): Add missing $(srcdir) prefix
42671         and add optabs.h dependency.
42672
42673         * misc.c: Include optabs.h
42674         (gnat_tree_code_type): Make static and const.
42675         (gnat_tree_code_length): Likewise.
42676         (gnat_tree_code_name): Likewise.
42677         (update_setjmp_buf): Obtain operands mode from insn_data.
42678
42679 2001-11-29  Richard Henderson  <rth@redhat.com>
42680
42681         * init.c: Remove obsolete dwarf2 frame.h section.
42682
42683 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
42684
42685         * Make-lang.in (ada.generated-manpages): New dummy target.
42686
42687 2001-11-29  Ed Schonberg  <schonber@gnat.com>
42688
42689         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
42690         into Command, an array conversion is illegal here. Uncovered by
42691         ACATS B460005.
42692
42693 2001-11-28  Geert Bosch  <bosch@gnat.com>
42694
42695         * init.c: Minor whitespace changes.
42696
42697 2001-11-28  Doug Rupp  <rupp@gnat.com>
42698
42699         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
42700         signal stack.
42701
42702 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
42703
42704         * misc.c (gnat_expand_constant): Move declaration above
42705         definition of lang_hooks.
42706         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
42707         (gnat_init): lang_expand_constant no longer exists.
42708
42709         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
42710         always have vprintf.
42711         (gnat_init): Always call set_internal_error_function.
42712
42713 2001-11-27  Andreas Jaeger  <aj@suse.de>
42714
42715         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
42716
42717 2001-11-27  Laurent Guerby  <guerby@acm.org>
42718
42719         * Makefile.in: Regenerate Ada dependencies.
42720
42721 2001-11-26  Richard Henderson  <rth@redhat.com>
42722
42723         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
42724         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
42725         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
42726
42727 2001-11-25  Laurent Guerby  <guerby@acm.org>
42728
42729         * sysdep.c (rts_get_*): Fix style.
42730
42731 2001-11-19  Laurent Guerby  <guerby@acm.org>
42732
42733         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
42734         since it is of no apparent use and cause warnings.
42735
42736 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
42737
42738         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
42739         static too.
42740         (gnat_init): Don't return NULL.
42741         (finish_parse): Remove.
42742
42743 2001-11-17  Laurent Guerby  <guerby@acm.org>
42744
42745         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
42746         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
42747         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
42748         * lang-spec.h: Add missing struct field to silence warnings.
42749         * sysdep.c (rts_get_*): Provide K&R prototype.
42750         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
42751         * traceback.c (Unlock_Task, Lock_Task): Likewise.
42752         * tracebak.c (__gnat_backtrace): Remove unused variable.
42753         * utils.c (end_subprog_body): Move to K&R style.
42754
42755 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
42756
42757         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
42758
42759 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
42760
42761         * misc.c (gnat_init): Change prototype.  Include the
42762         functionality of the old init_parse and init_decl_processing.
42763         (gnat_init_decl_processing): New prototype.
42764         (init_parse): Remove.
42765         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
42766
42767 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
42768
42769         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
42770         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
42771         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
42772         set_yydebug): Remove.
42773
42774 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
42775
42776         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
42777         (struct lang_hooks): Constify.
42778         (language_string, lang_identify): Remove.
42779         * utils.c (init_decl_processing): Update.
42780
42781 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
42782
42783         * misc.c: Include langhooks-def.h.
42784         * Makefile.in: Update.
42785
42786 2001-10-30  Robert Dewar  <dewar@gnat.com>
42787
42788         * style.adb:
42789         (Check_Identifier): Rewrite circuit to be compatible with use of letters
42790         in the upper half of ASCII.
42791         (Check_Identifier): Minor reformatting
42792
42793 2001-10-30  Geert Bosch  <bosch@gnat.com>
42794
42795         * (Associated_Node, Set_Associated_Node): Do not check for
42796         Freeze_Entity.
42797
42798 2001-10-30  Robert Dewar  <dewar@gnat.com>
42799
42800         * a-reatim.ads: Minor reformatting
42801
42802 2001-10-30  Robert Dewar  <dewar@gnat.com>
42803
42804         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
42805         undocumented declarations.
42806
42807 2001-10-30  Pascal Obry  <obry@gnat.com>
42808
42809         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
42810         to the binder and linker.
42811         Minor style fix.
42812
42813         * mdll.ads: Fix layout.  Update copyright notice.
42814
42815         * mdll.adb: Fix layout.  Update copyright notice.
42816
42817 2001-10-30  Robert Dewar  <dewar@gnat.com>
42818
42819         * usage.adb: Minor fix to output for -gnaty.
42820
42821 2001-10-30  Ed Schonberg  <schonber@gnat.com>
42822
42823         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
42824         to accommodate all its possible values.
42825
42826         * a-reatim.adb (Split): Special-case handling of Time_Span_First
42827         and of small absolute values of T.
42828
42829 2001-10-30  Richard Kenner  <kenner@gnat.com>
42830
42831         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
42832         set_mem_attributes since not needed and wrong if RESULT if a REG;
42833         fixes ACATS failures.
42834
42835 2001-10-30  Geert Bosch  <bosch@gnat.com>
42836
42837         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
42838         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
42839
42840 2001-10-30  Robert Dewar  <dewar@gnat.com>
42841
42842         * bindusg.adb: Undocument -f switch.
42843
42844         * gnatcmd.adb: Remove /FULL_ELABORATION.
42845
42846         * opt.ads (Force_RM_Elaboration_Order): Document that this is
42847         obsolescent.
42848
42849         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
42850
42851         * gnatbind.adb: Minor update of warning msg.
42852
42853 2001-10-30  Vincent Celier  <celier@gnat.com>
42854
42855         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
42856         for project file switches (-P (/PROJECT_FILE=),
42857          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
42858         or MEDIUM or HIGH)
42859
42860 2001-10-30  Geert Bosch  <bosch@gnat.com>
42861
42862         * decl.c: Minor whitespace fixes.
42863
42864 2001-10-30  Richard Kenner  <kenner@gnat.com>
42865
42866         * utils2.c (build_allocator): Test for SIZE overflow in array case too
42867
42868 2001-10-30  Geert Bosch  <bosch@gnat.com>
42869
42870         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
42871         Found due to GCC 3.0 warning of using uninitialized value.
42872
42873         * layout.adb:
42874         (Get_Max_Size): Use variant record for tracking value/expression.
42875          Makes logic clearer and prevents warnings for uninitialized variables.
42876         (Layout_Array_Type): Use variant record for tracking value/expression.
42877          Makes logic clearer and prevents warnings for uninitialized variables.
42878
42879 2001-10-30  Robert Dewar  <dewar@gnat.com>
42880
42881         * lib.adb: Minor reformatting
42882
42883         * s-taprop.ads: Minor reformatting
42884
42885 2001-10-29  Laurent Guerby  <guerby@acm.org>
42886
42887         * init.c:
42888         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
42889         const.
42890         (_gnat_error_handler): Make MSG const.
42891
42892 2001-10-29  Richard Kenner  <kenner@gnat.com>
42893
42894         * sysdep.c: Fix localtime_r problem on LynxOS.
42895         Also remove #elif to avoid warnings.
42896
42897         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
42898         used by this.
42899
42900         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
42901
42902 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
42903
42904         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
42905         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
42906         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
42907         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
42908         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
42909         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
42910         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
42911         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
42912         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
42913         types.ads, urealp.adb: Fix spelling errors.
42914
42915 2001-10-27  Laurent Guerby  <guerby@acm.org>
42916
42917         * trans.c (gigi): Fix non determinism leading to bootstrap
42918         comparison failures for debugging information.
42919
42920 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
42921
42922         * gnat_rm.texi: Use @./@: where appropriate.
42923
42924 2001-10-26  Robert Dewar  <dewar@gnat.com>
42925
42926         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
42927
42928 2001-10-26  Richard Kenner  <kenner@gnat.com>
42929
42930         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
42931
42932 2001-10-26  Richard Kenner  <kenner@gnat.com>
42933
42934         * decl.c (validate_size): Modify message for bad size to avoid
42935         implication that compiler is modifying the size.
42936
42937 2001-10-26  Robert Dewar  <dewar@gnat.com>
42938
42939         * prj-util.adb: Minor reformatting. Fix bad header format.
42940
42941 2001-10-26  Robert Dewar  <dewar@gnat.com>
42942
42943         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
42944
42945         * sinfo.ads: Clarify use of Associated_Node (documentation only).
42946
42947         * sem_ch12.adb: Change Node4 to Associated_Node. Change
42948         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
42949         much more narrowly in places where needed. These are cleanups.
42950
42951 2001-10-26  Joel Brobecker  <brobecke@gnat.com>
42952
42953         * 5zosinte.ads (null_pthread): new constant.
42954
42955         * 5ztaprop.adb:
42956         (Initialize_TCB): Initialize thread ID to null, to be able to verify
42957          later that this field has been set.
42958         (Finalize_TCB): ditto.
42959         (Suspend_Task): Verify that the thread ID is not null before using it.
42960         (Resume_Task): ditto.
42961
42962         * s-tasdeb.adb:
42963         (Resume_All_Tasks): Lock the tasks list before using it.
42964         (Suspend_All_Tasks): ditto.
42965
42966 2001-10-26  Richard Kenner  <kenner@gnat.com>
42967
42968         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
42969         Make constant variant of designated type for Is_Access_Constant.
42970         Call update_pointer_to with main variant.
42971
42972         * trans.c (process_freeze_entity, process_type):
42973         Call update_pointer_to on main variant.
42974
42975         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
42976         If main variant, update all other variants.
42977
42978         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
42979         TREE_STATIC.
42980
42981 2001-10-26  Robert Dewar  <dewar@gnat.com>
42982
42983         * prj-util.adb: Minor reformatting
42984
42985 2001-10-26  Robert Dewar  <dewar@gnat.com>
42986
42987         * prj-util.adb: Minor reformatting
42988
42989 2001-10-26  Robert Dewar  <dewar@gnat.com>
42990
42991         * prj-attr.adb: Minor reformatting throughout
42992
42993 2001-10-26  Robert Dewar  <dewar@gnat.com>
42994
42995         * prj-attr.ads: Minor reformatting
42996         Add ??? comment (this whole spec has almost no comments)
42997
42998 2001-10-26  Vincent Celier  <celier@gnat.com>
42999
43000         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
43001         ("//") that precede the drive letter on Interix.
43002
43003 2001-10-26  Geert Bosch  <bosch@gnat.com>
43004
43005         * gnat_rm.texi: Add GNAT Reference Manual.
43006
43007 2001-10-25  Robert Dewar  <dewar@gnat.com>
43008
43009         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
43010         is Error. Similar change for other renaming cases.
43011
43012 2001-10-25  Robert Dewar  <dewar@gnat.com>
43013
43014         * s-atacco.ads: Add pragma Inline_Always for functions.
43015         Fix header format. Add copyright 2001
43016
43017 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43018
43019         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
43020         return Error rather than Empty so that analysis can proceed.
43021
43022 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43023
43024         * sem_util.adb (Enter_Name): better handling of cascaded error
43025         messages when a unit appears in its own context.
43026
43027 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43028
43029         * sem_util.adb (Defining_Entity): in case of error, attach created
43030         entity to specification, so that semantic analysis can proceed.
43031
43032 2001-10-25  Robert Dewar  <dewar@gnat.com>
43033
43034         * sem_util.adb
43035         (Defining_Entity): Deal with Error.
43036         (Process_End_Label): Deal with bad end label for.
43037
43038 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43039
43040         * sem_elab.adb (Check_A_Call): refine message when call is in an
43041         instance but callee is not declared in the generic unit.
43042
43043 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43044
43045         * sem_elab.adb (Check_A_Call): check for renaming before finding the
43046         enclosing unit, which may already be different from the calling unit.
43047
43048 2001-10-25  Geert Bosch  <bosch@gnat.com>
43049
43050         * 4gintnam.ads: fix header format.
43051
43052 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43053
43054         * sem_res.adb (Resolve_Call): if the call is actually an indexing
43055         operation on the result of a parameterless call, perform elaboration
43056         check after the node has been properly rewritten.
43057
43058         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
43059         inlined within the generic tree, the defining identifier is not a
43060         compilation_unit.
43061
43062 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43063
43064         * sem_res.adb (Resolve): special-case resolution of Null in an
43065          instance or an inlined body to avoid view conflicts.
43066
43067         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
43068          compatibility by retrieving the access type of the generic copy.
43069
43070 2001-10-25  Robert Dewar  <dewar@gnat.com>
43071
43072         * sem_ch3.adb:
43073         (Analyze_Number_Declaration): Handle error expression.
43074         (Signed_Integer_Type_Declaration): Handle error bound.
43075         (Analyze_Subtype_Indication): Handle error range.
43076
43077         * sem_util.adb (Get_Index_Bounds): Check for Error.
43078
43079 2001-10-25  Robert Dewar  <dewar@gnat.com>
43080
43081         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
43082         in no run time mode.
43083
43084 2001-10-25  Pascal Obry  <obry@gnat.com>
43085
43086         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
43087         mode case for ALLOC case.
43088
43089         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
43090         all platforms. Improvement of last change.
43091
43092 2001-10-25  Robert Dewar  <dewar@gnat.com>
43093
43094         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
43095
43096 2001-10-25  Geert Bosch  <bosch@gnat.com>
43097
43098         * osint.adb (Is_Relative): Remove duplicate.
43099
43100 2001-10-25  Pascal Obry  <obry@gnat.com>
43101
43102         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
43103         pathnames in UNIX and DOS style with drive letter.
43104         (Is_Relative): new routine.
43105
43106         * osint.adb: Minor reformatting
43107
43108         * osint.adb (Is_Relative): implementation using
43109         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
43110
43111 2001-10-25  Pascal Obry  <obry@gnat.com>
43112
43113         * g-dirope.adb (Basename): correctly compute offset between the
43114         original Path and the translated one.
43115
43116         * g-dirope.adb: (Base_Name): add some comments.
43117
43118 2001-10-25  Robert Dewar  <dewar@gnat.com>
43119
43120         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
43121         in HIE mode, avoids compilation abandoned message
43122
43123         * exp_imgv.adb: Correct typo in previous change
43124
43125         * exp_imgv.adb: Correct typo in previous change (not my day!)
43126
43127 2001-10-25  Robert Dewar  <dewar@gnat.com>
43128
43129         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
43130
43131 2001-10-25  Pascal Obry  <obry@gnat.com>
43132
43133         * g-awk.ads: Move all pragma inlines next to the routine
43134          declarations. This is more uniform with other GNAT spec.
43135
43136 2001-10-22  Geert Bosch  <bosch@gnat.com>
43137
43138         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
43139
43140 2001-10-19  Geert Bosch  <bosch@gnat.com>
43141
43142         * Makefile.in (tools, gnattools): Remove gnatmem.
43143
43144 2001-10-17  Richard Henderson  <rth@redhat.com>
43145
43146         * Makefile.in (misc.o): Depend on langhooks.h.
43147         * misc.c: Include it.
43148         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
43149         (LANG_HOOKS_DECODE_OPTION): New.
43150         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
43151
43152 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
43153
43154         * trans.c (tree_transform): Adjust to recent change in
43155         expand_asm_operands to implement named asm operands.
43156
43157 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43158
43159         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
43160         renaming of discriminant for mutable record type.
43161
43162 2001-10-11  Robert Dewar  <dewar@gnat.com>
43163
43164         * validsw.adb: Properly save -gnatVn status.
43165
43166 2001-10-11  Robert Dewar  <dewar@gnat.com>
43167
43168         * usage.adb: Add lines for V switch.
43169
43170         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
43171         (/VALIDITY_CHECKING).
43172
43173 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43174
43175         * sem_type.adb (Add_One_Interp): an operator for a type declared in
43176         an extension of System is known to be visible.
43177
43178 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43179
43180         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
43181         properly. Fixes regression on ACATS C34005G.
43182
43183 2001-10-11  Robert Dewar  <dewar@gnat.com>
43184
43185         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
43186         loop in generic instance, since this is likely not very useful.
43187
43188 2001-10-11  Robert Dewar  <dewar@gnat.com>
43189
43190         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
43191         the error message for high integrity mode.
43192
43193         * rtsfind.adb (RTE): Give message if we try to find an entity that
43194         is not available in high integrity mode.
43195
43196         * rtsfind.ads:
43197         (OK_To_Use_In_HIE_Mode): New array.
43198         (RTE): May return Empty in high integrity mode.
43199
43200         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
43201         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
43202
43203         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
43204         unit if not inlined always and in no runtime mode. Fixes problem
43205         caused by new Rtsfind changes.
43206
43207         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
43208         body is deleted.
43209
43210         * rtsfind.adb (RTE): Make sure we do not try to load unit after
43211         giving message for entity not available in high integrity mode.
43212
43213 2001-10-11  Pascal Obry  <obry@gnat.com>
43214
43215         * impunit.adb: Add GNAT.CRC32.
43216
43217 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43218
43219         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
43220         properly the case where one universal operand in a non-static
43221         exponentiation of a real literal.
43222
43223 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43224
43225         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
43226         clause, return the gobal finalization list, for lack of anthing else.
43227
43228 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43229
43230         * exp_ch7.adb (Make_Transient_Block): if statement is within
43231         exception handler, always use new transient scope to place Clean
43232         procedure.
43233
43234 2001-10-11  Pascal Obry  <obry@gnat.com>
43235
43236         * Makefile.in:
43237         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
43238         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
43239         (GNATLS_RTL_OBJS): add g-crc32.o
43240         (GNATMAKE_RTL_OBJS): add g-crc32.o
43241
43242         * ali-util.adb:
43243         (CRC_Match): new function.
43244         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
43245         instead of the previous simple checksum algorithm.
43246         (Time_Stamp_Mismatch): use CRC_Match for comparison.
43247         (Set_Source_Table): idem.
43248
43249         * ali-util.ads:
43250         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
43251         instead of simple checksum.
43252         (CRC_Match): new function.
43253         (CRC_Error): new constant.
43254
43255         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
43256         a CRC now and not a simple checksum. A CRC uses lower-case hex
43257         letters, fixes ambiguity in parsing.
43258
43259         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
43260         is what this variable will store.
43261
43262         * bcheck.adb: Change reference to chechsum in comments by CRC.
43263         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
43264         rename All_Checksum_Match to All_CRC_Match. Change due to API
43265         renaming since now GNAT does not use a simple checksum but a
43266         CRC using GNAT.CRC32.
43267
43268         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
43269         now and not anymore a simple checksum.
43270
43271         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
43272         places.
43273
43274         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
43275
43276         * scans.adb:
43277         (Restore_Scan_State): rename Checksum to CRC.
43278         (Save_Scan_State): idem.
43279
43280         * scans.ads:
43281         With GNAT.CRC32.
43282         (Checksum): rename to CRC.
43283         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
43284
43285         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
43286         GNAT.CRC32).  Update copyright notice.
43287
43288         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
43289         GNAT.CRC32).  Update copyright notice.
43290
43291         * scn.adb:
43292         (Accumulate_Checksum): removed.
43293         (Update): new procedure. Add a wide-character into the CRC.
43294
43295         * sinput-l.adb:
43296         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
43297         (Load_File): fix initialization of S (change Source_Checksum to
43298         Source_CRC)
43299
43300         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
43301         Source_CRC in S initialization.
43302
43303         * sinput.adb (Source_Checksum): renamed to Source_CRC.
43304
43305         * sinput.ads (Source_Checksum): renamed to Source_CRC.
43306         Update comments for the CRC.
43307
43308         * types.adb (Hex): Use lowercase for the letter part.
43309
43310         * types.ads (Get_Hex_String): Returns the hexadecimal representation
43311         for a word. This is currently used only for CRC. In previous version,
43312         the checksum was using a representation with all letter being
43313         upper-case. With the new implementation (using CRC) we do not remove
43314         the 32th bit of the CRC, so we can have an upper-case starting letter
43315         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
43316         It is ambigous since the CRC was optional and could be followed by
43317         options like EB, EE. So now this routines uses lower-case letter for
43318         the hexadecimal representation. Strange enough only lower case letters
43319         where checked in Scan_ALI (even if this was not a possible case).
43320
43321         * gnatvsn.ads (Library_Version): changed to 3.15a.
43322
43323         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
43324         for the compiler.
43325
43326         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
43327         for the compiler.
43328
43329         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
43330         Add 2001 to copyright notice
43331         (Accumulate_Checksum): Modify to use System.CRC32.
43332
43333         * ali-util.ads: Redo changes of previous revision to continue to use
43334         the word Checksum. Add 2001 to copyright notice.
43335
43336         * ali.adb: Undo some of previous changes, not needed.
43337         Keep the change for lower case letters in the checksum.
43338
43339         * ali.ads: Undo previous change not needed.
43340
43341         * bcheck.adb: Undo most of previous change, not needed.
43342         But do use Checksums_Match for checksum comparison.
43343
43344         * gnatls.adb: Undo most of previous change, not needed.
43345         But do use Checksums_Match for comparing checksums.
43346
43347         * lib-load.adb: Undo previous change, not needed.
43348
43349         * lib-writ.adb: Undo previous change, not needed.
43350
43351         * lib-writ.ads: Document that checksums use lower case,
43352         not upper case letters.
43353
43354         * scans.adb: Undo previous change, not needed
43355
43356         * scans.ads: Undo previous change, not needed.
43357
43358         * scn-nlit.adb: Undo previous changes, not needed.
43359
43360         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
43361
43362         * scn.adb:
43363         (Accumulate_Checksum): Use System.CRC32.
43364         (Initialize_Checksum): New procedure.
43365         Remove other changes of previous revision.
43366
43367         * sinput-p.adb: Undo previous change, not needed.
43368
43369         * sinput.adb: Undo previous change, not needed.
43370
43371         * sinput-l.adb: Undo previous change, not needed.
43372
43373         * sinput.ads: Undo previous change, not needed.  Keep only comment
43374         on new checksum algorithm
43375
43376         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
43377         Also remove a-tags and a-stream from GNAT sources.
43378
43379         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
43380
43381         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
43382
43383 2001-10-11  Geert Bosch  <bosch@gnat.com>
43384
43385         * einfo.h: Regenerate.
43386
43387         * nmake.ads: Regenerate.
43388
43389         * nmake.adb: Regenerate.
43390
43391         * sinfo.h: Regenerate.
43392
43393         * treeprs.adb: Regenerate.
43394
43395 2001-10-10  Geert Bosch  <bosch@gnat.com>
43396
43397         * gnat-style.texi: New file describing coding guidelines for Ada.
43398
43399 2001-10-10  Ed Schonberg  <schonber@gnat.com>
43400
43401         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
43402         is Flag174.
43403
43404 2001-10-10  Geert Bosch  <bosch@gnat.com>
43405
43406         * snames.ads: Add new names for project facility.
43407
43408         * snames.adb: Update to reflect snames.ads changes.
43409
43410         * snames.h: Update to reflect snames.ads changes.
43411
43412 2001-10-10  Vincent Celier  <celier@gnat.com>
43413
43414         * make.adb:
43415         (Add_Switches): reflect the changes for the switches attributes
43416         Default_Switches indexed by the programming language,
43417         Switches indexed by the file name.
43418         (Collect_Arguments_And_Compile): Idem.
43419         Reflect the attribute name changes.
43420
43421         * prj-attr.adb:
43422         (Initialisation_Data): Change the names of some packages and
43423         attributes.
43424         (Initialize): process case insensitive associative arrays.
43425
43426         * prj-attr.ads:
43427         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
43428
43429         * prj-dect.adb:
43430         (Parse_Attribute_Declaration): For case insensitive associative
43431          arrays, set the index string to lower case.
43432
43433         * prj-env.adb:
43434         Reflect the changes of the project attributes.
43435
43436         * prj-nmsc.adb:
43437         Replace Check_Naming_Scheme by Ada_Check and
43438         Language_Independent_Check.
43439
43440         * prj-nmsc.ads:
43441         Replaced Check_Naming_Scheme by 2 procedures:
43442         Ada_Check and Language_Independent_Check.
43443
43444         * prj-proc.adb:
43445         (Process_Declarative_Items): For case-insensitive associative
43446         arrays, set the index string to lower case.
43447         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
43448         Prj.Nmsc.Check_Naming_Scheme.
43449
43450         * prj-tree.adb:
43451         (Case_Insensitive): New function
43452         (Set_Case_Insensitive): New procedure
43453
43454         * prj-tree.ads:
43455         (Case_Insensitive): New function
43456         (Set_Case_Insensitive): New procedure
43457         (Project_Node_Record): New flag Case_Insensitive.
43458
43459         * prj-util.adb:
43460         (Value_Of): new function to get the string value of a single
43461         string variable or attribute.
43462
43463         * prj-util.ads:
43464         (Value_Of): new function to get the string value of a single
43465         string variable or attribute.
43466
43467         * prj.adb:
43468         (Ada_Default_Spec_Suffix): New function
43469         (Ada_Default_Impl_Suffix): New function
43470         Change definitions of several constants to reflect
43471         new components of record types.
43472
43473         * prj.ads:
43474         (Naming_Data): Change several components to reflect new
43475         elements of naming schemes.
43476         (Project_Data): New flags Sources_Present and
43477         Language_Independent_Checked.
43478         (Ada_Default_Spec_Suffix): New function.
43479         (Ada_Default_Impl_Suffix): New function.
43480
43481         * snames.ads:
43482         Modification of predefined names for project manager: added
43483         Implementation, Specification_Exceptions, Implementation_Exceptions,
43484         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
43485         Default_Switches, _Languages, Builder, Cross_Reference,
43486         Finder. Removed Body_Part, Specification_Append, Body_Append,
43487         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
43488         Gnatlink.
43489
43490         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
43491         Add comments.
43492
43493         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
43494         not that it is Nil_Variable_Value.
43495
43496         * prj.ads: Add ??? for uncommented declarations
43497
43498 2001-10-10  Ed Schonberg  <schonber@gnat.com>
43499
43500         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
43501         constant, do not indicate possible modification, so that gigi can
43502         treat it as a bona fide constant.
43503
43504 2001-10-10  Robert Dewar  <dewar@gnat.com>
43505
43506         * sem_prag.adb: Add processing for pragma External.
43507
43508         * snames.ads: Add entry for pragma External.
43509
43510         * par-prag.adb: Add pragma External.
43511
43512         * snames.adb: Updated to match snames.ads.
43513
43514 2001-10-10  Ed Schonberg  <schonber@gnat.com>
43515
43516         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
43517         a dynamic task if the allocator appears in an indexed assignment
43518         or selected component assignment.
43519
43520         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
43521         For a dynamic task in an assignment statement, use target of
43522         assignment to generate meaningful name.
43523
43524 2001-10-10  Ed Schonberg  <schonber@gnat.com>
43525
43526         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
43527         a generic package.
43528
43529         * einfo.ads: Body_Entity is also defined for generic package.
43530         Documentation change only
43531
43532         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
43533         others_choice for a discriminated component initialization,
43534         convert discriminant references into the corresponding discriminals.
43535
43536         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
43537         only if original type is private and expression has to be wrapped
43538         in a conversion.
43539
43540         * checks.adb:
43541         (Apply_Constraint_Check): Do not perform length check
43542         if expression is an aggregate with only an others_choice.
43543         (Length_N_Cond): two references to the same in_parameter
43544         (typically the discriminal in an init_proc) denote the same value.
43545         Two useful optimization uncovered by bugfixes above.
43546
43547 2001-10-10  Robert Dewar  <dewar@gnat.com>
43548
43549         * xeinfo.adb: Change int to char in translation of enumeration types.
43550         This fixes a problem in the C representation of component alignment.
43551         Add 2001 to copyright notice
43552
43553 2001-10-10  Richard Kenner  <kenner@gnat.com>
43554
43555         * decl.c: (validate_size): Do check size of object of integral type
43556         if it is a packed array type.
43557
43558 2001-10-10  Richard Kenner  <kenner@gnat.com>
43559
43560         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
43561         VAR_DECL for constant if not Is_Public but -O0.
43562
43563 2001-10-10  Richard Kenner  <kenner@gnat.com>
43564
43565         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
43566
43567 2001-10-10  Geert Bosch  <bosch@gnat.com>
43568
43569         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
43570         use '/' as switch character, allowing for absolute file names.
43571
43572 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
43573
43574         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
43575         FSF address.
43576
43577 2001-10-08  Geert Bosch  <bosch@gnat.com>
43578
43579         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
43580         Automatically build utilities when files need to be regenerated.
43581
43582 2001-10-08  Geert Bosch  <bosch@gnat.com>
43583
43584         * xsnames.adb: New utility for updating snames.ads and snames.adb
43585
43586 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
43587
43588         * Make-lang.in (ADAFLAGS): Add -W -Wall.
43589         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
43590         (gnat1): Also depend on attribs.o.
43591         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
43592         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
43593         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
43594         (ADAFLAGS): Add -W -Wall.
43595         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
43596         take out CFLAGS.
43597
43598         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
43599         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
43600         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
43601         Use $(ADAC), not $(CC), as compilation command.
43602
43603         (gnattools): Depend directly on tools to build, don't use
43604         recursive make.
43605         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
43606
43607         * einfo.h, sinfo.h: New files (autogenerated).
43608
43609 2001-10-08  Richard Henderson  <rth@redhat.com>
43610
43611         * comperr.adb (Abort_In_Progress): New.
43612         (Compiler_Abort): Use it to prevent recursion.
43613
43614 2001-10-08  Robert Dewar  <dewar@gnat.com>
43615
43616         * atree.adb: Set Error_Posted in Error node, helps error recovery.
43617
43618         * par-endh.adb (Output_End_Expected): We should also not test
43619         Error_Posted on the Error node, since now it is always set.
43620
43621         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
43622         to help error recovery. Part of general work on 9407-004.
43623
43624         * par.adb: Add ??? for misuse of error
43625
43626         * sem_res.adb:
43627         (Resolve): Defend against Error, fixes 9407-003.
43628         (Resolve_Discrete_Subtype_Indication): Defend against Error.
43629
43630         * sinfo.ads (N_Error): Now has Etype field (which will be set
43631         to Any_Type to help error recovery).
43632
43633 2001-10-08  Richard Kenner  <kenner@gnat.com>
43634
43635         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
43636         Consistently set MEM attributes from expression; fixes
43637         bootstrap failure on x86.
43638
43639 2001-10-08  Geert Bosch  <bosch@gnat.com>
43640
43641         * 5oosinte.adb: Add 2001 to copyright notice.
43642
43643 2001-10-08  Geert Bosch  <bosch@gnat.com>
43644
43645         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
43646
43647         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
43648
43649 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
43650
43651         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
43652
43653 2001-10-05  Geert Bosch  <bosch@gnat.com>
43654
43655         * adaint.h: Small formatting fix.
43656
43657 2001-10-04  Geert Bosch  <bosch@gnat.com>
43658
43659         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
43660         Arg is int, not FILE *, in dummy version of functions.
43661
43662         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
43663         Arg is int, not FILE *.
43664
43665 2001-10-04  Geert Bosch  <bosch@gnat.com>
43666
43667         * 3lsoccon.ads: Added file, missed with initial check ins.
43668
43669         * 4lintnam.ads: Fix header format.
43670         Change Linux to GNU/Linux.
43671
43672         * 5iosinte.adb: Change Linux to GNU/Linux.
43673
43674         * 5iosinte.ads: Change Linux to GNU/Linux.
43675
43676         * 5itaprop.adb: Change Linux to GNU/Linux.
43677
43678         * 5itaspri.ads: Change Linux to GNU/Linux.
43679         Update copyright notice.
43680
43681         * 5lintman.adb: Change Linux to GNU/Linux.
43682
43683         * 5lml-tgt.adb: Change Linux to GNU/Linux.
43684
43685         * 5losinte.ads: Change Linux to GNU/Linux.
43686
43687         * 5lsystem.ads: Change Linux to GNU/Linux.
43688
43689         * 5qosinte.adb: Change Linux to GNU/Linux.
43690
43691         * 5qosinte.ads: Change Linux to GNU/Linux.
43692
43693         * 5qparame.ads: Change Linux to GNU/Linux.
43694
43695         * 5qtaprop.adb: Change Linux to GNU/Linux.
43696
43697         * 5qtaspri.ads: Change Linux to GNU/Linux.
43698         Add 2001 to copyright notice.
43699
43700         * 5vintman.ads: Change Linux to GNU/Linux.
43701         Fix header format.  Add 2001 to copyright notice.
43702
43703         * g-soccon.ads: Change Linux to GNU/Linux.
43704
43705         * g-trasym.ads: Change Linux to GNU/Linux.
43706         Add 2001 to copyright notice.
43707
43708         * memtrack.adb: Change Linux to GNU/Linux.
43709
43710         * s-intman.ads: Change Linux to GNU/Linux.
43711         Add 2001 to copyright notice.  Fix header format.
43712
43713         * s-stache.adb: Change Linux to GNU/Linux.
43714
43715         * adaint.c: Change Linux to GNU/Linux.
43716
43717         * cio.c: Change Linux to GNU/Linux.
43718
43719         * cstreams.c: Change Linux to GNU/Linux.
43720
43721         * init.c: Change Linux to GNU/Linux.
43722
43723         * gmem.c: Change Linux to GNU/Linux.
43724
43725         * tracebak.c: Change Linux to GNU/Linux.
43726
43727
43728 2001-10-02  Geert Bosch  <bosch@gnat.com>
43729
43730         * misc.c (insert_default_attributes): Add dummy version.